Sorting out the new library system once and for all (Nightly)

So I’ve read this blog post about it, but I’m frankly having a hard time understanding exactly how to avoid a complete symbol mess up at every update.

E.g. my Xilinx library is already in the library list with the correct path, but the symbol is messed up. Any remapping and rescue has been without success. Nothing changed after I added the custom libraries again either. A simple ELI5 concerning this issue would be highly appreciated!

Version info:
Application: eeschema
Version: no-vcs-found-610ff74~61~ubuntu14.04.1, release build
Libraries:
    wxWidgets 3.0.2
    libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Platform: Linux 4.4.0-53-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
    Boost: 1.54.0
    Curl: 7.35.0
    Compiler: GCC 4.8.4 with C++ ABI 1002

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_SPICE=ON

Is the symbol (just one in your org xilinx lib file?) messed up in the library (i.e. symbol editor) or in the schematic?

disclaimer: I haven’t had time to play with this yet.

So I’ve discovered that my current sym-lib-table was empty. If I’ve understood this correctly, I should fill in a completely new sym-lib-table with all my favorite libraries, including the default ones, and then this problem will go away forever?

I don’t think it’s that easy.
The old system consists of the .lib files, with each containing one or more symbol entries.
In the new system the same library will be a folder, containing one or more symbol files.
To get from the old to the new, the .lib files need to be converted to folders with symbol files in them.

Once that’s done, the sym-lib-table file gets the ‘links’ to the folders, that contain the symbols…

How is the conversion of the old .lib files done? Sorry for stupid questions. I really appreciate your help here.

Not yet. This has been postponed for v6. v5 will still use the old file format.

3 Likes

Well, my sym-lib-table now contains all my old libraries. Why are all my symbols still messed up despite any rescue and remapping?

Edit: Straight forward: All the "Component Name"s of my symbols are lacking the “library-name:” prefix. How can these be automatically added once again? Frankly, the whole “rescue” thing being added instead seems quite useless.

The flow would be better as find replacements first in the new libraries and then recover any left overs

Any help on this subject? Do I really have to go through every Fackin component and add the prefix?
A solution would be absolutely lovely.

Take a look at my post here, especially referring to part 5 based on referring to a copy of the -cache.lib for the project:
https://forum.kicad.info/t/important-symbol-library-table-merged-into-development-branch/8447/33?u=otoien

It is important that you start over with a copy of your backup if the mapping fails, and not try go on with the failed version.

One case that can cause trouble is if there previously was a rescue of the symbols of the project. Then the symbol names sometimes have been changed to -rescue version. However if you have an up to date cache lib file (in the old version make a small change and save the schematic before copying the -cache.lib), strategy #2 should work in that case too.

In all cases it is important to make the changes before upgrading KiCad.

1 Like

Could you please direct me to an old stable release?

My immediate thought with the necessity to swift back and worth between Kicad versions in order to make a successful transition and have working libraries is that this is kind of a horrendous solution.

So I’ll find myself an old Kicad version again, find a clean sym-lib-table where I add everything I need, make sure that all is well library-wise, save, upgrade kicad and use remap?

I just don’t understand why none of my standard passive components are not working anymore.

If you want to convert, the safest course of action might be to use the procedure outlined in alternative 2 if you click the link I gave above. Since libraries are being reorganized and are in a transition, there could be problems with changes to the symbol names that prevent proper mapping. By mapping everything to a copy of the projects -cache.lib (assuming you have one that is up to date), you bring a copy of the projects symbols along with the project so it will not be sensitive to changes in the official libraries.

If you are not particularly keen on testing out the newest and brightest, you might as @Andy_P suggest be best served to stick with 4.07 until ver. 5 is released and everything is more stable. A problem could be that even if you successfully map your project to the official KiCad libraries now, and libraries are renamed/resorted during the reorganization, you will be stuck with the old library names that got hard-coded into you projects during remapping. So things might break again. With custom libraries or local project libraries that would not be a problem.

BTW, for things like this, virtual machines are very useful to have multiple versions of KiCad running at the same time.