Path Substitutions won't show up in the Symbol Libraries window


I’ve been wrestling with libraries for a few hours now. I can’t figure out why Path Substitutions wont show up in the Symbol Libraries window. I’ve tried changing just about everything but can’t figure it out.

And here’s all I can get:


There seems to be missing a / at the ends.


The path substitutions shown in that grid are the ones that are currently in use by the symbol libraries. If you were to add ${KICAD_USER_SYMBOLS} to the front of a library and reopen the dialog, then it would appear in the grid.

Also, I am wondering why you have the column labels showing as A and B in that grid (they should be Name and Value). Which version of KiCad are you running on which OS?



D’oh, I forgot about that bug and tested this on master, so I saw the labels :).


Hi, I’m using image


I clicked on the folder at the end of the field to locate them and this is what it gave me.


I guest I understand your answer in theory, but I just set up another machine with Linux Mint and the whole process was automated. I didn’t need to do anything manually.

edit: I just tried loading a project with custom symbols and nothing new showed up in Path Substitutions. I could still be doing something wrong, but I’m not sure what.


I still can’t wrap my head around this. Here’s my other machine:

When I try to load ${KICAD_USER_LIBRARY} in the Global LIbraries Path, all of my symbols break in Eschema.

I didn’t need to manually load every footprint or symbol. ${KICAD_USER_LIBRARY}/symbols/… loaded up just fine. Same goes for ${KICAD_DIGIKEY_LIBRARY}/…


The process KiCad uses to find symbols is quite straightforward:

  1. Given a symbol name libnickname:name, lookup libnickname in the Symbol library table, (global and project).
  2. If the nickname is found, get the path from the table
  3. if the path contains substitutions, replace them with with the values in the “Environment variables” table
  4. Load the library at the path
  5. Search the library for that name

In fact KiCad loads all the libraries once at startup, but the concept is the same. If at any stage an error occurs, you get the broken symbol picture, but KiCad doesn’t always tell you what the error was.

To troubleshoot, go through each step. i.e. What is the lib:name used in the schematic? etc. Note that names are case-sensitive.


You might want to read Library management in KiCad version 5

Major remark: Forget about path variables (For now). You do not need them for symbols or footprints. And most importantly you do not need to add them manually. Add libs with the “open” button (the one that looks like a folder icon) in the library managers. If a path variable fits then KiCad will automatically use it. Just make sure you use the same nickname for the same lib on different setups and you should be good to go.

Remark2 If you get question marks then you have damaged the cache library. Make sure you include this file (project_name-cache.lib) when transferring your project between systems.


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