How to migrate your K5 user libraries to K6

To avoid having my custom symbol libraries overwritten by updates, I created libraries in a different folder for KiCad 5 (not the global folder under C:\Program Files\KiCad). I added my custom libraries as global to all projects.

After installing KiCad 6, I was surprised that these libraries were not migrated.
I was presented with a dialog on library tables, and I chose “recommended” since I was not sure which option to select. I incorrectly assumed the “recommended” scenario would be to upgrade and migrate existing KiCad 5 installation.

Here’s the process to do it manually (Windows)

  • From the main KiCad 6 project window (no project loaded), Preferences / Symbol Libraries.
  • Scroll down the list and use the + button to add a row.
  • Open a file explorer window to your custom library folder, sort by Type to bring all the .lib files together.
  • Click on a lib file name and copy it into Nickname and Description (or edit as you desire)
  • Shift-right-click on the lib file name and use copy as path.
  • Paste the full path into “Library Path”. Remove leading and trailing quotes - they are not allowed.
  • When all libs are entered, click OK. After a delay the dialog should close if all is OK.
  • Re open the Preferences / Symbol Libraries dialog and scroll down to your custom libs
  • They should be showing as “legacy” in the library format column.
  • Select (highlight) the rows with Legacy, and click the “migrate libraries” button.
  • Accept the confirmation, and you should see new .kicad_sym files in your custom library folder. The library format will change to KiCad.

Now open some KiCad 5 projects, and select your custom components. You should see the library listed correctly in the status at the bottom of the page.

When I followed the same steps for Footprint, I saw the same dialog for “Configure Global Footprint Library Table”. This time I knew “recommended” was not correct, so I tried “copy custom”. However, the suggested file was the same as for Default, and pointed to something for KiCad 6. So I used Browse and looked around. Apparently KiCad 5 is moved to “C:\Program Files\KiCad\share\kicad” and the footprints are in “C:\Program Files\KiCad\share\kicad\template”. I selected the “fp-lib-table” file in that folder.

That was a mistake - now I only have the footprints from KiCad 5 in the global table. I can look in “C:\Program Files\KiCad\6.0\share\kicad\footprints” and see there are more footprints now that are not in my table. But there is no way to go back and undo. I will have to compare line by line and add the new footprints manually.

EDIT - after further exploring it appears there is a way to undo: Exit KiCad 6 and copy the table file again from the template. From “C:\Program Files\KiCad\6.0\share\kicad\template\fp-lib-table” to C:\Users\YourUserName\AppData\Roaming\kicad\6.0. Then you can go in and add any user footprint libraries manually.
Note that the file I used above wasn’t even my user library. It was the default template from KiCad 5. If I wanted to use my KiCad 5 customized footprint table, I should have copied from “C:\Users\YourUserName\AppData\Roaming\kicad\fp-lib-table”

For others who are migrating, stick with “recommended” and manually edit any custom footprints into the global footprint table.

1 Like

@timg11 Thanks for posting this report. A couple of suggestions:

  1. Your “Preferences / Symbol Libraries” appears to be actually “Preferences / Manage Symbol Libraries”

  2. You suggest "Paste the full path into “Library Path”. I suggest instead creating some user-defined Kicad path “environment variables” (using Preferences / Configure Paths). I settled on:

  • KICAD_USER_SYMBOLS
  • KICAD_USER_FOOTPRINTS
  • KICAD_USER_3DMODELS

Then you can use these variables in the paths you place in the Symbol Libraries or Footprint Libraries tables. This looks tidier, and also allows you to change the location of your libraries very easily at a later time by just editing the “environment variable” in the Configure Paths list.

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