I haven’t used Kicad in 10 years. Now I need to get working all my old custom symbols and footprints from various projects. Maybe they can all go in one big custom library? Is there anyone in the DFW area who I can pay to get all my old stuff library and foot print stuff accessible? I get lost trying to get it all accessible again.
Do you have an estimate of the amount of symbols and footprints you have?
I guess it’s not too difficult to do it yourself without getting lost.
As preparation:
- convert a project to a modern KiCad by opening (and the schematic and PCB) in that project.
- Save it again.
- Repeat for some more projects.
After projects are converted you can:
- Make a copy of all your projects into a separate location.
- Create one or more global libraries.
- Schematic Editor / File / Export / Symbols to new Library
- PCB Editor / File / Export / Footprints to new Library
- Footprint libraries are the easiest, each footprint is a separate file in the library directory. You can use normal file operations to move these to your global directory.
Schematic symbols is a bit more involved.
- Create a project just for library management.
- Add all those small libraries to it. (It also has your new global directories).
- One by one, move symbols from one of the small libraries to the big global library.
Overall, an important trick is that each time you have taken some parts from an old project, to delete that part from the old project. And you just keep on repeating this (whenever you have a half hour of spare time) until all the old projects are empty. That is why you have to work on a copy of your real projects. All those copies are going to be damaged into oblivion.
I am trying your suggestions but can you or someone please advise:
When I open Kicad 8 and then I open the schematic, it says “The following libraries were not found: …”, then I click OK and then a new popup that wants to auto remap the symbols but if I select to do that, I will lose the associations with any custom footprints, yes? So I select to skip that remapping, correct?
It is unfortunately a bit more complicated.
KiCad’s release notes go back to V4.0.0 https://www.kicad.org/blog/categories/Release-Notes/page/6/ And that was around November / December 2015. Back then KiCad projects were not complete, but they depended on links to external libraries. If your projects are KiCad V3, then I am not even sure whether import is supported. Things were a lot less formal back then. For KiCad V6 and newer, problems with conversion should be gone. KiCad V6 projects embed all needed information in the project itself (project, schematic, PCB and the .kicad_prl files)
First thing, make sure you have backups, so you can reverse mistakes made.
In the most fortunate cause, you just break off the “rescue” attempt, first add the old libraries to your project and then open it. If you see the [??] symbols, this looks awfully bad, but it is not as bad as it seems. It just means that KiCad can not load the graphics for that symbol, all the meta data such as library and symbol name, footprint name, values for resistors, datasheet links etc, are still present. It is just the graphics that are missing. If you can not fix the links to the libraries beforehand, you have to do it afterwards with Schematic Editor / Tools / Edit Symbol Library Links. But KiCad does not search for libraries, so you will still have to add links to suitable libraries first.
Are you willing to share one of these old projects? (and libraries it uses). I have some experience with conversion from KiCad V4, V5 (newer versions are not worth mentioning) but I am not sure about older versions. If I attempt to convert one of your projects, I get a better Idea of the problems with it.
KiCad files are ASCII based (or at least readable text with all these new fangled UTF names) Now, the schematic and PCB files have their version encoded in the header of their files.
For example:
(kicad_sch
(version 20231120)
(generator "eeschema")
(generator_version "8.0")
(uuid "34cb52f0-8a4c-49c6-a79e-57585868b97d")
(paper "A4")
(lib_symbols)
(junction
(at 86.36 95.25)
(diameter 0)
That (version 20231120)
is a date code, but those are not arbitrary dates. It is a specific string that is used to identify the file format. This header is from KiCad V8, versions prior to V6 did not use S-expression’s and were much different, but there still may be a recognizable version number somewhere. File dates are also an indication of how old the file is, but not necessarily identify a KiCad version.
My old files are in an early version of Kicad 6. My old cache lib files for each project should have everything in each I think so when I go to edit symbol library links and I update everything to my old cache file it doesn’t work because its the wrong format now. So is there a Kicad tool that takes an old .lib file and converts it to the new format?
I can send an old project if you can send me an email address.
This forum has an option to send personal messages, they will be automatically forwarded to my email address.
KiCad V6.0.0 does not use cache files. And it certainly is also not 10 years old. Only KiCad V5 used [Project]-cache.lib files. KiCad does not delete these files after a conversion though, but it just ignores them. Apart from that, I think it’s just a normal library, and you can use it to extract symbols from.
What does “early version of KiCad V6” mean. Is it from a stable version (KiCad V6.0.0 or newer) then conversion should be easy and smooth. If it is from a nightly version (KiCad V5.99) then anything can happen.
I guess it’s OK if I post a few (mall) screenshots of problems I encounter, but just tell me if you don’t like that and I won’t.
If the symbols are no longer used from cache.lib then does that mean I need to find all the Kicad 6.0 libraries that the symbols were pulled from?
If it is a proper KiCad V6.0.0 or newer project, then external libraries are not needed.
If it is a KiCad-nightly V5.99, then the old -cache file can be useful as an extra backup. If the old V5 project files are also still present, they can be a source to convert or rescue the project too.
Do not delete any files if you’re unsure.
It says new users can’t send attachments so not sure how to send files.
Some moderators can upgrade new users to “basic” level, but I do not have that super power.
the *cache.lib files are the only .lib files in the project folder. Are you saying all symbol info is included in the *.sch file?
Only if it is a properly formatted KiCad V6 project. You still have not mentioned if it was V6.0.0 (or newer) or a KiCad-nightly V5.99.
It is in a 6.0 folder and when I start it and look in About, it doesn’t say but I clicked where it said copy version info and I’m pasting that below:
Application: KiCad
Version: (2013-05-31 BZR 4019)-stable
Build: wxWidgets 2.9.4 (wchar_t,compiler with C++ ABI 1002,GCC 4.7.2,wx containers,compatible with 2.8)
Platform: Windows NT 6.2 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Boost version: 1.53.0
Options: USE_PCBNEW_NANOMETRES=ON
KICAD_GOST=OFF
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=OFF
KICAD_SCRIPTING_MODULES=OFF
KICAD_SCRIPTING_WXPYTHON=OFF
That is definitely not V6. 2013 is even from before KiCad V4.0
I am not sure but I think the old BZR versions do not have real KiCad version numbers.
Also strange if your project has a [Project]-cache.lib file. Those were only created by KiCad V5 as far as I know. Maybe you have attempted to upgrade your project earlier.
I think some time over the years I upgraded to Kicad 6.0.5 after those original projects but now when I try to open them in 6.0.5 it doesn’t work either.
As an alternative you can put the project on gitlab or such a file sharing site and then tell me where it is. But it’s nearing bed time for me, so I’m tot waiting very long right now.
No rush, I appreciate the help. When you want , the files are here: https://www.vasantcorporation.com/downloads/PCB-BALHIZLNA+AMDET-001-REV-.zip
no problem to post screen shots of steps I should take in forum.
OK, I’ve got them, you can remove them if you want to minimize exposure.
I don’t know in what sort of state the project is yet.
I can open the schematic (using the cached symbols) The schematic looks plausible. Looking into the file it does indeed appear to be from KiCad V3 version. Footprint links in the schematic do not have a library name. This is also a very old convention. I think it means that KiCad just uses any footprint it finds with a matching name.
I can not open the PCB, The PCB crashes on attempting this. (Segmentation fault, core dumped) KiCad has proclaimed it should always be able to open older files, but I am not sure whether files this old are supported. Your project may be worth it to be used in a bug report if projects this old should work in KiCad, but that would require uploading to gitlab. Issues on gitlab can be made private.
The project has a (seemingly) complete set of gerber files. KiCad can reverse-create a PCB from Gerber files, but this process is not automatic. It also can not recover footprints, as footprints do not exist in Gerber files. More info about this path in: Reverse engineering KiCad project from Gerber files
After adding both the “-cache” and the “-rescue” libraries to a random project of mine, I can open these libraries and get symbols out of them. Maybe it’s worth saving a few symbols, but most are probably better replaced with standard symbols from a newer KiCad version.
How many of such projects do you have to sort out?
KiCad version used to read the project:
Application: KiCad Schematic Editor x86_64 on x86_64
Version: 8.0.4-8.0.4-0~ubuntu20.04.1, release build
Libraries:
wxWidgets 3.2.2
FreeType 2.10.1
HarfBuzz 2.6.4
FontConfig 2.13.1
libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Platform: Linux Mint 20.3, 64 bit, Little endian, wxGTK, X11, xfce, x11
OpenGL: AMD, AMD RENOIR (DRM 3.42.0, 5.15.0-117-generic, LLVM 12.0.0), 4.6 (Compatibility Profile) Mesa 21.2.6
Build Info:
Date: Jul 17 2024 01:37:21
wxWidgets: 3.2.1 (wchar_t,wx containers) GTK+ 3.24
Boost: 1.71.0
OCC: 7.6.3
Curl: 7.68.0
ngspice: 42
Compiler: GCC 9.4.0 with C++ ABI 1013
Build settings: