Hi all,
I’m running in to an issue with a prototype design with a short that I can’t quite uncover. I made an initial version of this board and had it sent off to be fabbed a few months ago. Before having it made I made sure to re-fill all my copper pours and ran the DRC a few times just to suss out any stupid mistakes, and the DRC report came back only with a few intentionally unconnected pads, and a handful of overlapping courtyard issues for components that were a few mils too close (all the pads for these footprints still had plenty of clearance), all basically non-issues for my needs.
The boards came back and passed my incredibly non-scientific visual inspection, but weren’t behaving once assembled. I narrowed down the issues to my power regulation circuit (ERC on the schematic passes). The quick and dirty TL;DR is that I’m regulating +12v from an off-board supply down to +5V that’s used in one portion of my design, and that same +5V down to +3.3V for another.
I eventually realized that, even on an unassembled board, the 3.3V net had a short to the ground plane somewhere. Now, I’ve made a handful of changes to the design in my project since I had this version manufactured, but I have the gerbers that I’d sent to the fab and pretty carefully checked the 3.3V net and Ground plane in the gerber viewer and can’t find any connections between the two nets. The current version of the design in Pcbnew has no DRC issues, and highlighting the +3.3V net gives me a pretty decent indication that there’s not a short between the two (in the current version of the design, at the very least). That said, I struggle to think that the pcb fab would have a consistent manufacturing error across every board I ordered, and I’ve validated that my design is within the manufacturing limitations of the fab service I used. I’d more readily believe I’ve messed up than every one of my boards being manufactured faultily.
I have noticed, though, that DRC doesn’t even seem to care about intersections of pads/traces/copper fills of non-connected nets - you can set this up pretty trivially by placing a component somewhere in a copper zone of a net un-connected to the component, filling it, then rotating the part around one of it’s pads such that a pad ends up intersecting with a filled portion of a copper zone. From here, run DRC and opt not to refill copper zones. In my testing, DRC doesn’t complain at all that there’s a non-ground pad intersecting a copper pour on the ground net. This seems somewhat understandable though since I was just prompted with the info that my zones were out of date, but I could still see showing an error here being useful.
So all this to arrive at the title, basically: Is there a good/reliable way beyond ERC in Eeschema and DRC in Pcbnew to check either kicad file for unintentional net connections/shorts? I’m running KiCad ver 5.1.9, but am happy to upgrade to any stable v5 release.
I want to make sure that I don’t send another round of prototypes off and throw away another $100 because of user error. Any advice or tips/tricks that y’all can provide would be greatly appreciated. Thanks!