Stacked pins are creating errors in DRC in PCB Layout

Hello

This is the first time I want to use stacked pins, because on a GPS module I have, the RX and TX pins are connected internally. Pin 14 & 48 and 15 & 49 are connected together. According to this instruction, I’ve made pin 48 and 49 passive and invisible and named them equal to the corresponding visible pin.

When I create the PCB it work’s somehow.
What makes me unsure is, that the lines from the ratsnest indicates that there should be also wires between the pins which already have an internal connection.

Also the DRC shows an error for each connection with the message: “Missing connection between items”.

Therefore my question: Did I something wrong, or is the DRC and the “ratsnest logic” simply not aware that there are stacked pins?

Here I have also a picture with a simple test I’ve set up to illustrate the situation:

Best regards

Simon

Therefore my question: Did I something wrong, or is the DRC and the “ratsnest logic” simply not aware that there are stacked pins?

No. Yes.

From the picture the symbol (and the stacked pins) looks alright.
The stacked pins in the symbol-editor are only relevant for the schematic, the stacking has no influence on the pcb-editor. So the pcb-editor has currently no knowledge about “internal connected” pads and therefore demands that you connect 14-48 and 15-49 yourself.

You could either ignore this drc-error (as you really know the cause of the error) or draw this missing connection.

Short gitlab-search revealed this discussion about Why not assume pads with the same number are connected? (lp:#1843993) (#2558) · Issues · KiCad / KiCad Source Code / kicad · GitLab about this theme. Nothing ready, but the developers know the topic.

1 Like

You have stacked pins 14 and 48 in the schematic. For KiCad this means those pins are always in the same net, and thus it draws a ratsnest line on the PCB.

You can’t “stack pins” on the PCB because pin locations are defined by physical properties.

One place this is annoying is in the very common push button:

This button is explicitly designed with internal wire bridges, so a keyboard matrix can be designed easily on a single sided PCB, but KiCad interprets two pins with the same pin number in such a way that they have to be connected on the PCB itself. Which is pretty much opposite of the intention of this button.

KiCad does have a switch symbol which has just all all 4 pins with different numbers, but this does not work with the already mentioned footprint because that footprint has two pins with the same number.

KiCad does not have a function with the meaning of saying that a footprint has internal connections, and a wire only has to be connected to only one of the external pins.

2 Likes

Dear @paulvdh

Thanks for the explanation.
Then I guess I have two options?
a) Just connect the wires to one of the two pin’s and ignore the DRC error message.
b) Change the Symbol to the pin which I really want to connect.
or maybe a 3rd option, that in an future release version something will be implemented.

Thanks also for your reply @mf_ibfeew
Ah as I see the post in gitlab is still open :-).
Sorry I did not found this topic as I have searched before my post.

You have to handle this yourself in some way.

I do not like ignoring DRC violations, because you quickly loose track of what DRC violations are important or new when you start going down that road. It is possible to suppress individual DRC violations (Right click on a violation in the DRC window) and that is a bit better.

But modifying either the schematic symbol or the footprint seems a better option, but this also opens up the possibility for confusion if the symbol or footprint is re-used in another project. For maximum compatibility with other project, you can make all the significant pins visible in the schematic symbol, and then just put “no connect” crosses on them.

1 Like

c) Change the symbol to have both pins and connect to one of them - you will be able to use the same symbol next time even you will be connecting to the other pin.

1 Like