Help to source, install and manage libraries?

Hi all,

I feel this should be covered in an FAQ, but despite looking i’m still as confused as when i started.

I have almost 0 EDA experience, am certainly quite new.

I suspect most of my issue might be not understanding how KiCad assumes i will operate.

My goal in a few words…
To design ready for manufacture a PCB with 3x 74HC165’s (SMD), 3x 10pin/8way resnets (SMD) & 8 connectors.
Theoretically straight forward.

I’ve had issues finding a resnet symbol that can be matched to a SMD footprint, and here is where the rabbit hole starts.

First i tried to mod a 9 pin resnet to add an extra pin, wasn’t able to save it, was a permissions issue or something.

Next i tried installing the libraries from here…

I wasn’t able to figure out where to put the files.
  1. Where do i save libraries?

  2. Are the libs @ just a copy of the pre-installed libs?

Finally, i think i need to get a feel for what KiCad might be expecting from ME.

  1. Should i be creating my own footprints, and if so are these saved in a specific location, for example in KiCad’s install dir, or in my user files, or with the project files?

If the above is so, do people have a ‘common’ are where they store libraries?
I move between 2 machines so GDrive / Dropbox is could be the go for me.

  1. Is there a way to get KiCad to automatically make my footprints available at all times without having to import them?

I think that’s all my questions, assistance and suggestions appreciated.

I am assuming you run kicad version 5. If you run kicad version 4 it gets a bit trickier.

KiCad does not care where you put them as long as you tell it where to find them. (Via the library managers. The library managers are found in the preference menus of the footprint and symbol editor. (The one in the footprint editor is for managing footprints the other one for managing symbol libs.)
Use the browse button to add libraries. (A file browser will open. Navigate to where you put your libs. Select multiple libs with shift plus left click or crtl plus left click.)

They should be. If you had kicad 4 installed previosly, kicad might still be setup for these libs. (Details about that can be found here in this FAQ article) Check it using the library managers i mentioned above.

You will not find footprints and symbols for every imaginable part. Furthermore you might have special requirements (example hand soldering) that might not be fulfilled by other libs. We have a tutorial for how to create footprints in our FAQ

No you can save them wherever you want. (As mentioned above you just need to add your personal libs to kicad via the library managers)

I would not suggest to put personal libs into the install directory.
You can of course add personal libs to the project directory. This makes the most sense if the parts in the lib are project specific. (For example if you make a specialized connector symbol that shows in the pin names which pin is used for what.)

Yes by having it in a library that you add to the global library table.

Some other helpful FAQ articles:

1 Like

I am having a similar educational experience. However, I’ve been designing PCBs for decades with other software. I waited for V5 to come out so I could create a coherent transition to a new way of doing things. I love the atomic libraries idea, having used similar approaches before and working on real production stuff requiring a BOM. I’m ready to start creating my own libraries for long term use, and now find a conundrum. I hope somebody can make some suggestions how to approach this. I know that as I move forward, a bad start can snowball into a major headache later.
I want to create families of libraries that are atomic, contain linked footprints, part numbers, and 3d files. Those details are hard coded in the symbol fields from the Digikey libraries. How should I organize my local libraries to keep valid file paths in the symbols?
I’ve read a lot of the old forum posts relating to this, and most of it pertains to v4, and does not relate to atomic libraries. If I create a project archive library, the footprint and 3d paths will be wrong, I think.
I have not found a way to copy a component/symbol from an existing library into another existing library. Only export to a new library with one part. Import symbol imports only the first symbol in a selected library. I must be missing something (he says staring into the refrigerator looking for juice, but the bottle of juice is in his hand , doh!) And should such a function be available, won’t it break the links to the footprint and 3d, or link to the source library? It seems a carefully thought out strategy is needed to do this well.
A related topic is how to reuse these components in new designs. It looks like one of the methods is to create a schematic that has all of my favorite and trustworthy parts, append that schematic to the current project, and copy/paste into the new design. Then delete the appended page. And blocks for complete circuits. Is there a better way?

Copy and paste works.

Follow the model of the official libraries, except you need to define a config variable for e.g. “MY_3D_MODELS” and use that instead of KISYS3DMOD.

If you have your own libraries, use the libraries? I guess you could create a library “Favourites” for often used items.

1 Like

Thanks bobc. Copy/ paste how? I tried it in Symbol Library Editor and nothing happens. Browse to source library, select symbol, ctrl-C, browse to destination, ctrl-V.
If I change config variable to my_3d_models, won’t that stop proper 3d function of all standard parts not in my library? I have to use only personal libraries or standard but not mixed?
I’ve been looking through the bug reports for the symbol import function, not seeing it. This must be a bug, but at this stage I have to assume all problems are my own lack of understanding. In Symbol Library Editor, I open/expand my library, select Import Symbol button, the browse menu opens to list of libraries, I select one, and it does not expand or open so I can choose a part. I only see the library name. If I double click it, the first symbol loads. It seems it should have a browser window showing the symbols to choose from.
I don’t have any libraries yet. At least not useful atomic ones. Digikey has some, and then I need to add what is missing by copying and editing in my own library, which isn’t working. Symbol Export can only write one symbol per library by overwriting, and Symbol Import can’t browse for symbol selection. So I can make a library for each part, but I can’t make a library of favorites. And so far, the footprints and 3d files all point to the original libraries.
As I said, I must be missing something.

No, you add a new variable called MY_3D_MODELS, and set the path. Do not change KISYS3DMOD.

Forget about import/export, they only work on single symbols.

Have a look at Moving parts into custom libraries

1 Like

Some time back i wrote up a detailed description that could help you (Second part is the description about symbol stuff):

1 Like

Excellent, just what I needed. Thank you both.

This implies I can also add MY_SYMBOL_DIR and path. Or KICAD_USER_SYMBOL_DIR?
Can somebody point me to documentation addressing these issues? I found section 2.4 Paths Configuration in the KiCad manual, but it doesn’t say how I can change the default paths, just that I can. How do I know what environment variables can be used? I get to define it?
Assuming yes: I create a variable MY_FOOTPRINT_DIR with path to USER\KENT\DOCUMENTS, then when I create a custom atomic connector part symbol, I place MY_FOOTPRINT_DIR/kent_connectors.lib:10pinheader in the footprint field. This is just a wild guess, please don’t do this thinking I know what I’m doing. Syntax? Guidance?

kicad main window, peferences -> configure paths

I am also not sure if you understand this stuff correctly. In the symbol you do not need to enter any paths. Kicad identifies the footprint library via the Nickname that is setup in the library table. The lib table is controlled via the library manager tool found in the preferences menu of either the footprint editor or pcb_new.

In your example the lib table would have the library setup as:
${MY_FOOTPRINT_DIR}/kent_connectors.pretty with the nickname kent_connectors.
The symbol would have the footprint field defined as kent_connectors:10pinheader.

You might want to read the FAQ articles i already posted in my first answer to this topic.

1 Like

I am nowhere as knowledgeable as Rene_Poschi but I can give you an example of my library structure


I had a number of thoughts when I did this:

  1. I don’t want anything updating my libraries unless I know and can backup those which I’ve used.

  2. I didn’t want to dig into some length path to get to the libs

  3. I wanted my personal library (JRF) to be separate

  4. I wanted it to be easy for my backup software to backup the libraries.

Of course your mileage might vary :slight_smile:

My library (footprint) philosophy:
IMHO Making your own is safer. I know at least two PCB design services that always make each footprint for every job.

1 Like

Yes, but there is absolutely no point in doing so. When you add your libraries to the library table, use the full path on disk and assign a “nickname” .


my_lib, “/users/bob/kicad/libs/my_lib”

The important thing about config variables is they are not search paths. They are just macros which can be used to save a bit of typing, which is pointless and only a good idea to programmers. The only config variable you need to define is MY_3D_MODELS, because a path name for the 3d model is in the footprint file, and that is the only place a path is required. Symbols and footprints are referred to by lib:name and the path is only in the library table.

Ideally, everything would be in library tables, but KiCad devs like to create completely different ways of doing things for each type of object.

Instead of guessing please read the documentation.


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