KiCad not able to find symbols when trying to open project on another PC

I am on my first project using KiCad and having some problems I don’t understand let alone know how to fix:

As I want to make sure my project is fully portable, I created a project folder in which I put the project. I also create a library file in which I have added edited copies of all the schematic symbols I am using. The new library is added to the Symbol Editor and KiCad default paths. Everything seem to work. However, when I try to open the project on another PC with the same version of KiCad, I get a heap of error messages and the schematic file only opens with all the symbols replaced with square boxes containing big question marks.

I have made sure that all the paths are set up correctly and that my library file is added to the symbol editor on the new PC but this seems to make no difference.

Another puzzling issue is I have used some symbols from my new library a few times in the design. KiCad is flagging up errors that there are multiple instances of the symbols. I cannot understand why this should be a problem or what I’m supposed to do about it.

Some help will be appreciated. I can’t see any means of pasting or attaching graphics or I will supply screenshots of the problems.

The safest way to move a project from a machine to another is to use File / Archive project and File / Unarchive project in the KiCad launcher (project manager).

Can you show screenshots showing these in the respective dialogs?

1 Like

Disclaimer: I assume you run version 5.

KiCad has no special directory where libraries added to it will automatically be available to you. You need to add them to the library table using the library manager. For project local libs i suggest you add them to the project local lib table. (This allows you to include that library table in your project files and does not require setting up the global settings on the second computer.)

More details (a full lecture on library management mainly focused on how to make a proper central setup but explains the project local setup in the appendix) Library management in KiCad version 5

1 Like

Please see below:


“AECT KiCad” is in your global library table which recides in your personal configuration folder. The library itself is on your machine in a folder which may or may not be the project folder - is it?

To make the project machine independent you have to:

  1. Make a library under your project folder or move/copy it there.
  2. Add the library to Project Specific Libraries, not Global.
  3. In the Project Specific Libraries list you should to use ${KIPRJMOD} instead of ${AEC_LIB} - it’s replaced runtime with the current project library.

Then the symbols and all the relevant data are inside the project.

1 Like

From the tutorial linked above:

That works fine if the AEC_LIB is only for personal parts for that one project. If it contains symbols that the OP wants to use on multiple projects she (I hope I guessed the OP’s gender correctly) will have to copy that library to all those projects, and synchronizing changes will become a chore quickly.

The way I see this is there are two types of “portable”. Making up names here, I will call them Personally Portable and Globally Portable for this post.

Personally Portable projects are portable across the different machines that an individual (or team) access. This allows for a parallel set of libraries to the standard libraries that can be used on all projects. The way I handle it on my computers (two personal computers, one work computer) is this:

  • All my personal libraries are put on a cloud service, I use DropBox for this. Any cloud service that provides an automatically synchronized folder in the computer’s filesystem should also work.
  • For each computer’s installation of KiCad I use the Configure Paths to point the path substitution variables that I use to their respective locations in the cloud service folder.
  • Also on this cloud service I have a Templates folder for my personal worksheet (page borders and title block) and mirroring the distribution I have my global fp-lib-table and sym-lib-table. (This is where I configure KICAD_USER_TEMPLATE_DIR to point.)
  • On each computer’s settings folder (I’m on Windows so it is %APPDATA%\kicad\) I replace the fp-lib-table and sym-lib-table files with symbolic links to my global tables in the Templates folder on the cloud service.
  • When I upgrade KiCad with an official distribution, after upgrading all my computers I update the fp-lib-table and sym-lib-table files on the cloud drive.
    • I make copies of the fp-lib-table and sym-lib-table files on the cloud drive (ends up with file names like fp-lib-table - Copy).
    • I copy the fp-lib-table and sym-lib-table files from the distribution installation package (usually found in the distribution templates folder) to my cloud-based templates folder, overwriting the existing files. This is why I first made a copy.
    • Using a programmers text editor (I use PSPad, as I recall Notepad++ can probably do the same) I do a difference between the newly overwritten table file and it’s respective local copy. I copy over my personal library file lines from the ...- Copy file to the table file.
    • Before closing the text editor file-diff window I scan to see what changed in the tables between distributions, mostly for curiosity.
  • All my projects are created and maintained in the cloud service folder so I can access them from any of my computers.

Using this setup, I can open any of my projects on any one of my computers without any library issues.

Globally Portable projects are projects that I can zip up and send to anyone in the world (hopefully using the same or a compatible version of KiCad) and they should be able to open them without any issue. For this I use @MitjaN’s archive project plugin, and distribute the result. If all you are interested in is this type of portable, you can ignore the above (possibly confusing) list of steps.

Disclaimer: This method for Personally Portable works for me, I can’t guarantee that it will work for you. I’m sure there are many other ways to handle this situation. Don’t have the same project open on multiple computers at the same time as KiCad doesn’t know about cloud-sync folders and won’t know when saving that it will be overwriting a change made by another computer that was synched after the last time the local computer loaded the file from the OS.

1 Like

I have done it exactly as you and Rene_Poschi suggested but the results are exactly the same as before:

When I try to load the project I get the screen below:
(I got a message that says “new users can only put one image in post”!)

And if I click OK I get the the project mangled up as shown below:
(I got a message that says “new users can only put one image in post”!)

You highlighted the AEC_Lib which clearly does not do as i suggest. The library path uses an absolute path. Which works if every system will always have the stuff setup in the exact same way. Look one line below it for how it should be done.

Oh and please remove the third entry. First of all path variables are setup in a different tool. And secondly the path variable KIPRJMOD should never be set by the user.

You’re right I’ve used absolute path. However I am still on the original machine that I created the project on. But I’m still having problems loading my project. I have changed the paths to relative and deleted the third entry. Still I get the following when trying to open the project:

Regardless whether I click OK or Cancel, KiCad opens up a mangled schematic. I t looks like I will have to re-enter all the circuit!

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