Does anyone know how to create an annular ring pad that either has the center as it’s connection point, or alternatively, multiple connection points around the ring?
The ring is a ground pad for a microphone. At the center of the ring is a thru-hole, but it cannot be plated (i.e. must be NPTH rather than PTH). The mfg says solder will wick down the hole & plug the microphone port.
I have a working footprint that we used for our small batch of prototype boards. It works fine. But our assembly house wants us to add thermal reliefs prior to running production quantities.
Below are screenshots of solid connections vs thermally-relieved connections. You can see that the thermal relief ends up wonky - the spokes only attach where I defined the actual pad when creating the footprint. And I can’t just add traces where I want them because they’d connect at the same attachment point as the thermal reliefs.
BTW, to create the footprint, I drew an annular ring, placed a small circular pad inside it, and then did the “edit pad as graphical shape” thing. I couldn’t use the NPTH as a starting point and put a copper ring around it because I’d get an error saying the final shape must merge to a single polygon. I also tried placing several small pads inside the ring, hoping they would all merge if they had the same pad name. Unfortunately that didn’t work, either.
The problem I have is that the mfg’s recommended footprint shows the drilled hole diameter is slightly less than the inside diameter of the annular ring. So it’s not as simple as defining a circular SMD pad & then putting a PTH in the middle of it. I’d end up with an annular ring that’s too wide. It would maybe still be OK, but if I can, I’d like to stick with the mfg’s recommendation.
To answer your question about how I built the original annular pad, I did it like this:
Draw a circle on the F.Cu layer. This becomes the annular ring, so choose the diameter & line width accordingly. Kicad doesn’t consider this a pad yet, so…
Create a small pad that fits inside the annular ring (see screenshot).
Right click on the pad & select “Edit pad as graphical shape”
Right click again & select “Finish pad edit”. Kicad has now merged the pad with everything touching it - i.e. the annular ring, thus creating a new ring-shaped pad.
Unfortunately that doesn’t work in this case. It’s one of the first things I tried way back when I built the footprint.
It would be the perfect solution if the drilled hole diameter perfectly filled the inside of the annular ring (i.e. if you were just drilling a hole through a copper circle). But the datasheet defines the drill hole diameter to be slightly less than the inside diameter of the copper annular ring. Kicad doesn’t like that. And if I try to put an annular ring around the NPTH, I get the “can’t resolve to a single polygon” problem.
Is it really that important the drilled hole is such a small difference smaller then the hole in the pad?
From the looks of it the difference is smaller then the drill placement tolerance anyway.
I also started responding with a workaround, but when I noticed johannespfister typing, I went on to another thread.
One workaround is to simply draw it manually. And this can be done in a bunch of different ways. You can set the pad itself as “not connected to a zone”, and then draw some copper tracks manually (And lock them, so they stay where they are).
Another way is to first let the zone connect solidly and then use a rule area to create a few keepout areas for zones.
A third way is to add some more pads to the footprint itself, and give them all the same pin number. KiCad interprets multiple pads with the same pin number such that it wants you to connect them all, so I guess each of them will get it’s own thermal spoke.
A forth way would be to make the graphics in the pad more complex, and draw it together with all the thermal spokes inside the pad itself.
Would it be possible to place a small SMD pad inside the hole? That wouldn’t change the real PCB (since you can not place floating copper) and would generate ERC messages. But maybe this way you can connect tracks to the centre?
To the tolerance, in used the attached footprint and the PCB manufacturer had to remove a small amount of copper near the hole anyway, in order to produce it. But he did that on the Gerber level. They need to touch the Gerber anyway and make similar adjustments.
Yes - exactly. I’m not sure how big of a deal it is to have that gap between the edge of the drill hole and the inside diameter of the annular ring. My guess is it’s not critical at all - and it would make my life much easier at the moment. Nevertheless, if the bullseye is the mfg’s pad layout, I’m still trying to hit it.
For now, at least.
This is ambiguous. It says NPTH but usually manufacturers interpret copper over board edge as edge plating, and in this case it’s identical with a PTH pad except for the hole type. I wouldn’t trust it.
I have no Idea what I’m looking at in that screenshot. I suppose the white ring is on Silkscreen, the hole (If there is a hole at all) is covered with solder mask, and the track seems to be extending inside the ring. I also see no thermal spokes.
Is it really that important the drilled hole is such a small difference smaller then the hole in the pad?
Valid question. I really doubt it. Nevertheless, I’m trying to use the mfg’s recommended pad layout if at all possible.
One workaround is to simply draw it manually. And this can be done in a bunch of different ways. You can set the pad itself as “not connected to a zone”, and then draw some copper tracks manually (And lock them, so they stay where they are).
When I tried this yesterday I was having problems because my track only had one pad to lock onto - the pad where the thermal spokes already existed. But I just tried again, this time drawing a trace beginning at a random GND pad on the board. I then moved that trace to where I really wanted it to be (i.e. thermal relief spoke), and then locked it in place. I did a couple more and - voila! - a thermal relief. Unfortunately it’s giving me DRC’s, but I can live with that for now.
A third way is to add some more pads to the footprint itself, and give them all the same pin number. KiCad interprets multiple pads with the same pin number such that it wants you to connect them all, so I guess each of them will get it’s own thermal spoke.
I tried this before, too, and it didn’t work as I’d hoped. I’m not really sure why. With the spoke angle set to 45 degrees I get the screenshot below.
With 8 of those small pads, it is a bit overdone. The pads on the left side can not connect to the zone, so KiCad does not draw thermal spokes on that side. For the pads on the north and south side I’m not sure. But with an automated zone algorithm you can not fine tune it, and therefore doing it manually probably remains the best option.
Understood & agreed. I wasn’t expecting all 8 to be connected. I was just putting a pad every 45 degrees so I could either choose a spoke angle of 0 or 45 degrees, & hopefully either would work.
Thanks again for the help!
Steve
P.S. I’m now investigating your other suggestion: solid pad connection with manually drawn keepouts. I’m guessing there won’t be any DRCs associated with this, and I dislike those pesky little things. I have to keep remembering why the ones I’m ignoring are OK.