How to determine trace width requirements given the microstrip power dissipation

Hi, I don’t know if this is the best category to post this question in, but I figured it was related to layout. I didn’t see a section directly related to the KiCAD calculator, so I posted it here.

I am using the microstrip calculator to determine the power dissipation of my traces. What I really need to do though is to determine the temperature rise/ampacity of my trace at RF to ensure that it will not overheat. I am wondering what the best way to do this would be. Any suggestions? I have spent days trying to find a solution, but not much luck so far.


You could try using FEMM ( You can use FEMM to do a finite element thermal analysis of a cross section on your stack + trace. Will certainly be good enough to tell you if you have a problem


FEM modelling is included in the FreeCad workbench and there are integrations to mesh generators (incl NetGen) and hooks to various solvers (incl Calculix, Elmer and Z88) for both Thermal and mechanical modelling. If you search the Freecad user groups you will find some discussion about this - mainly mechanical but some thermomechanical stuff. Freecad and is probably the easiest route to getting your model into a suitable FEM modelling environment and you would probably find that using this set of scripts

would be the simplest way to achieve this for a pcb . Mechanical models are fairly easy to get working but thermal models are quite a lot more complex. This is certainly not going to be a one button analysis solution. I have recently spent a while trying to set this up - even configuring and installing the analysers is quite involved and I have had to put this on hold for the moment. If you do get a workflow working, a good write up would be appreciated by many. This could be a really impressive feature but I think it is fair to say it’s not mature yet unless you are a real FEA wizard.

I know @MitjaN is working on that side too and he is getting already some nice results… :smiley:

1 Like

Interesting stuff, my problem is not the RF in the microstrip, but heat from smd PIN switching diodes. The tracks are basically the heatsink

Thank you all for your great suggestions. Unfortunately I do not know much about FEA and it appears to be a steep learning curve. This is for a senior design project and I have already spent a lot time simply learning how to use KiCad. I didn’t realize how involved it would be to determine the temperature rise. I may look into this after the semester, but right now I don’t really have the time to learn about FEA.

My project advisor suggested that this should be simple since KiCad gives you the conductor and dielectric losses in dB for a given frequency. He felt we could apply some simple thermo laws to determine the temperature rise in the trace. Since then I have had two other teachers tell me that it is not actually that simple. These two other teachers actually suggested we just assume a DC model and approximate the trace width and temperature rise based on the current. Since I’m only at 29 MHz, I might just take this approach and maybe throw in a fudge factor to be safe. My team and I have already spent a lot of time trying to find those “simple thermal equations” he spoke of, but everything we found seemed quite involved.

The following program appears to provide an answer to this problem, but it is a bit expensive: This is the only program that I could find that seems to take the skin effect into account when determining the trace width (without delving into FEA that is). Seems the creator of the tool also has a fair amount of literature (albeit, at a cost).

I think I will take a quick look through @MitjaN’s posts as @maui suggested.

Thank you again for your time. If you have any other suggestions, I would love to hear them.


This rabbit hole is as deep as you care to make it. :wink:


At 29 MHz, skin depth in copper is 12um, of the same order as 35um 1oz copper. I would expect the RF resistive losses to be ~3x the dc value at a given current.

1 Like

So ordinary I post each subtopic separately but I’ll try and pack them all in one response. So this is going to be a long post.

For start I’ll go slightly off topic, but maybe my thought can help you. As much as I can gather from things written down, you are doing a project in an educational setting. If this is the case, then I imagine the thermal aspects of the project are secondary, so just add as much of active cooling as you can (fans). Hopefully this would give you enough time to make the required measurements before you see the smoke. If thermal aspects are among the primary requirements, and you are bound by volume, amount of active cooling, … then the first thing I’ll say that you are being way too less for the task at hand. Thermal design of electronics for final operation is a serious task.

Now going towards FEM. I cannot agree more with what @hermit said. If you don’t know nothing about it and you don’t have a lot of time available for learning and you don’t have somebody to mentor you, you better don’t touch it. It takes a lot of knowledge and there is a ridiculous amount of details on every step. I am on this path, but I don’t have a project depending on my success. So thing are progressing slowly. Furthermore, the electrostatic and probably even RF FEM, are quite exact as you have every parameter for every material quite defined, and I imagine that for the first project you won’t be going into anisotropic or non-linear materials. The thermal FEM is fuzzier with heath dissipation from surfaces to ambient quite weakly defined. I’ve seen factors from 5W/Km^2 to 15W/Km^2 in still air conditions. So which do you choose? I don’t know. Now add active cooling to the mix and you are screwed.

So coming back to your conundrum. In case of @davidsrsb I’d just make several PCB’s with different copper area and test them in the same conditions. Instead of PIN diode you can use zener diode and produce the same loses on it as you expect the PIN diode to have. If you have an option to produce PCB’s quickly this is way faster than learning FEM. As for your case I’d go with @davidsrsb remark regarding skin depth and then I’d just use KiCad’s trace width calculator. It’ll give you ballpark values.

And finally KiCad, FreeCad and FEM. As @maui alluded, I’ve dabbled with FEM. I don’t want to publish my findings yet (so don’t bother searching) but if I condense them:

  • Thermal and electrostatic FEM with FreeCad is doable, but not practical especially the meshing part
  • KiCad with FreeCad (fcad_pcb macro) is a good avenue to generate .step files so that you can import geometry in other (better, more expensive, …) FEM programs. There the analysis is simpler.

Great source of information is anisim Open Source Engineering Software

When you say not practical, is is computing time, or some other limitation that prevents its use, as this is something I am currently trying to get a solid grasp on, and have already spent the better part of a week remaking models with multiple materials to as accurately as I can represent the problem space… as my designs would be a in sealed plastic box, that should atleast fix the ambient and airflow issues.

Also chasing up any kind of guide to even get a valid mesh from a kicad PCB, been struggling with this for a while.

First of all, you have to take into account that I am more or less self thought in this field so you are getting advice from somebody who:

  • does not have much experience in the first place
  • might have wend astray somewhere

With all this said, I found that the meshing is the weakest part. By default, with copper modeled on PCB (with fcad_pcb FreeCad macro), you’ll get a lot of nodes. This will in turn cause a lot of calculation time. And sometimes you can’t really get conformal meshes.

Calculation times in what ballpark, hours? days? weeks? Also I hold no issue with learning from self-taught, so honestly if you could even write up your current method to get a result, I would be ecstatic, from there I can go dig into the fine details if something is amiss,

Sorry for threadjacking

Seeing as I’m starting to threadjack, I may as well help out the OP, rule of thumb a worst case and work from there, so lets ignore conductive heat loss, as a hot spot would be somewhere near the middle of a uniform trace, so that mostly leaves heat loss via convection,

Take your heat per unit, and use the normal DC trace calculator to match up an equivalent DC current and temp rise to work out the ballpark your after.

Once you go beyond 150K nodes FreeCad has a tendency to crash. On my machine just writing the input file take about half an hour and then half an hour to calculate the results.

Thank you @MitjaN. I think I’m going to stay away from that topic for now. Thank you for posting your take on it and I hope you have success in your project. It will be interesting to see what you come up with.

I like the suggestion that @davidsrsb had with the 3 times idea. I think I’m going to use that as my fudge factor when doing the DC analysis.

Practical microstrip lines tend to be wide, 3mm for 50 Ohms on a 1.6mm FR4 dielectric
This works out as around 2A rms at 29 MHz for a 10C rise. This is 200W, a fairly high power HF radio.

There are many meshing sw available in FreeCAD …
You may ask for some suggestion @ FreeCAD FEM forum.

@bernd (the FC FEM developer) is a very responsive FC developer and could peek in to the thread to help in solving your issues with the meshing.
Note: the link to @bernd profile is available for FC registered users.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.