I’ve been using Kicad for a couple years now and love this tool. But I’ve now run into a problem, I haven’t been able to solve.
Made this LED footprint out of overlapping and adjacent rectangles. Even with the pads having the same names, pcbnew isn’t convinced some pads are connected and shows rats between the overlapping pads. But, when I output gerbers the Cu is as I intend. I can make pcbnew happy by overlaying traces to connect the sections but I’d rather understand the root cause for this behavior.
The attached pic is from Kicad version 5.0.1 but I tested it under 4.0.7 too and the behavior is the same.
I think this effect is a clearance artifact.
Your 1.GND pad has a relatively large clearance - much more than pin 2.
The fill areas pull back by that clearance.
It seems strange to have an own-net clearance higher than other nets, so you might want to dig to see why/where that is happening. Do you have clearance set by pad maybe ?
Just checked every pad in the footprint and the pads are all set the same. All clearances are set to 0 so the pads should get their clearances from the parent or netclass. Not sure what the parent is in this context but the net classes are all set to a 8mil clearance.
Custom pads do not work with thermals. They can only use solid connection.
It is also quite hard to get rounded corners with the current drawing tools. (you would need to set the polygon thickness to two times your required radius and inset the polygon by the radius. Quite hard to achieve without scripts)
However this footprint can still be simplified by using rounded rectangle pads instead of 4 circular plus 2 rectangular.
@PaulP try to set the zone to connection solid instead of thermals. If this connects correctly then the problem is with your thermal parameters. Play around with them a bit to see if you can fix it.
If setting it to solid does not result in a solid connection all around the pad then you have something fishy going on with your footprint. In that case it might help to post the footprint here for review.
Something is pushing out the clearance to the GND pad tho, notice how it is a larger clearance than pin2.
It appears that the thermals are almost working, and they try to come in, but appear to bump into the clearance of the main pin1, before the thermal branches reach minor pin 1s
(Maybe thermals are not cross checking for other-pads have same-net ?)
if you can fix that clearance setting, those thermals should then reach inside the minor pin 1’s ?
The underlying cause is that pads are connected by their center points at the moment. If a pad’s center overlaps with another object, it is considered connected.
This is a simplistic approach but works for the coarse connectivity check at the moment. DRC does the much slower check of looking for overlap of each, small outline segment. This is why (well, one of the reasons) why DRC takes much longer to look for errors than the online connectivity.
That said, this is not a forever issue. We’re working on improving it and hopefully you’ll see some fixes for this issue in the not-too-distant future.
In your example, if you were to make the bottom two pads taller such that they extend their center into the large pad 2, that will resolve your current issue.
@PaulP So I think the takeaway of this description is try to make the rectangular pads longer so their centers overlap the large pin2 pad. If there isn’t enough space, maybe using shape offset for the pad to move the “center” (where a drill would be if it were a THT) to overlap the large pin2 pad.
Overlapping the pads joined them all together so they are recognized as a single net. This also cleaned up the gaps in the paste showing in the board viewer .
And, adjusting the pour spoke width made the pad to pour clearance uniform.
This was an interesting case as all looked well in the footprint viewer but it all seemed to fall apart once placed onto the board.
That appears to have more pads than strictly needed (look closely at all the clearance outlines), and you can see it is thinking about more spokes, but they fail because of the fill-repel not being quite smart enough to check for ‘repel unless same pin’
If you reduce the pads to just 3, maybe it can fit more spokes. (make the 2 smaller pads just long enough so their centre is within the large pad)
The footprint comprises 18 pads. I couldn’t figure out how to make a box with the corners cut off so I used overlapping rotated squares as triangles with small rectangles as filler. It’s these triangles that caused most of my DRC issues.
I realize I missed the new trapezoidal option. Time to play around with that and see if I can simplify things.
Another option to consider: KiCad v5.x introduces a new footprint shape, rounded rectangle. If you can get away with radiused corners instead of chamfered corners that should help cut the pad count down to 3.
That does not allow thermal connection to zones. Custom pads only provide either solid or no connection. (With no connection the user can take care of creating the thermal spokes by themselfes.)
I realize I put way too much time into this but it was a good learning experience.
I ended up using the trapezoid tool then pushed the graphic to the front copper layer and merged that with an ‘anchor’ pad. The thermal connections will have to be handled manually and that’s ok for now.