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

In my reply to retiredfeline, there’s two images of a circuit where I tried his suggestion* with a switch. The switch has 2 pads with number (1) and two pads with number (2)

  • The suggestion was to simply give two pads the same number and Net, and DRC would understand that they are internally connected in the switch’s footprint

However, DRC says that the two F.Cu zones (both belonging to GND Net and with pad number (1)) are not connected.

Your image: Yes that I can do, but the problem is that DRC doesn’t understand that there is an internal connection inside the switch? What if you’d draw a GND zone that would get an island inside of your trace… would it not say that the island was unconnected to GND even though it is, by the internal “jumper wire” inside the switch?

[Edit clarification]

Perhaps others can explain better than me and repeating myself (because I don’t understand) isn’t helping.

Thus, let me suggest that, in lieu of Asking:
• What if you’d draw…
• Would it not say…

Try the suggestions and some attempts to answer your own questions. If you don’t get the answer you need, post what you’ve tried with Clear/Clean, Images and files).

So you are using the inherent connection within the device to make the connection between the two GND pins. The device isn’t part of the footprint so KiCad doesn’t “understand it” . . . not sure how you fix that for DRC purposes, sorry.

@Gaunitz : your requested feature (marking pins as internally connected) is currently not supported.

A gitlab-issue for internal connected pads (like your switch-example) is open, but no consensus was found about the implementation: Support virtual jumper connections (off-board connections) between pads (#2558) · Issues · KiCad / KiCad Source Code / kicad · GitLab.

I don’t know any good workaround for this.

2 Likes

This is Not a solution to your need but, it may answer part of your question about Zone and Trace under the Buton-Sw

Trace is on GND net
Zone is on TOFU net

This uses the new Zone/Fill Tool. Because they are on different Nets, the Zone abides by the Keepout settings

ADDED: Naturally, a next question might be: What if I need a GND (or other) Plane under the Btn-Sw and what if I want to connect the Button’s Pins…

Picture worth 1000 words (?)…
Think of TOFU as VCC or other… The Zone abides by Settings. The Traces from the Pin to Pin’s were done in PCB not in Footprint.

[Edit: It took a while to write this so the question had already been answered when I posted]

I’m sorry, I’m not explaining my feature suggestion clearly. I don’t mean that you should do the work for me, I just can’t get any of the suggestions to work.

This is the problem:

I need to get DRC to understand that a jumper wire exists. In the following example the wire is inside a tact switch. (In my original post problem it’s the two internally interconnected GND pins of an Arduino Nano.)

First: The copper zone island that R3 connects to is isolated, that’s expected

Second: Now I add a tact switch that in physical reality has “internal jumper wires”. I get the same type of error, because DRC doesn’t understand that they are jumpered.

Third: Now I add a line on F.Cu in the switch footprint. I get errors because of the intersecting traces.

RaptorUK,
Yes! Thank’s for summarizing :slight_smile:

1 Like

mf_ibfeew thanks :slight_smile:
I’ll just reroute with a couple of vias then :slight_smile:

I understood you correctly. No, Can’t cross tracks on different Nets or Planes.
And, perhaps more importantly to get comfortable with is that the Button’s internal connections do NOT need to be re-produced on the PCB or in Footprint. You just need to connect your circuit to them as desired. Think of the Extra two pins as convenience hookup pins. They won’t DRC error.

This is the internal circuit

btnsw

And ,this snippet is a built product I did awhile back - multiple BTN’s with Trace between Pins. Nothing was needed to ensure connection between internal connected pins…

Here’s snippet of the PCB (flipped horizontally)

If you really want to take advantage of the jumpering capability of those switches, you could make the connection between the two pairs of identically numbered pins on an unused Cu layer and then not submit that layer for fabrication.

2 Likes

Retiredfeline ideally I would be able to define such a copper layer (a “hovering layer”?) inside the footprint, DRC would understand the electrical implications of it, but wouldn’t export it…

Are you trying to squash everything onto one Cu layer? I’ve never had problems with space for the (redundant) tracks connecting same numbered pads.

BlackCoffee I think it works when you draw the traces to the pads (as long as the pads have the same number and belong to the same net) but not for bridging zone fills? Or maybe I’m getting tired

I’m trying to cram a lot of components within the width of an Arduino Nano. Since the Nano has two GND pins I thought I could use one as “GND input” to Nano, and the other as an “GND output” from Nano to other components. I will still do that, just ignore the DRC error :slight_smile:

Perhaps I wasn’t clear enough… And look at my posted image - see the numbers…
In all of my posted images, there are only two Numbers, 1 & 2. There are 4 Pins.

ADDED: Because not all Btn switches are identical, consider when not certain, the best solution is grab a DMM and test the Switch Open and Closed. Then you’ll know what’s connected internally and what gets connected when Pressed…

I’ll look into that :slight_smile: The manufacturer I use are importing KiCad files directly so it would depend on how they interpret that layer

At the moment I have no time to read the thread (certainly will do it later) but may be the discussion with developers in 2019 can shed some light on the subject:

What I remember is that I suggested to just assume pads of footprint with the same number are connected even there is no connecting them copper at footprint and developers had something serious against it what I didn’t understood why. It was in some way connected with PCB testing by manufacturer and I don’t know if it was associated with files already being exported for it or only future planned in 2019.

I read the gitlab discussion. From my perspective it’s less logical for a user to rename the pads, it feels strange to rename pad 29 to 4 (both are GND) on an Arduino Nano. Maybe it’s not supposed to be used that way, but having pad numbers correspond to pin numbers help when routing.

The idea of each pin having a field in the symbol called “jumper group” or similar, and then add the pins to same group sounds appealing to me :slight_smile: Or maybe it was in the footprint, not the symbol, but anyways…

Agree.
But during those discussion I had in mind:

  • touch key constructed of several rectangular pads but really having only 2 pads (Key.png in my first post there), in V5 I couldn’t make one pad from these pads,
  • push button having 4 pads, but really 2,
  • coin battery having 3 pads but really 2.

For such footprints the rule - the same pad number means they are connected would work, I think.
I didn’t thought about DIL, TQFP like footprints with selected pads connected internally. For TQFP microcontrollers even pads are connected internally I assumed that they have to be connected also at PCB so didn’t thought about it in this context.

It may not be a good idea to potentially route large currents through the chip.

2 Likes