[Solved] Footprint to Symbol relationship

Normally designers start drawing a schematic using symbols, then assign the correct footprints (if not using default footprint) and populate them on pcb.

I have a design from a fellow (schematic and pcb) what neither have a correct footprint nor correct symbol. Now I found a correct footprint in library and do not know, what is the default symbol therefore.

What is the correct way to find out for a given footprint from which symbols they are used by default ?

You have a design but it does not have correct symbols/footprints?
What do you mean by “not correct”?
Please clarify your problem.

Btw, there is no “correct” way to find a symbol starting at the footprint. This is like wanting to identify a machine’s type by the fact it contains M3 screws. Impossible.

1 Like

Not necessarily. For some “physical” stuff like connectors, mounting holes, logos you can often find the footprint easily, but then it’s not always obvious what symbol to use, like if you should use a generic connector symbol or something specific to that footprint, where logo symbols are and so on.

It almost feels like you want to turn a bicycle into a racing car by exchanging parts one by one. It can be done, but it’s not a very efficient method.

Similar with KiCad.
In KiCad the main reference is the schematic with it’s schematic symbols. If you want to change things, then do not delete a schematic symbol and place a new one. If you do that, then the link between the schematic symbol and the PCB gets broken. (But it can be repaired).

If you want to change a schematic symbol, then just select it, press e to edit it’s properties and use the Change Symbol button.

Alternatively, you can also use Schematic editor / Tools / Edit Symbol Library Links. Either method can be used to swap a single schematic symbol or groups of them, depending on how you use the dialogs.

Changing footprints is very similar. You can either edit the Footprint … link in the symbol properties, or use Schematic Editor / Tools / Edit Symbol fields. You can also use the Schematic Editor / Tools / Assign Footprints tool, and probably some more methods. After you’ve changed a footprint link in the schematic, you have to run Schematic Editor / Tools / Update PCB from Schematic [F8] again to push your changes to the PCB. You have to pay some attention to the dialog and make sure that Options / Replace footprints with those specified in the schematic is turned on.

The mapping between schematic pins and footprint pads is done directly with pin numbers in KiCad. It is a very simple and straight forward connection. Disadvantage is that different IC packages can have pins at different locations. Especially when you change from a DIP footprint to some small SMT variant, the pin numbering can be different. The normal way in KiCad to solve this is to have different schematic symbols for such parts (The ATMEGA328 is an example of such a part).

If you have such parts, then the smarter option may be to just delete the schematic symbol and place a new one. This will leave an “unused” footprint on the PCB, and the F8 process will add the new footprint also to the PCB. The “Unused” footprint has to be deleted manually. (If you leave it on the PCB, it will generate DRC violations, because it’s no longer part of the netlist)

It’s also possible to change footprints on the PCB, and then push those back to the schematic, but this answer is already long enough. (I also skipped over some other details).

Reference from symbol to footprint is what everybody normally is doing but opposite to what I am searching. To be more specific:

The design uses a 9 pin D connector what shows several problems.
A) The footprint is downloaded from everywhere like Ultralibrarian
B) The symbol therefore is selfmade by a former fellow using 9 units of single female symbols

Problems to A)
First glimpse, it looks like the footprint is correct and PCB assembly is without problem. After power up, the PCB unfortunately produces serious smoke (no YT video available). The reason is the footprint, where pins count in direction for male sub-D while there is a female sub-D soldered. This needs a mirrored pin count direction.

Problems to B)
The footprint (wrong and correct one) shows 2 mounting bolts. This makes a total of 9+2 pins. For the moment, it is not possible to connect a shield trace. The existing self made symbol does not map any unit to connect the mounting pins and does not contain graphics therefore.

Browsing the footprint library, I found a well sorted Connector_Dsub with the entry
This footprint seems to have everything perfect what I need.
As the footprint is available in Kicad default lib, I assume there is also a matching symbol therefore. I simply have to use in my schematic if I know wich on it is and how I find.

  1. Change / update your self made schematic symbol to include those pins. (Make sure to match pin numbers with the footprint.)
  2. Connect those pins to something in the schematic.
  3. Update the PCB from the Schematic to sync the netlists.

I don’t see why this would be:

Be very careful with footprints of connectors. The connectors themselves are standardized, but the PCB footprint of connectors is not. There can be hundeds of different footprint for the same connector. If you look at Aliexpress for example, you can see assortment boxes with 100 different micro usb connectors. These boxes are meant for phone repair, as each brand and model phone may have a slightly different connector footprint.

KiCad does have schematic symbols for DB9 connectors, both Male & Female, and with and without mountingholes.

But do double and triple check connections, as you’ve already noticed it’s very easy to make mistakes here.

Ok, thanks. Short answer: There is no way to find from which symbols a footprint is referenced.
E.g. DIL14 is used for many, many diffrent ICs.

The DB9_Female_MountingHoles found in Kicad Lib seems fine for me and I am going to use it now.
If there would be a revers lookup from footprint to symbol what I searched for,
it wouldnt work as this symbol does not have any default footprint.
User have to find matching symbol/footprint combinations by browsing the lib itself
same is true for opposite direction

Many thanks for all the hints. I am going to play around exploring further features of the Kicad library.

There is indeed no such thing as this reverse lookup.
In KiCad, footprints are just separate entities.
Only schematic symbols can have a link to a footprint to use.

And, as Aris_Kimi added below, you can indeed search through the symbol libraries to find which symbols use a certain footprint. But this is still a “forward” lookup.

There is a valid need that someone might want to check which symbols use a footprint.

To do so one can search for the footprint name instead of a symbol name in the symbol editor.
( This only applies for a library search, symbols in design files can only get highlighted at schematic editor when selecting the footprint on the pcb editor. )


Not always. There are some generic symbols with no default because of a wide variety of footprint choices.

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