Good document/tutorial about philosophy behind libraries

I’m trying to learn Kicad. I have difficulty with the libraries.
I really would like to read a good document explaining how Kicad deals with libraries (standard, external, custom etc), where they are stored and what library tables are. How are footprints and 3D models bound to symbols. etc.

I looked at different tutorials. But they all just explain how to create one or so. But I need a deeper understanding how they are handled. What is the way of thinking behind it?

I hope such a document or tutorial exists.

Not sure where you would find a document, but an explanation is easy:

There are two types of libraries:
1/ Kicad supplied libraries.
These are read only libraries that cannot be modified. They may be used in the Kicad suite of programs or they may be copied to another location for external saving or modification.
They exist along side the Kicad program in your computer and are regularly upgraded along with the Kicad program.

2/ Everything else.
This consists of all created, imported (from 3rd party), custom and copied and/or modified from Kicad supplied libraries.
These are all placed in Personal Libraries created by you in a place of your choosing that has both read and write attributes.

There is a good (I hope) explanation for Personal Libraries in the FAQ here.

All created, imported (Kicad or 3rd. party) and modified symbols and footprints are addressed through the Symbol and Footprint Editors.

The recognised Kicad workflow is:

1/ Create a Schematic.
Inside the properties of each Symbol on that Schematic, the Footprint should be attached.
2/ Create the PCB from the Schematic.
Inside the properties of each Footprint, the 3D image should be attached.

There are alternatives, but the most trouble free method of creating a project is to start with a Schematic, conclude with the PCB and mechanically verify with the 3D image.

If you have any more questions, please ask. :slightly_smiling_face:

So when I use a symbol from a library that I already used a lot of times, I still need to found out again which footprint to use for it and select it?
So the fact that I used the component on several boards with success does not mean the next time I use it will be a success. Because I can make a mistake ans select the wrong footprint.
Or is there a way to bound them in the library?

I did see in some tutorial that a symbol library is a file containing symbols. While a footprint library is a folder containing a file for each footprint. Is that an old version or is that still the case in Kicad version 7?

What is a library table? Is that new in Kicad 7?

So symbol libraries can come from the internal Kicad libs, personal global libs or personal local libs. Right?
When I select a symbol in the schematic editor I see a list of symbol libraries. From which of the tree mentioned type are these? Can I select that? Or are they all thrown together?
And is the same true for footprint libraries?

So many questions :slight_smile:
maybe you should look also into the documentation. Quite long to read, but covers most questions. Also many questions are answered if you walk through the getting-started tutorial.
(all available with

bound footprint to library …

yes, you can build “fully defined symbols”. These symbols already have a footprint assigned on library-level. So every time you use that symbol → you get the right footprint.

symbol library == file / footprint library == folder

correct (with v6+v7 + next v8)

What is a library table?

With the library-tables Kicad manages:

  • where are the libraries located (on the harddrive)
  • which libraries are enabled
  • an which are enabled and visible

Use Preferences–>Manage symbol libraries / Manage footprint libraries to add new libraries (including your own custom libraries) to the library tables (fp_lib_table, sym_lib_table).

A couple of answers for you:

  1. Symbol pin numbers correspond directly to Footprint pad numbers (pin no. 1 on a symbol will always be connected to pad no.1 on the PCB). edit: There are some symbols in the default library that have hidden pin numbers - for example diodes always have cathode on pin one. You can double check it by opening pin table in symbol editor.

  2. Symbols can have a specified footprint so you don’t have to assign footprints again and again. Just open the symbol properties in symbol editor window and click the ‘Footprint’ field to open footprint browser. After selecting a footprint, every time you place that symbol it will have the selected footprint already assigned.

  3. Current file format is:
    symbol library - all in a big text file
    footprint library - lots of small files in a folder
    you can also edit the files in notepad if you really need to (just be careful, wrong edits might render them unusable).

  4. Library table is a file that keeps track of all the installed libraries, stores their names, locations etc. These are important if you want to use an external library (for example downloaded from the internet). You can edit these in preferences → manage symbol libraries or manage footprint libraries. To install a new library simply press the ‘add existing’ icon.

  5. Usually all the enabled libraries are accessible in a library browser, project-bound libraries from other projects will not be accesible. I recommend using primarily global libraries, since project-specific libraries are generally a pain to use. All symbols and footprints in a project are cached in the project files, so even if you open the files on a different machine, with different libraries you can still edit the design.

Hope that helps.

Yes, that is still the case.

As a further comment to @mf_ibfeew: this is fully described in the link to the FAQ I provided above.

As an example of the comment 2/ by @Dawid_Cislo :

Resistors have one basic symbol but many footprints. Perhaps have a resistor library organized as below:

Rs0402 (SMD size 0402)
Rs0603 (SMD size 0603)
Rt025 (THT size 1/4W)
Rt05 (THT size 1/2W)
Rt1 (THT size 1W)

where each symbol has a shorthand description for an associated footprint, then 3D assigned, permanently attached.


That list is the Kicad Official Library list.
You may add to that list with your own created libraries or you may remove some or all of the Kicad libraries and use only personal libraries.
Many users “hide” certain Kicad libraries that they will never or rarely use, only adding those libraries to the list when required.
Many users only use the Kicad libraries to build personal libraries and then “hide” all the Kicad libraries.
The choice is yours. Do as you feel is personally most convenient.
Library manipulation tools are also described in the FAQ link I gave in my original reply.


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