Is there a way to have “invertible” pad numbers?


I am currently designing a board that uses switches. I was wondering if there was a way to assign pad numbers with custom rules or more flexible constraints? For my switch, I would for example like for the left pin to be of “number 1 or 2”, and the right pin to be “the other number” (the one that hasn’t been selected for the first pin), hence the routing can be optimized by connecting the first track to any of the two pins, and the second track will have to use the other pin.

I hope my explanations are clear enough, I don’t think this is possible because as far as I understand pins seems to be strictly linked to nets. Would be a cool feature otherwise!


Clear as mud. I think you need to attach a drawing here.

If the switches are physically symmetrical, just rotate them on the layout to make routing better.

If they are not physically symmetrical, rotate the symbol to exchange the pins on the schematic, then update the PCB.

1 Like

I have never used that feature (as I prefer to make change at schematic and propagate it to PCB) but probably it is possible to make some changes when designing PCB and then back-annotate to schematic. Except ‘probably’ I know nothing more. May be it exist, or may be not and is only planned, or may be it has now only limited possibilities like switching OpAmps or gates between them. I don’t know as I don’t need it.

Yeah, that was I was trying to avoid. Footprints are not symmetrical (it’s for a mechanical keyboard switch footprint supporting multiple brands I just designed) and symboles are also not, so there’s no way to make it pretty like I’d want I guess.

There’s nothing preventing me from doing what I want to do, but I wondered if there was a way to assign pins in a more flexible way, so that when routing you just choose whichever pin and the other one adjusts automatically

The assignment of pin 1 is often dictated by the manufacturer, especially if the part can be assembled by pick and place machines.

Perhaps two different footprints. Same pad layout, different numbering?

Maybe have to reverse the symbol on occasions.

Some ECAD tools have pin swapping and gate swapping, but I haven’t seen these in the documentation for KiCad. In the tools I know that had it, it was more trouble than it was worth.

Oh, pin swapping is indeed the functionality I was looking for. I just asked my colleagues working on Altium and indeed even them prefer not to use such features, even on complex designs like SoM.

I have just found the WireIt plugin, I’m not sure if that could help, I’ll check it out later.

It seems that this feature is tracked in this GitLab issue from 15 years ago.

Thanks everyone for the help!

Yeah, you found the correct issue in gitlab. I tried to justify there why the feature you are asking for would be logical thing to have (the symbols, physical footprints and physical parts are functionally agnostic about “polarity”, so why should the user handle it manually?). However, I’m not sure if it would be so easy to find a workflow which would work automatically for all cases when using the footprint, especially when routing. For example, you couldn’t start from an ambiguous pad. The software doesn’t know how you actually want to route before you finish routing, so it couldn’t be fully automatic. The best bet would be to have a shortcut for swapping the two pins while routing when you are approaching the pin (or are starting from the pin).

Indeed it is not as simple as it looks. I never tried other implementations like Altium’s, there’s probably a way to do it so that it’s useful even if there are some constraints.

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