Need for footprints with internally connected pins for (for track bridging*) sorry I meant jumpering, not bridging

This has been asked for many times before, all the topics are closed so I’m starting a new one.

I think a way to make a footprint with internally connected pins is needed. The information has to be understood by the DRC.

A couple of solutions for specific problems have been suggested, but they either don’t work in the case of track bridging, or I didn’t understand them (?)

a)
For tact switches there’s often 4 pins but only two internal paths, the pairs of pins are internally connected
Slide- and rotary potentiometers often have mounting pins that connect to the casing. In practice these are often connected to ground

b) Development boards like Arduino often have multiple ground pins. You can connect one of them to the power supply GND, and the others to supply ground to other components.

Use case:
It’s a common design strategy to have such components bridge other tracks, in order to supply ground to other parts of the PCB

Example:

There are two examples in the image; reset pins are not critical. Since I don’t use it for bridging other tracks with +5V, I could mark one of them as unconnected.

All the best
Andreas

Just to be clear: The image doesn’t show an Arduino Nano PCB, it shows another design which has a Nano underneath

Just give the pads for the internally connected pins the same numbers and the routing will require you to put them on the same net. You’ll see this tactic used for the 4 pin SPST tactile switches.

Well I must be doing something wrong… DRC still complains that the zone is unconnected, there’s a line between pad10 of U3 and the zone

Also if I now to a Update PCB from schematic I get an error because symbol and footprint don’t match

Say you have a component in which pins 1 and 2 are internally connected, also 3 and 4.

Label two pads in the footprint 1, and two 2. The routing will know that there is a connection between them. This is what’s done for the 4 pin SPST tactile switches. The symbol has only pins 1 and 2, but there are 2 pads each with labels 1 and 2.

another approach…

Simple to Edit an existing Footprint, draw line (on Cu layer) from Pad to Pad and Ignore DRC errors or create Rule. Best to start with Existing Footprint and Save Copy to edit…
This way, you get Graphic of the Trace between the pads

In the Editor

On the PCB

retirdefeline, apparently I don’t understand how to do this. This one gets the error


BlackCoffe, this is what I want to do, but how can it be allowed by DRC to put vertical traces that cross the two copper traces in SW2? Or is that why you say “ignore DRC Errors”?

If doing as I showed, you won’t get DRC errors. My caution about DRC was to hedge any bets on it working/not-working as Kicad versions may impact results.

I encourage trying it… that will help learning…

ADDED: You can set the Pad Numbers in the same Editor - my image above shows Pad numbers…

BlackCoffee, I can’t get it to work… I tried drawing the bridge both as a line and as a pad in the footprint editor. When I use the footprint in PCB editor I get DRC errors because the horizontal trace to the resistor is intersecting with the footprint’s “bridge trace”.

Is one of those zones an isolated island ?

I’m starting to think I’m not explaining myself well enough. Maybe I should have used the word “jumpering” instead of “bridging”?

RaptorUK, yes it is, that is the use case: To use a part as a jumper over traces on the PCB, like you often do with slide potentiometers.

Another possible solution would be if I could figure out how to draw a “jumper wire”… Then I could add that between pin 4 and 29 of the Arduino Nano in the original image. (I need to show DRC that the GND pins on Arduino Nano are connected)

[Edited to address RaptorUK]
[Edit 2, clarification]

It’s not complicated: Grab some Popcorn and watch the show… :sweat_smile:

ADDED: Oh, you need to do the Editing in the Footprint (or, could draw on PCB - your choice. BUT, either way, you can’t cross other tracks on the same layer. You could use Jumper Wires (search my posts - I’ve posted a small collection of them)

I deleted one Track in Btn-SW and remade it in video.

Then, added tracks to toggle switch and did DRC. Only errors are clearance (because I did Not set rule to ignore that (or, could set Global pref for it)…

Thanks :slight_smile: I understand how to make the part, but the problem is that the new footprint traces need to jump over other traces on the PCB, like in the first image with the Arduino nano on top of a lot of other components

As I said, use a Jumper-wire. Here are two of my Footprints…
and here’s how to make them in FreeCAD/other

Jumper_10mm.kicad_mod (1.3 KB)
Jumper_30mm.kicad_mod (1.3 KB)

These are the STEP files referred to in the Footprints above
Jumper_10mm_p1016.step (17.3 KB)
Jumper_30mm_p3048.step (15.9 KB)

And, wired up on PCB (bottom view)

Thank you for spending all this time BlackCoffe :slight_smile:

The problem is the opposite. The two pads are already jumpered on the arduino board, or in the tact switch. I just need to get DRC to understand it.

In your last image with a black background, DRC has to understand that in the lowest footprint Pad(1) and Pad(2) are electrically connected but not on F.Cu or B.Cu

Let’s 'Un’confuse this…

You can’t jump over a Trace without either:
• Using Jumper-wire
• Putting Trace(s) on different layer

A DRC rule won’t help crossing over other traces on same layer…

Most Tactile Btn Switches have the Internal connection so, you don’t need to do anything about their Traces except to hook your circuit up to them (in otherwords - you can run traces between the PinContacts.

Well that is it: it can be thought of as a jumper wire, but it’s already on the Arduino board or in a tact switch or slide potentiometer chassis, but how to tell DRC that

There shouldn’t be DRC errors.

If having problem with your circuit, post your files/graphics so I/we can more clearly understand your issue…

Example of running Trace between Stock Btn-Sw that contains internal connections…
No DRC Errors.