I hereby certify that I am not simply asking someone else to design a footprint for me.
I am trying to layout a PCB to take Jetcon 2 and 3 way 2.54mm screw-less spring terminal blocks. These have pins that are arranged in rows of 2 shorted together (I guess to improve mechanical strength) for each connection. I couldn’t find the correct symbol to use in the schematic so I used generic 1x2 and 1x3 connector symbols.
For the PCB, I modified a similar footprint by adding extra pads that aren’t on the original schematic symbol. Now I find that I cannot connect traces to these added pads. Is this because the component no longer matches the one on the schematic.
Is there a way to force a connection or do I have to go back to the schematic and fix that up somehow so it shows the additional component pads?
I’d rather not have to rerun everything and start from scratch if it is not necessary.
This is a story with several aspects, and there are different methods which could match with what you have written here. To resolve this ambiguity I’ll write down my method.
If there is either a schematic symbol or a footprint that is quite like, but not exactly to my wishes, then I use it as a basis to create my own. So the first step is a bit of library management:
The simplest is to create a project specific library, and put copies of your new schematic symbol or footprint in it. ( library structures for those are not the same, but details are in the link above).
When the copies are safe in their library, you can modify them with either the Schematic Symbol Editor, or with the Footprint Editor.
Next step is to make sure that you use the schematic symbol from your own library, and that the footprint link in the schematic also points to the footprint in your own library. For a new schematic you just take the parts from those libraries directly, If you have an existing schematic and decide later that you want to change it. Then do NOT delete the old schematic symbol from the schematic. Instead you should edit the library link only. You can do this by hovering over the schematic symbol, press e for edit, and then change the “Library Reference”. The book case just right of the name opens a browser window.
Alternatively, you can use Eeschema / Tools / Edit Library Reference for a spreadsheet like overview or edit.
When these library references are changed, the changes do not show immediately in the schematic (this is a small, somewhat annoying bug). But they are (or at least should be) updated as soon as a redraw is triggered, for example by panning or zooming. If all else fails, save the schematic, exit Eeschema and start it again.
Footprint links are handled in the usual manner. Not much to say about that.
With **Eeschema / Tools / Update PCB from Schematic [F8] you update the PCB as usual. The Netlist relies on names of pins in schematic symbols to be the same as the pad names in Pcbnew. These pin names / numbers are alfanumeric strings, (of at least up to 4 characters in length). BGA’s for example use pin “numbers” with both letters and digits.
If you accidentally deleted a schematic symbol, and placed a new one, then the link between the schematic symbol and the footprint on the PCB is lost. On how to fix that, read:
Or, alternatively: If you already have PCB tracks layed out, you can simply delete the old symbol from the PCB, and replace it with a fresh one from your new library, and then snap a pad of the Footprint to a track end on the PCB.
I have to admit my library management skills are woeful but I did try to put my modified symbols and footprints in my project library with new names.
Adding pads that are not on schematic:- The schematic symbol only showed, say, 3 pins/connection points but the actual component has 6 pins split into pairs of 3 rows with each pair connected together to form one input. So the actual schematic symbol shows 3 connections but the PCB footprint shows 6 pads (I created a footprint with 6 pads). These need to be connected/wired together in pairs. For each pair one pin connects OK the other refuses to accept a connection.
This makes me wonder if it is something to do with the schematic symbol only having 3 connection points and my footprint having 6 thereby creating a conflict.
(I needn’t add that I’m just starting out with Kicad).
I’m going to try “Piotr” suggestion first “If the new pads in footprint have to be connected with already existing ones give them the same number” as it sounds pretty straightforward.
Check your footprint. Maybe three of the pads are off grid. Unless you can place your mouse cross-hair in the centre of the pad your track won’t join properly. You may also need to alter your track laying grid.
If you are an Imperial person 100 mil = .1 inches.
If your connector is Imperial you need to edit your footprint with an Imperial grid. If connector Metric, edit with a Metric grid.
You may also join the pads inside your footprint by adding a wide graphical line or a polygon (RHS toolbar) and you could delete the numbers from three pads.
This will give you three pads with six holes.
Maybe you want to have a look at the footprint Button_Switch_THT/SW_PUSH_6mm
In this footprint there are two pairs of pins and the pins of each pair have the same pin number. Result is that you only have two pins for the schematic, but four on the PCB. Result is that if you use this footprint, then Pcbew wants you to connect all the pins with the same pin number to each other on the PCB.
This is a pretty standard feature of KiCad. It is also used extensively for all IC’s with thermal pads at their bottom. For those IC’s a mix of THT pads and SMT pads is used to create the thermal pad on the IC, and all those pads have the same pad number. (Just search for “thermal” in the footprint libraries).
In my opinion it would be better if Pcbnew would in such a case assumed that pads with the same number are connected internally and allow you to connect your track to any one of them and allow you to connect them at PCB or not as you want. In that button pads with the same number are just the tips of the same piece of sheet metal.
Many years ago (not with KiCad) I was doing a keyboard of such buttons. Imagine matrix connection - from right and left pin 1 tracks to neighboring keys and only way for vertical tracks (from pins 2) left between both pins 1 of button (assuming 2 layers and bottom is full GND) but KiCad insists on you to add (really not needed) track from pin 1 to pin 1.
The topic appeared in what I wrote:
From conversation there I understand that there are some important reasons KiCad can’t assume pads with the same number are internally connected but that reasons are too complex for me to follow.
We create a Footprint that will work with KiCad; only pins 1 and 2 are on the Footprint.
We put the Footprint on the board and connect 1 and 1 with a copper trace, and 2 and 2 with a GND fill. The reason for this is because the switch should still work if there is a an issue with any 1 of the pair of solder joints.
Reliability is not the issue here.
Those switches are specifically designed to easily create a keyboard matrix on a single sided PCB.
So you route a wire to “Left pin 1”, and then you route a wire from “Right pin 1” to the next switch in the row.
This leaves the area under the switch available to route the columns. So each switch doubles up as a wire bridge.
For reliability … A single bad solder connection can disable a whole keyboard row or column. The solution is proper assembly. The PCB should be supported so it does not flex when buttons are pushed, and buttons should be placed properly, so the backside rests against the PCB and the solder joints do not receive much mechanical stress.