Spreaded or dislocated pads for pots and switches

Dear all,

I have just started using KiCAD and hence I am new to this forum. So please excuse me, if this is a basic question, but I couldn’t figure it out myself, and searching the forum didn’t bring up the solution either.

I am designing a schematic/PCB that uses some 3-pole switches (SPDT) which are not mounted on-board, but somewhere in the housing and connected to the board by cables.
Drawing the schematic and designing the board works fine in general (KiCAD is really cool btw :grinning: :+1: :+1:) but when it comes to incorporate the switches I have a problem.

My first attempt was using a three pole connector as footprint, and this worked fine for a start.
But in “real life” there is no need that the three cables must be connected with a connector. In fact the routing could be improved, if each of the single cables is soldered at its own “optimum” spot. I could of course achieve this, by replacing the SPDT in the schematic by three individual mounting hole pads. These pads can then be arranged on the board as desired.

The screenshots shows, how I replaced one of the two SPDTs (that is/was SW1) by three pads.

However the schematic would lack some information, e.g. that there is a switch (or a pot). And I have the feeling that this might lead to problems, for example when simulating the circuit.

To solve this I tried to be extra smart, and connected the switch by three net labels

What happened then is probably clear to most of you: of course the footprint of the switch is still present in the PCB editor, as the switch is still a part of the schematic. Deleting the footprint gives a corresponding error.

Is there a proper way/workaround to handle this? Like a function that allows me to place the soldering pads of the 3-pole connector freely on the PCB. Or like a flag, that tells KiCAD that although the SPDT is present in the schematic, it is not needed on the PCB? Or can we define cables (flexible ones) in the PCB editor?

It might be relevant, that I am aiming for a single sided board. Just mentioning this, as this might explain why I am not simply using some routes on another layer to get the connector connected.

Many thanks in advance,

Just design a custom footprint for the switch that has pads spaced how you want.

I thought there was an easy way to move a footprint pad with Kicad 6.99.
It seemed to me that with Kicad 5 it was more natural to do.
I think I only used this feature once or by mistake I don’t remember well.

Returning to the question :
With the mouse I did not succeed but with “move exactly” it can be realized.

Consequently, just make the footprint with 3 PADs put as you want and then move them to the pcb where they are needed.

Well yes, I got the same idea. But if I design a custom footprint, the location of the pads will be fixed again. This means when I work on the layout of the PCB, I cannot simply change the position of a single pad without changing the footprint again. Or can I create a footprint, whose pads are not locally fixed (wouldn’t make that much sense though)? Up to now, I had no need to create a custom footprint, so I am not aware of what is possible or not.

Anyway, this means that each pot and switch would require a custom footprint. No offense meant, but this sounds not that attractive to my.

As I wrote, I am new to KiCAD, so if this is the way to go or the most efficient approach, then ok and thanks to you retiredfeline.

Another approach that came to my mind (maybe someone would like to comment on this):
could it work, if I create a second small board on which the switch and pots are mounted, and connect this board to the main board with a couple of single pad connections? I think that is not that far from reality, as these small boards could also carry some LEDs for example.

I have to be honest I don’t have much experience in the arbitrary movement of PAD over the footprint.

For such a footprint you don’t have to draw the “courtyard”.

Then once inserted on the PCB and moved the pads to the required places, the footprint maintains that arrangement if it is not “updated from the library”.

However, I think someone better prepared than me on this topic can help you better.

Thank you Fabio!

The command “move exactly” seems to be a step in the direction where I want to go. Especially, as no individual footprints are required and the adjustments also work if several instances of the same footprint are present. Too bad that it doesn’t seem to support drag&drop, but I think I prefer this solution anyway.

Well you have to decide if it’s one component or three. KiCad doesn’t have the concept of variable footprints. Nothing wrong with 3 separate pads if that’s what you want, just means the switch isn’t represented in the schematic and BOM unless you put it in on one side and stop ERC from complaining by labelling the terminals NC or ignoring the warning, and privately wire it up.

I can’t understand why the mouse can’t be used?

In the scheme it can normally be represented as a switch.
And only the footprint pads that will be moved.

For what I tried out so far, I think Fabio is right, and that’s why I like this approach. By using “move exactly” one can move the single pads of a prefab footprint. This adjustment prevails even if the board is updated. Only by using “refresh footprint” from the context menu the changes will be reverted.
The schematic shows just the symbol of the Switch and therefore I guess the ERC and BOM will be fine as well.

But eventually, I will also follow retiredfeline’s suggestion, because by first creating a custom footprint, I can get rid of the outline of the footprint. Because after having adjusted the single pads, the outline will be merely an empty box, without any use or information.

And as written above it seems perfectly fine to have more instances of the same footprints and to adjust their pads individually. So one single custom footprint could be used for each of the external components.

So the only question left is the one that Fabio did raise: why can’t the exact movement not be carried out by using the mouse? :wink:

Maybe not being able to edit the pad positions by mouse is deliberate, otherwise users could put pads in standard footprints out of alignment too easily?

I think there’s value in using a fixed pattern of pads for the wires to the switch because it reduces the chance of miswiring compared to random positions on the board. It’s it because you cannot do 2 layer boards? Single layer boards on consumer products were/are like that, wires running from say the volume potentiometer to irregular points to reduce traces.

Go in to Preferences > PCB Editor > Editing Options and check “Allow free pads”.

Background: modern EDA tools are built mostly for SMD boards, where free pads are an anathema. On the other hand, at least one of the Kicad developers is an old-school through-hole guy (where free pads were common-place). Thus the setting.

Background 2: we were discussing the other day whether or not we needed to support splitting symbol units across sheets. I mentioned that someone might want to put their tube heaters on a separate page. Blank stares.

(OK, it wasn’t really that bad, and there were other examples brought up, such as dual opamps, but it makes a better story the way I tell it. :sunglasses:)


Maybe not being able to edit the pad positions by mouse is deliberate, otherwise users could put pads in standard footprints out of alignment too easily?

True, and hence I would not expect or ask for this behavior as a default. But currently, the “move exactly” function only works by entering digits. So in my opinion (and probabl in Fabio’s as well) the user should deliberately activate the “move exactly” mode, but then be able to do the work by using the mouse.

I think there’s value in using a fixed pattern of pads for the wires to the switch because it reduces the chance of miswiring compared to random positions on the board. It’s it because you cannot do 2 layer boards?

You hit the nail :slight_smile: Frankly, I am not even sure yet whether I will use stripeboard, etch it myself, or have it manufactured. I am a mechanical engineer, who does a little electronics from time to time - no rocket science involved :wink: So in my situation it’s a trade-off between having more vias to place (possible source of error) or having distributed soldering pads (which can be a source of error too as you mentioned). But other’s mileage may vary…

Oh my, now things are getting sweet… :smiley:

Jeff, many thanks for both, pointing out that option as well as explaining the backgrounds. I love it when I understand why things are designed the way they are. I have no experiences with SMD, but I can clearly understand the requirement of not being able to accidentally move a pad. In general this is probably the best approach also for TH boards. Can I define a hotkey for that option? I haven’t found it yet, but maybe that’s just me…

Many thanks to all of you - I must say I am very positively surprised by the speed and number of replies.


I’ve used 3 one pin connectors in the schematic attached to (in my instance) a pot. That gave me three independent pads on the PCB.

And now that I’ve seen this option I remembered it was available.

It seemed to me that there was the option under the preferences of the pad instead it was in the general preferences of the PCB editor.


[EDIT] “Move exactly” has a greater privilege than setting in preferences.

Yes, non-free pads is to prevent accidental movement. If you do a Move Exactly or Position Relative To we assume you really do want to move the pad.

(Same, I think, for editing the pad position X & Y in Pad Properties. Not sure on that though.)

Generally I have enough space on PCB such that I made several footprints to accommodate spread-out terminal. I CNC mill my PCB’s and prefer large pads.

The two on left have large pads with Holes offset from center.
The Three on right are T0-92 (stock, spread-out, and spread-out with large pads…

Just grab a footprint, save as copy then move/resize pads…