I have some SMD parts that have a recommended copper pattern for heat spreading. Can I include this in a Kicad module? I don't see a convenient way to draw filled copper polygons that aren't pads. I'm concerned that a heatsink constructed from pads will exclude desirable soldermask.

The specific part is just a CLV1A Cree RGB LED in a PLCC4 package. http://www.cree.com/products/pdf/LED_Lamp_SolderingHandling.pdf

  • \$\begingroup\$ What kind of SMD parts? Some QFPs and many QFNs have a ground/thermal pad beneath the die, which needs special consideration and won't affect routing much (and should not get soldermask). Alternatively, some SOTs have thermal tabs which are recommended to be attached to a certain amount of copper for heat dissipation. Which style package is it? \$\endgroup\$ – Kevin Vermeer Nov 28 '11 at 17:07

Kevin asked me to write up a real answer. Here goes...

Mike's Footprint Guide

In most CAD systems, a part footprint (a.k.a. its decal) should focus on just those things that are immutable with the part. These should include, at the very least:

  • Copper pads for all solderable surfaces (pins, tabs, pads, balls, whatever). Even if something is not electrically connected, it should be soldered down to provide mechanical support. DFN/QFN parts are notorious for popping off the board if you only solder the edge pins and the board (or whatever it's in) is later dropped. The thermal pad, if any, must be soldered down or you won't get the needed thermal performance.

  • Openings in the solder mask for solderable surfaces. You should not assume that these are the same dimensions as the copper: in most cases they should be larger! This is because the solder mask is not perfectly aligned to the copper; it can be off by up to 0.1 mm (4 mils) in any direction, so your solder mask openings should be larger than the copper by this much on each edge, so that the mask won't cover the copper even if the mask is off. The better PCB shops can align solder mask to within 0.05 mm (2 mils), which allows 0.5 mm pitch parts. A piece of solder mask should never be less than 0.1 mm (4 mils) wide, since a piece that small (called a "sliver") might simply fall off. (Skipping discussion of SMD ["solder mask defined'] pads for BGAs since I doubt you're using those.)

  • Silk screen pattern. This should be an outline of the part to show how it is placed relative to the pads. Check with your PCB shop to see how narrow these lines can be; 0.15 mm (6 mils) is not uncommon. Silk screen tolerance is worse than solder mask's; 0.12 mm (5 mils) in any direction is common. Therefore, keep silk screen at least that far from any solderable surface. Don't expect the PCB shop to remove silkscreen from solderable areas; there's nothing more embarrassing than getting your board back with your polarity marks on the pads themselves, so they float away (solder flux usually breaks off silk screen) when soldered. Finally, if the part is polarized, place polarization marks in silk screen, but make sure these marks are visible after the part is installed. Nothing like wondering if that capacitor, diode, or IC is on right when the circuit isn't working.

Optional items:

  • A paste mask specifying where solder paste is to be deposited. This can be omitted if you're hand soldering. If you're using reflow to solder BGAs or DFN/QFN parts, the paste mask becomes very important and, like the solder mask, you can't assume that it's the same dimensions as the copper.

  • A courtyard, which is an outline around the footprint, usually on its own dedicated drafting layer. This specifies the area of the circuit board that is reserved for that part. This keeps parts from being too close together, which makes short circuits easy and cleaning difficult. Some old-school libraries draw large brackets in the silk screen to achieve this effect; I hate that, because it wastes space you could put the reference designation or polarity mark.

  • Assembly drawing layer. This is usually a simplified representation of the part (a box is usually fine) with the reference designation in the middle and a polarity mark somewhere, if needed. This helps you assemble the board if you can't rely on the silk screen, and can be used for reference when debugging the board.

The relevant standard is IPC-7351B, which gives extensive guidelines and equations for determining pad size based on the mechanical dimensions and tolerances of the solderable surface in order to form an optimal solder joint. For those who don't want to do the math (i.e. most all of us), they have provided a land pattern calculator that helps with almost all of this. Note, however, that it is just a calculator: you have to pay extra for the version that exports library parts, and I don't think it can export to KiCAD anyway. Personally, I'm fine with the free version; I'm responsible for the footprint anyway, so I may as well draw it and check it, and this gives me all the numbers.

(Side note: I use Mentor Graphics' PADS at work, and it has an ASCII import/export format for footprints and other library items. So I wrote up a Python library that lets me write scripts to create all my footprints. I don't know if KiCAD has an interchange format like that, or better yet built-in scripting, but it should.)

The footprint isn't the whole story, though.

Thermal Management

Sometimes a part has a thermal pad. These are tricky for hobbyists because they can't be reached with a soldering iron and need to be connected to a net such as ground. Thus solder paste and reflow (for hobbyists, a skillet can be made to work) are used. However, the pad itself might not be big enough to dissipate the heat from the part (fiberglass is an insulator, sometimes used in attics).

There are two key thermal specifications for a part, found on the datasheet: theta_JA ("thermal impedance, junction to ambient") and theta_JC ("thermal impedance, junction to case"). Both are specified in degrees Celsius per Watt (should really be Kelvins per Watt, but oh well).

Theta_JA is what the package can do all on its own. To see if it's enough, first figure out how many watts of power your chip will dissipate (can be done by various means), multiply this by theta_JA, and add it to your highest ambient temperature (45 C may be good enough for outdoors, 60 C for the guts of a PC, and even more for an automotive engine compartment). This will give you the highest junction (chip) temperature; compare this to the datasheet's junction temperature limit (usually 125 or 150 C) to see if you're under it. If not, you need a heat sink.

There are a few ways you can do a heat sink, but they all intend to solve the same equation. Remember theta_JC? That tells us how good the package is at getting heat to the case (i.e. thermal pad). It's usually far, far lower than theta_JA since it doesn't involve sending heat through the fiberglass PCB or plastic part package. However, there is another specification, theta_CA (yep, "case to ambient"), that is set by your heat sink.

Finding the theta_CA of a heat sink isn't simple, though. For discrete heat sinks (i.e. pieces of aluminum or copper), and some materials like gap pads, the datasheet will usually tell you the impedance. For copper pours, I haven't found a good calculator (anyone?), so if desperate, I'd read IPC-2152 Standard for Determining Current Carrying Capacity in Printed Board Design. It's written regarding how much current you can put through a trace given its dimensions and location in the board stackup, but could be beaten into use here by just pretending that "current" is generating heat in the copper (some resistivity of copper math should work here; any power lost in the copper is dissipated as heat) and seeing how big the "trace" (your copper pour) needs to be.

Anyway, once you have your theta_CA, you add it to theta_JC to get theta_JA and then do the math as above to see if your part will overheat. Or you can work backwards to see what the maximum theta_CA is that lets your part live.

Copper Pour Heat Sinks

This is what you're doing now: you're adding copper to the part's thermal pad to get heat away from the part. Basically, you just add copper underneath the part, overlapping the thermal pad, and extending out whatever edges of the part are open. You will be limited by the surface area available (i.e. board size and area taken by other parts). This is why it's not part of the footprint: you don't know what it needs to be until you're laying out the board, you may need to change it during layout, and you don't want to redraw the footprint for every design. Make sure the software doesn't add thermals between your copper and thermal pad; this will render your heat sink useless.

The piece of the heat sink under the part should be covered with solder mask. This is because you don't want the thermal pad's solder to wick away from it and possibly give you a weak or failed joint. Also, a lump of solder under the wrong part of the chip can lift that end off the board, making it hard for the other pins to connect.

Once you have the heat sink out from under the chip, you can either expose the metal or cover it with solder mask. Covering it will lower the theta_CA and is desired if that's all the heat sinking you will do. Then you just need to make sure there's enough copper to keep theta_CA down (this is what your part's datasheet is recommending).

Soldered-On Discrete Heat Sinks

However, if you don't have that kind of room, you can choose to expose enough of the copper to allow you to solder a discrete heat sink right to the board. This heat sink does not need to contact the part directly, since the primary thermal path is through the PCB copper. The heat sink's thicker metal and larger surface area should give it a very low theta_CA. (Also, note that the theta (impedance) contributed by the copper between the thermal pad and discrete heat sink will be much lower than theta_CA for the copper-only heat sink because it transports heat entirely by conduction, not radiation.)

Ground Plane Heat Sinks

Another technique commonly used in the industry (and recommended by some data sheets) is to put several vias in the thermal pad, all connecting to the ground plane (in a multilayer board). This way, the ground plane is your heat sink! (Note: these vias must be flooded over where they connect to the thermal pad and ground plane; if the PCB software puts thermals in there, the magic dies.) However, if these vias are not filled, the thermal pad's solder will flow down them by capillary action, away from the pad, weakening it (as described above). To avoid this, either fill the holes (expensive) or put a copper pour under the chip as above, and put all the thermal vias in the solder-masked copper (my recommendation).

Note that if the copper pour heatsink isn't grounded, we get rule errors because the copper and pad don't have the same net (they don't have a net because it would only have one "pin") and they overlap, so we add a note to the drawing telling the human to ignore those errors.

Hope this helps you keep your chips from frying!

  • 2
    \$\begingroup\$ +1 - nice answer on the issues of footprint design/thermal management. I'm wondering however whether this should be included in a generic "footprints/thermal design" type question or Wiki, as it's not actually the best fit for the question and therefore won't be found easily by those who are looking for this type of info (@Kevin Vermeer?) \$\endgroup\$ – Oli Glaser Nov 29 '11 at 5:02

Are you sure you want to use the recommended pattern in the footprint? That locks you into that pattern whenever you use that part.

I've done this before in Eagle, but 90% of the time I add the information about the heat sink on a non-printing documentation layer, and add the copper in the PCB. Text to the effect 'X in^2 of heat sink copper required' and a line (on a non-printing layer) with the recommended outline on a non-printing layer make it easy to add this in the normal editor. By doing it this way, the footprint is flexible with respect to nearby parts.

If you are sure that you want it in the footprint, this message indicates that the ordinary line/poly tools are available in the module editor if you're currently on a copper layer (either copper or component). I don't have an installation on my current computer to verify this, though.

Also consider that you may not want soldermask over the copper. While soldermask (having a dark color) is more effective at radiating heat than shiny metal, it's less effective at conducting heat if you have significant airflow (either convection or forced) or a mechanical heat sink atop the copper.

  • \$\begingroup\$ Informative. I like the idea of putting the outline in a documentation layer. In Kicad footprints are separate from parts so you could have both a heatsink and non-heatsink version. \$\endgroup\$ – joeforker Nov 28 '11 at 15:34
  • \$\begingroup\$ I haven't worked in KiCAD, but I can say that in industry, we don't put the heat sink in the footprint. We put the required pad (the part that needs to have an opening in the solder mask) in the footprint, and then add the heatsink as a copper pour or similar object overlaying it. Sometimes, if the heatsink isn't grounded, we get rule errors because the copper and pad don't have the same net (they don't have a net because it would only have one "pin") and they overlap, so we add a note to the drawing telling the human to ignore those errors. Also, make sure the pour doesn't put in thermals. \$\endgroup\$ – Mike DeSimone Nov 28 '11 at 16:06
  • 1
    \$\begingroup\$ Whether or not to have solder mask over the copper also depends on if having a large conductive patch open on your board is a good idea. (That said, in industry standards solder mask is only counted as a partial insulator, since it can be porous; if you want a dielectric withstanding voltage between your copper and your external heat sink, you have to cover the mask with Kapton tape or conformal coat or similar. Electrical tape is not recommended because the adhesive fails easily.) \$\endgroup\$ – Mike DeSimone Nov 28 '11 at 16:10
  • \$\begingroup\$ @MikeDeSimone - What do you mean by "in industry we don't put the heat sink..."? Do you mean there is some standard recommendation not to do so? I'm asking as e.g. Altium has many footprints with thermal pads, and JEDEC documents include thermal pad recommendations for footprints. You can easily have two versions of a footprint. \$\endgroup\$ – Oli Glaser Nov 28 '11 at 16:40
  • \$\begingroup\$ @OliGlaser - I'm not Mike, but I suspect that "in industry" means "in my company." This is also true in my company, where we use Mentor Graphics software. We have a custom library, but none of the components have a thermal pad. Of course, this assertion ignores QFNs and QFPs with thermal pads under the part; I think the question is asking about SOT-223, SOT-89, DPAK and the like. Also, the fact that JEDEC documents have thermal pad recommendations doesn't mean that your footprint should have the thermal pad included, just the final layout. \$\endgroup\$ – Kevin Vermeer Nov 28 '11 at 16:47

You can make it from a few pads and give them all the same number/letter (e.g. call them all T for thermal or something) Or you can make it from a few lines on whatever layer you want it on, or a combination of both.

I think I have a couple of parts I made like this, so if you can't figure it out I'll see if I can find them and mail them to you.


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.