Voltage Regulator PCB Design Question

I’m using an adafruit Eagle library device which uses this TO220H package for my 7806 voltage regulator IC:

This package orients the part flat on the PCB. It includes a 0.13" drill hole which I presume is for attaching some kind of heat sink.

My input voltage is 12V and I’m wondering if there is something I should build in to the PCB to disperse heat from the metal tab on the regulator. Is there something I can design on the board itself, like an area surrounding the part, or should I just use some kind of screw/heat sink?

It includes a 0.13" drill hole which I presume is for attaching some kind of heat sink.

You can use that hole for a heatsink but you couldn’t lay the regulator flat on the PCB… So you would use the other version of the Eagle part. This part is meant to have a built in heatsink directly on the PCB. You would use an array of ground vias with a ground plane that is not covered by solder mask.

Thanks Ross Robotics. I’d like to try this:

This part is meant to have a built in heatsink directly on the PCB. You would use an array of ground vias with a ground plane that is not covered by solder mask.

But I’m not sure how. I’ve used vias before to switch from the top plane to the bottom plane (or vice versa) when routing, but nothing like your photo. Any tips would be greatly appreciated.

EDIT: I gather I need two ground planes, one on top and one on bottom, and to name the Vias ‘GND’. But how do I remove the solder masks?

BTW, the pads are too close to the regulator’s body. They are 0.1" away when they need to be 0.2" away.

davep238:
BTW, the pads are too close to the regulator’s body. They are 0.1" away when they need to be 0.2" away.

Do you mean this gap here?

I’m using an existing library part (from adafruit), not a custom one. Are you saying I need to modify it and make the gap bigger?

I also see on this device that there are bRestrict and vRestrict circles around the hole - is that sufficient for acting as a heat sink or do I still need the vias?

davep238:
BTW, the pads are too close to the regulator’s body. They are 0.1" away when they need to be 0.2" away.

I suspect that it would really depend on how he bends the leads. But, I would agree that 0.02" would be easier.

Do you mean this gap here?

Yes

I also see on this device that there are bRestrict and vRestrict circles around the hole - is that sufficient for acting as a heat sink or do I still need the vias?

The restrict layers are there because it a hole. Meaning there is nothing there..

Before we go any further, how much current are you expecting to pull? This would tell you if you needed a heatsink or if a heatsink would be enough.

I searched around and couldn’t find a tutorial on making PCB heatsinks within Eagle, but did find one video that was pretty close though not in Eagle. https://www.youtube.com/watch?v=4gSgLf4zCro

I may make a tutorial vid about this but would take me a few days. In all honesty, if you are making a PCB, you should know how to make polygons and placing vias and also to rename them to be the same signal name. The only thing that you need to do is take out the solder mask on the polygon and vias.

I’ve done a few boards now and have drawn polygons for a GND plane but it’s the last part I’m unsure about.

I’ll look at my DC motors to see what the current draw is and report back.

EDIT: Here are my DC motor specs (Faulhaber DC Micromotor Model No. 1524 006):

Nominal voltage: 6V

No load current: 20 mA

Current up to (thermal limits): 630 mA

The input voltage is 12V so the 7806 will need to dissipate ((12-6)V X (0.63 x 2 motors)A) = 7.56W (worst case; there’s actually very little strain on them as they’re only freely spinning some small plastic hemispheres).

RossWaddell:

davep238:
BTW, the pads are too close to the regulator’s body. They are 0.1" away when they need to be 0.2" away.

Do you mean this gap here?

YES

I’m using an existing library part (from adafruit), not a custom one. Are you saying I need to modify it and make the gap bigger?

I also see on this device that there are bRestrict and vRestrict circles around the hole - is that sufficient for acting as a heat sink or do I still need the vias?

The odd thing about the library is that the other TO-220 packages have correct pin spacing. It’s just the TO-220H that’s wrong. I also noticed another problem - the silkscreen (tPlace), in many of the Adafruit library packages, overlaps the pads. This is also typical of the EAGLE libraries as well. I fixed both of these problems for the TO-220 packages. According to industry standards, the positive end of a polarized cap has a square pad. The Cathode of a diode (including LEDs) also has a square pad. I changed the diode and LED packages in the library, but not the caps. I downloaded the latest Adafruit library, made the above changes, and attached it here.

Depending on the amount of heat the regulator has to dissipate, you could use bare copper polygon under the regulator. To expose the copper, remove the solder mask by placing a polygon in the tStop layer, that covers the top copper pad. Connect the top layer copper to the bottom copper using vias. Use heat sink grease between the part and the copper. You may need to use a heat sink if the copper can not keep the part cool enough.

Thanks Dave! I’ll incorporate your revised adafruit library into my project.

Depending on the amount of heat the regulator has to dissipate, you could use bare copper polygon under the regulator. To expose the copper, remove the solder mask by placing a polygon in the tStop layer, that covers the top copper pad. Connect the top layer copper to the bottom copper using vias. Use heat sink grease between the part and the copper. You may need to use a heat sink if the copper can not keep the part cool enough.

For the vias, what about the thermal masks? And do I need the same shape polygon on the bottom layer as in the YouTube tutorial? And does that work out to 4 polygons - one in Top (1), tStop (29), Bottom (16) and bStop (30)? Or just two - one in tStop & bStop?

RossWaddell:
Thanks Dave! I’ll incorporate your revised adafruit library into my project.

Depending on the amount of heat the regulator has to dissipate, you could use bare copper polygon under the regulator. To expose the copper, remove the solder mask by placing a polygon in the tStop layer, that covers the top copper pad. Connect the top layer copper to the bottom copper using vias. Use heat sink grease between the part and the copper. You may need to use a heat sink if the copper can not keep the part cool enough.

For the vias, what about the thermal masks? And do I need the same shape polygon on the bottom layer as in the YouTube tutorial? And does that work out to 4 polygons - one in Top (1), tStop (29), Bottom (16) and bStop (30)? Or just two - one in tStop & bStop?
You will need a top copper polygon, which can be as large as you need. You will need to remove the solder stop (tStop) under the regulator's pad, so the pad makes contact directly with copper. Use a tStop polygon under the regulator's pad to do this. Use heat sink grease between the regulator and the copper. You will need a bottom copper polygon to also dissipate heat. This needs to be connected to the top polygon using vias. The vias not only conduct electrically, they also help conduct heat between the 2 layers. Ideally the vias will be filled with solder to better help conduct heat. Another poster showed a good example of how to arrange the vias.

I’ve added polygons to the top/bottom layers and named them GND with the ‘Thermals’ attribute unchecked (the red-dotted polygon in the photo below is obviously the top layer; you can’t see the bottom polygon as it is the same shape). I added a rectangle to the tStop layer that roughly matches the metal tab on the 7806. One via with a drill size of 0.024" named GND is inside the tStop rectangle, which I hope is enough to not have a solder mask over it. There are no other attributes of the via that seem to make sense to change, but before I copy the via and lay them out within the tStop rectangle I’d greatly appreciate it if someone would say if I’m on the right track or not. Forgive me if I’m being obtuse but I don’t want to spend money and wait 3 weeks to get sample boards back only to discover I made a mistake.

EDIT: I already have top/bottom ground planes, so I don’t think I need to add new polygons around the device. Also, adding a polygon to the tStop layer that completely surrounds the pad (roughly rectangular) results in multiple DRC errors relating to tStop on a bunch of other devices. Do I need to draw the tStop polygon around the tRestrict/bRestrict area of the regulator’s hole?

EDIT 2: Further to the above, if I just draw a small polygon in a blank areas of the board in the tStop layer and run DRC, it still shows the errors. If I remove the ploygon (delete it or just CTRL-Z), the DRC still fails.

Really not sure why Eagle throws errors with tStop… If you hide that layer, no more errors, or just approve them. I will make a tutorial on this topic today and hopefully post it this evening.

That would be greatly appreciated!

https://youtu.be/ZH8TaJm-7tw

Not much, but should get you where you need to be. It’s my first video tut, so go easy on me. And I soo hate my voice!

Some questions:

  • - Why are 2 additional ground plane polygons needed if the board already has top and bottom layer ones over the whole board?
  • - Why do the drawn polygons need to overlap the device's pins?
  • - Should Thermals be removed from the vias?
  • RossWaddell:
    Some questions:

    Why are 2 additional ground plane polygons needed if the board already has top and bottom layer ones over the whole board?

    They are needed if you are going to thermally isolate the plane around a device (regulator in this case).

    Why do the drawn polygons need to overlap the device’s pins?

    I explained this in the vid. Since the regulator's screw mount is grounded internally, the thermal plane should be grounded as well. The easiest way is to have the plane overlap the ground pin so Eagle will create a connection to the ground pin. You don't have to do it this way. You can always make a connection with a trace from one of the vias to the ground pin.

    Should Thermals be removed from the vias?

    Yes

    Looks like you deleted your video - will you be uploading a new one soon?

    The post with the Youtube link is correct. Made a video edit error and had to re-upload a new vid.

    https://youtu.be/ZH8TaJm-7tw

    Will be making more once I do some research on what tutorials are actually needed. Let me know if you have any suggestions.

    Followed your tutorial and drew the top/bottom GND planes plus the tStop/bStop polygons around the regulator. Added a bunch of vias (if you copy/paste them individually then it looks like it keeps them named GND). But when I draw the tRestrict/bRestrict area using the wire tool, I get DRC errors:

    Looks like it’s complaining about going over the regulator’s pins. Is this another case where I need to hide the tRestrict/bRestrict layers after drawing the shape and then running DRC (as I did with the bStop/tStop polygons; without hiding the layers you get DRC errors).

    It’s ok just to approve them.