GND fill connects, VCC does not

First, before I forget. It looks like both D1 and D2 are shorting your power supply…

It does indeed seem so, but it’s not a fact.
You can see this in the 3D view [Alt + 3] and then disable the “board” and the mask layer. KiCad has the ability to remove the annular rings for THT pads on layers for which there is no connection, and when looking perpendicular at the PCB the gap in the inner layers is covered by the annular ring on the outer layers of the PCB. In the 3D viewer it looks like:

If you show the pads in outline mode with PCB Editor / View / Drawing Mode / Sketch Pads then it also becomes clearer. You can also use the button on the left toolbar:

image

There seems to be some kind of interference between the size of the pads and the distance between the pads. In the screenshot below, (with pads in outline mode) I have also modified all pads to make them a littlebit smaller. They were 1.524mm, and I shrunk them to 1.5mm All pads of both the GND net and the VCC net now connect as expected.

image

You can do this yourself with:

  1. Select the footprint in the PCB editor, and press [Ctrl + E] to load it in the footprint editor.
  2. Select a random pad (I used B1) press e for edit and change Pad Size X to 1.5mm.
  3. Accept this change by clicking on [ OK ] to close the pad edit window.
  4. Right click (anywhere on the PCB as long as that B1 pad is still selected).
  5. In the popup menu, select Copy Pad Properties to Default
  6. Select the other pads (there is a difference between swiping from left to right and from right to left).
  7. Right click again but now select Paste default Pad Properties to Selected
  8. Close the Footprint Editor. KiCad prompts you with a “Save before closing” window. Select [ Save ]
  9. You’re now back in the PCB editor. You may have to press b to refill the zones.

2022-11-23_testroute.zip (102.6 KB)

With that change it looks a lot better but I’m not entirely sure why the small difference in the pad size matters.


In this next variant I did not change the pad size, but instead changed the pad properties to: Copper layers: F.Cu, B.Cu and connected layers in the footprint editor for all the pads (except mounting holes). With this setting Kicad can also create the thermal spokes for all the pads.

2022-11-23T02:49_testroute.zip (99.8 KB)

I’m not exactly sure where the limits are, but a thumbs up to mf_ibfeew for noticing:

Now it’s time to close my eyes for a few hours and hopefully be a bit clearer when I open them again.

Paul… First and foremost, a hearty thank you for the greatly appreciated effort you have put forth… I’m just getting back from different evening obligations, but I will read through this more carefully tomorrow and try the suggestions.

I kind of assumed that the clearance would be better on middle layers, but I wasn’t sure how to concretely confirm that. The 3D viewer is an interesting tool that I had not played with. I shall have to add that to my repertoire of ideas… cool

As for the shorting with the diodes. LOL. I was wondering if anyone would notice that! hehehe. Of course, it was just a simple and meaningless sample. The diodes were effective because they were thru hole components that I could easily bind to VCC and GND. :slight_smile: The diodes were, believe it or not, kind of an intentional pun that I’m tickled you saw.

Again, thank you to to everyone that has put forth ideas and help. It is always great when others are willing to take the time to help throw a life ring to others. I do this quite frequently in other forums in which I have an interest so I share your good heart.

1 Like

Quick update… I was able to successfully obtain thermal relief connections to the Vcc layer, which is fantastic. I’m super happy about that. I guess I still don’t understand why this works on one layer and not the other. The engineer in me is bothered by that because it makes me feel like the layer configurations must be different someplace. Unknowns are things I strive to quell, so I’m curious if there is any thought on the reason why it works on the one layer.

Anyhow, the most important thing is that things are working… Thanks for the quick and clearly thoughtful suggestions. Great group!

I’m very close now to the root cause of the problem.

I’ve extracted a clean version of your original zip file (again), and then: PCB Editor / File / Export / Footprints to new Library
This generates the file [Project] / Library.pretty / TE100_1734101-1_RECEPTACLE.kicad_mod

When I open this file in a text editor, all pads have their layers set to (layers * .Mask “F.Cu” “In1.Cu” “B.Cu”)

  (pad "" thru_hole circle (at 36.111 0) (size 3 3) (drill 2.6) (layers *.Mask "F.Cu" "In1.Cu" "B.Cu") (tstamp 53322f45-bdd3-4673-964a-a7fe713f0d1a))
  (pad "" thru_hole circle (at -36.111 0) (size 3 3) (drill 2.6) (layers *.Mask "F.Cu" "In1.Cu" "B.Cu") (tstamp a885586e-3a13-4754-ac24-36fc0d3fead3))
  (pad "" thru_hole circle (at -33.511 2.2) (size 2.8 2.8) (drill 2.6) (layers *.Cu *.Mask) (tstamp fc3bd02e-d505-4f55-8ffd-87e9afa8a0a1))
  (pad "A1" thru_hole circle (at -31.115 0.953 270) (size 1.524 1.524) (drill 1) (layers *.Mask "F.Cu" "In1.Cu" "B.Cu") (tstamp 8ec1fa0d-d0b2-425c-8ad6-7d8adffba453))
  (pad "A2" thru_hole circle (at -29.845 2.858 270) (size 1.524 1.524) (drill 1) (layers *.Mask "F.Cu" "In1.Cu" "B.Cu") (tstamp 28fd780a-bf16-4d03-a3d2-cd060b16e680))
  (pad "A3" thru_hole circle (at -28.575 0.953 270) (size 1.524 1.524) (drill 1) (layers *.Mask "F.Cu" "In1.Cu" "B.Cu") (tstamp 9b2af444-83f6-4eca-b0ea-65018815da60))
  (pad "A4" thru_hole circle (at -27.305 2.858 270) (size 1.524 1.524) (drill 1) (layers *.Mask "F.Cu" "In1.Cu" "B.Cu") (tstamp 84daae06-9e9d-4a56-84f5-639613e07126))

However, when I open that (exported) footprint in the Footprint Editor and look at the properties of a pad, then it claims to connect to All copper layers.

My interpretation is that this had nothing to do with either the GND nor VCC net. Somehow it got into the project that this connector does not draw pads on the In2.Cu layer at all. and a simple test confirms this. Even when I draw track to the A39 pad on the In2.Cu layer, then you can see in the 3D viewer that KiCad does not draw the pad on that layer.

I also wonder about all the other missing annular rings. According to the GUI, KiCad should always draw all annular rings on all layers, while according to the text in the file, it should at least also draw all annular rings on the In1.Cu layer.

Any update that causes the padstack to be reset to (layers * .Cu * .Mask)

  (fp_rect (start -38 4.05) (end 38 -4.05) (layer "F.SilkS") (width 0.12) (fill none) (tstamp 98aeffb9-e45a-44cb-b4fe-e3db274e15d3))
  (pad "" thru_hole circle (at 36.111 0) (size 3 3) (drill 2.6) (layers *.Mask "F.Cu" "In1.Cu" "B.Cu") (tstamp 53322f45-bdd3-4673-964a-a7fe713f0d1a))
  (pad "" thru_hole circle (at -36.111 0) (size 3 3) (drill 2.6) (layers *.Mask "F.Cu" "In1.Cu" "B.Cu") (tstamp a885586e-3a13-4754-ac24-36fc0d3fead3))
  (pad "" thru_hole circle (at -33.511 2.2) (size 2.8 2.8) (drill 2.6) (layers *.Cu *.Mask) (tstamp fc3bd02e-d505-4f55-8ffd-87e9afa8a0a1))
  (pad "A1" thru_hole circle (at -31.115 0.953) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask) (tstamp 8ec1fa0d-d0b2-425c-8ad6-7d8adffba453))
  (pad "A2" thru_hole circle (at -29.845 2.858) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask) (tstamp 28fd780a-bf16-4d03-a3d2-cd060b16e680))

What is the origin of this connector?
Can you recall how it happened that the pads were set to connect to In1.Cu, but not In2.Cu?

It also appears to be a bug in KiCad.

If the file data says (layers * .Mask “F.Cu” “In1.Cu” “B.Cu”) but the GUI claims All copper Layers for the pad connection, there is a clear discrepancy.

Also, when loading the footprint in the Footprint Editor, and then copying one pad setting to the Default Pad and then pasting those properties to all other pads, the pad stack setting gets reset.

Great research. If I can confirm, at some point I (or someone) should write a bug. I submitted one regarding phantom ERC faults that was introduced in the latest build (schema side) last week. At first they delayed it, but then others picked it up and it got elevated. I just got a github closure noticed so they’ve already got a PR for it and are merging into into main soon.

OK, I got a chance to read your last comment more carefully (sorry, doing my day job at the same time). It kind of confuses me (and I suspect you too) why there would be any references at all to the inner layers. I’d expect all of them to be “identical” actually, and now it is making me worried that perhaps I have an internal short on all of the connector pins. :(. Kind of odd.

But to answer your question… This is standard Tyco Electronics (TE) connector. The model is a 1-1734101-0 (sorry, the name for the connector in the footprint file is actually not correct). There isn’t anything special about the connector. It is just a staggered 2.54 OC connector.

As for the history of the footprint… I routed the entire board and didn’t have a problem. Then I realized that my original manufacturer (unknown) sample actually has reversed staggering from the TE version. As the TE is available, I needed to create a new footprint with the correct staggering, and then reroute the board. That is when all hell broke loose. I started with the original footprint I had from the unknown manufacturer and simply moved the pads around. That should have worked (I think), so I am baffled as to where the inner layers started to get defined in the footprint file.

Hopefully that helps

On edit… You know, it strikes me that any hard definition of layers here is probably a mistake. I think that there should be NO instances of:

(layers *.Mask “F.Cu” “In1.Cu” “B.Cu”)

Instead, I suspect that all of these should:

(layers *.Cu *.Mask)

My PCB manufacturer specifies different annular ring for outside layers than for inner.
Not long ago I thought that if hole is plated then to manufacture it a copper pads are needed at all inner layers. But recently I was told that plated hole can go through PCB even there are no copper around it at inner layers (may be not all factories can do it). Having there no pads lefts more sapce for tracks if someone needs.

Not only space for more tracks but also lower impedance of RF ground return
planes. Being able to turn off annular rings where unnecessary is a good feature.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.