I have a PCB of approximately 4" x 4". It has a single long spiraling trace on it. The trace is 50 mil 4 oz copper, so nominally it's good for something like twenty amps before it overheats. But this board overheats much faster. My supposition is that the windings being so close to each other has a compounding effect on the heat.

Now, presumably I could increase the surface area of the PCB, and thereby dissipate the same power with less temperature rise. My question is, how does one calculate such? What is the relationship between the power dissipated by my copper plane, its temperature rise, and its surface area? Assume still air.

  • $\begingroup$ Are the traces closely spaced enough that it could be effectively modeled (for heat dissipation purposes) as a 50 mil plane of copper? $\endgroup$ – Chris Mueller Mar 25 '15 at 17:08
  • $\begingroup$ I think that's a fair approximation. The trace windings are 50 mils wide, with 10 mil spacing. $\endgroup$ – Stephen Collings Mar 25 '15 at 17:29
  • $\begingroup$ How many layer is the board? If the board is more multi layered are the via sized support the current requirements $\endgroup$ – Mahendra Gunawardena Mar 25 '15 at 22:35
  • $\begingroup$ Two layers, no internals. $\endgroup$ – Stephen Collings Mar 26 '15 at 13:24
  • $\begingroup$ Look like your current limit is around 7-8 amp of current. This explains why the PCB is overheating. $\endgroup$ – Mahendra Gunawardena Mar 26 '15 at 22:32


Under these assumptions we can estimate the temperature of the board by simply equating heat flows. The heat coming in per unit time is from Joule heating from the current running through the copper and is given by $$ q_{in}=I^2R. $$ The heat flowing out has two escape mechanisms; radiative heat transfer to the surroundings which is given by $$ q_{rad}=\epsilon\sigma A(T^4-T_s^4) $$ and convective heat transfer to the air which is given by $$ q_{conv}=hA(T-T_s). $$

Now we just equate the heat flows $$ \begin{align} q_{in}&=q_{out}\\ I^2R&=A\left[\sigma(T^4-T_s^4)(\epsilon_{cu}+\epsilon_{pcb})+(T-T_s)(h_{up}+h_{down})\right] \end{align} $$ we can rearrange this to look like a quartic equation $$ \sigma(\epsilon_{cu}+\epsilon_{pcb})T^4+(h_u+h_d)T - \left[\frac{I^2R}{A}+\sigma(\epsilon_{cu}+\epsilon_{pcb})T_s^4+(h_u+h_d)T_s\right]=0. $$

This isn't easy to solve analytically, but Mathematica would have no problem. I put it into Python and numerically found the minimum of the absolute value. I assumed a total resistance of $R=1\Omega$ so your actual results may vary. The results are shown below.

Board Temperature

Here is the Python code also:

import scipy.optimize as opt
import numpy as np
import matplotlib.pyplot as plt

# Define the function with some extra variables
def tempOpt( t, ts, i):
    sigma = 5.67e-8
    ec = 0.78
    ep = 0.50
    hu = 7.25
    hd = 3.63
    r  = 1
    a  = 0.0103
    e = ec + ep
    h = hu + hd
    out = sigma*e*t**4 + h*t - i**2*r/a - sigma*e*ts**4 - h*ts
    return out

# Decide the ranges for the current and temperature
currents = np.linspace( 0.1, 20, 50)
temps = [0, 20, 40, 60, 80, 100]

# Calculate the value
resDict = dict()
for temp in temps:
    resVec = np.zeros( np.shape( currents))
    cnt = 0
    for current in currents:
        # Define a new function of one variable and a minimum at zero
        # Don't forget to convert between Kelvin and Celcius
        def tempNow( t):
            return abs( tempOpt( t+273.15, temp+273.15, current))
        # Find the minimum with a reasonable guess
        guess = temp + 30
        resVec[cnt] = opt.fmin( tempNow, 30)
        cnt += 1
    # Store results in dictionary
    resDict[temp] = resVec

# Plot
for temp in temps:
    plt.plot( currents, resDict[temp], lw=2)
plt.xlabel('Current (A)')
plt.ylabel('Board Temp ($^\circ$C)')
leg = plt.legend( temps, loc=2)
leg.set_title( '$T_s$ ($^\circ$C)')
plt.title('Board Temperature (R=1$\Omega$)')

Base on a quick calculation using online max current calculator for trace width properties, I believe your traces are undersized for 20A of current.

Strip line current calculations (Internal Traces) for 50 mil 4 oz copper is

  • Max Current: 3.76 amps
  • Trace Temperature: 35.0 °C
  • Resistance: 0.0000640 ohms
  • Voltage Drop: 0.000241 volts
  • Power Dissipation: 0.000904 watts

Microstrip max current calculations (External Traces) for 50 mil 4 oz copper is

  • Max Current: 7.51 amps
  • Trace Temperature: 35.0 °C
  • Resistance: 0.0000640 ohms
  • Voltage Drop: 0.000480 volts
  • Power Dissipation: 0.00361 watts



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.