Depends. If your project is valid at the start (meaning it includes the cache lib!) then it is straight forward.
Worst that will happen is your symbols get rescued. And this only happens if your libs changed. Which they will have if you run the official libs as there was a massive reorganization. (You can keep on using v4 libs for this project but i kind of fail to see the pay-off for the extra work needed.)
I’m including the time it takes to assign all the footprints, re-validate that the netlist is correct etc. People keep saying “oh its straight forward” but really it’s not and that is very misleading. It’s easy if you are library maintainer and have an intimate knowledge of KiCad and its libraries . For Joe User, who has never had to delve much in the innards of KiCad setup, it is a journey down the rabbit hole.
Remapping is another non-trivial task. Personally I don’t like projects with a lot of “rescue” “remap” stuff in it, so I eliminate that and move to native v5 data.
Anyway, this thread proves my point (and so does your FAQ entry!). Clearly the OP is struggling to move his projects to v5.
I also find the whole library management confusing and difficult.
In the old days you could simply make a copy of the cache library and make a “project” library out of it, to make your project independent from the main libraries.
Now it contains links to “original library names” and to the “resque” lib.
I think that “resque” is the same as “remap” which Rene mentiones in #21 but I’m not sure. Then the schematic symbols are split among multiple files, with some of the info in a separate project dependent file.
Edit:
If you’re juggling with libraries to try to fix things, you can not simply open libraries with the library manager, but first have to add your library to the lib tables. which is another complication.
It is a part of my spyche. I absolutely dread the whole “resque” thing and everytime it pops up I get nervous and want it to go away as fast as possible.
Just now I accidentally discovered somethin weird. I think I can safely delete the “rescue-backup” directory (after verified that the project still “works”). But I accidentally looked into one such a directory and it seems it has been resqued twice and has 3 “cache” copies:
Part of the problem is of course that I do not even want to know what is going on.
I just want it to “work” without any user intervention. Pcbnew seems to work a lot better then Eeschema. I’ve never had a problem with PCB’s. I believe the PCB has all the Footprints embedded in the file. (Which is as it should be !!! ). No external dependencies. If all KiCad’s libraries fall over, existing PCB’s still work.
As far as I know Eeschema will do the same when V6 comes out, but untill then we have to keep on fiddling with what we have.
Back to Robin_Gangopadhya’s probem.
Without having his project I can’t be sure (as I’m also pretty bad in library management), but I assume his problems are because of the copying of a project and then changing the project name.
It would mean for example that the cache library has links to resque symbols of a non-existent file, because the resque file got renamed to the new project name.
This also suggests something similar:
It’s probably all because of the renaming of the projects.
If a project is renamed, then which “project-cache” is used? From the old or from the new project? Maybe even a bit of both.
I find it a perfectly valdid way of working to change a project name, and a bug in KiCad if it get messed up this way. I can only hope this gets sorted out in V6.
“Redoing” the new components, and making the same mistake over and over again is not going to resolve anything. From what I know, probably the best way to recover from this mess probably is:
1). Make a new project library in your project:
Project Manager / Preferences / Manage Symbol Libraries / Project Specific Libraries / [+] (Icon) / (Add library name).
2). Exit KiCad (Just to be sure).
3). Copy the “resque” file to the new project library.
4). Open schematic in a text editor.
5). Search for the string “rescue”.
6). Replace all occurences with the new library name.
This can also be done from within Eeschema.
Hover over one of your schematic symbols and press ‘e’ for edit.
In the Symbol / Library Reference, change the part before the colon ‘:’ to the name of your custom project library.
This of course only works if those schematic symbols are actually in the library you created. I do not know what “redo the components” is for you. Schematic symbols are always in a library. You may have multiple libraries now, and probably should put your own symbols in some logical combination of custom libraries.
Edit:
Instead of juggling with the files and a text editor, It’s probably better to (temporarily) add your (renamed / damaged / etc.) -cache and -rescue libraries to the symbol library table, and then use the library manager to copy the symbols you need to your newly created project library.
There is a very simple (and hopefully proper way) to re-use existing schematics ( of parts of it) in a new project:
1). Start a new and clean project from scratch.
2). Eeschema / File / Append Schematic file Content …
For the PCB, it might work to make a copy of the existing, old PCB and rename it, but it is possible more robust to:
1). Open Pcbnew in “stand alone” mode. (directly from the OS, not from within the project).
2). Open the (empty) PCB file of the newly created project.
3). Pcbnew / File / Append Board. (And browse to the PCB of the old project).
4). Save the board and exit Pcbnew.
5). Open Pcbnew again from within the project, and verify that schematic and PCB are in sync.
Rescue kicks in when KiCad detects symbol mismatch, remapping process adds the library id to each symbol (so “R” becomes “device:R”). However, after the symbols are remapped, it should eliminate the need for rescue, since symbols are linked directly to a named library. If the library is missing, KiCad will report the library is missing.
I agree that you’re a more “advanced” user with more knowledge about the internals of KiCad than I am, but that does not necessarily mean you have higher expectations of the software.
As a regular user I simply expect it to “just work”, without any user intervention. Transfereing projects to newer libraries should not ever be needed.
(but is nice to have as an option). Existing projects simply should not break. The resque dialog popping up to me only means that KiCad *&^%$#@!
I do not want to see boxes with 3 question marks in Eeschema.
I do not want to see the rescue dialog.
I really hope it’s all a transitional stop gap solution and this stuff will be figured out by the time KiCad V6 is released.
Just opened the manual of my: V5.1.0:
file:///usr/share/doc/kicad/help/en/eeschema.html
and did a bit of reading in 6.7. Rescuing cached symbols
If you press Cancel, no rescues will be made, so Eeschema will load all the new components by default. If you save the schematic at this point, your cache will be overwritten and the old symbols will not be recoverable. If you have saved the schematic, you can still go back and run the rescue function again by selecting “Rescue Cached Components” in the “Tools” menu to call up the rescue dialog again.
This section feels so wrong to me.
I’have probably pressed “cancel” a few times because I just wanted to have a quick look at some old schematic and do not want to bother reading all the text.
As a simple user, I expect “cancel” to cancel the whole resque thing, and load the OLD symbols, just as they were when the schematic was made.
I also find the whole rescue dialog very unintuitive.
[Cancel] does not cancel. and [OK] is…? Is that “OK” for a “Cached Part” or OK to a “Library Part”. From reading the manual I understand that [OK] makes the resque lib, and puts schematic symbols in it. I can live with that, but putting this under an [OK] button seems very unintuitive to me and is probably confusing to a lot of other (beginning) users.
Those beginning users probably also simply do not know what a “Cached Part” and a “Library Part” means.
I also find the differences between the “cache” and “resque” libraries confusing.
In KiCad V4 it was OK to rename the “cache” library into a project specific library (It even suggests to do so in the manual), but in KiCad V5 I’ve come to believe that the “cache” library should not be touched by users (which will probably also confuse a lot of occasional users of KiCad).
I am still not sure what exactly is the “resque” lib. Is it in any way “special” (after automatic creation) or is it just a simple project specific library?
That is the goal, by v6 eeschema will store a copy of the symbols used in the .sch file, in a similar way to how pcbnew stores footprints in the pcb file. That should ensure you can always open the project and it be self-contained.
In the meantime, we have to put up with the pain of the transition.
It is sort of a project specific library, but with the symbol names re-named to make them unique with regards to the original Kicad library. With 5.1.0 5.0.0 it is no longer necessary to have unique names because the lib nickname is added to the symbol name.
To me all the “resque” and “remap” stuff feels at least uncomfortable.
If however, the “rescue” lib is a (static ?) copy of data copied from the “cache” library, and a simply project specific library, then I prefer this method above “native v5 data”, (if that means, data from the official V5 Libraries).
From old schematics, I simply want to preserve what I already made, and not introduce anything new or different, now matter how much “improved” those newer things are.
From EEschema manual, chapter 6.7:
If you would prefer not to see this dialog, you can press “Never Show Again”. The default will be to do nothing and allow the new components to be loaded.
In my book “doing nothing” (to the schematic) is preserving everything as it was. Not loading new symbols from the libraries. Loading the new symbols can often break the schematic (such as with the reversed diode in the example, (But even that is not sure, because the pin numbers of the diode are not shown)).
I think that using the wrong defaults here is confusing a lot of people.
(I’m also afraid that I’m getting stuck on this point and it’s better to close this forum for today)
That is what the rescue lib is. The rescue dialog asks you for every symbol if you want to copy the cached symbol into a new rescue lib and use that or if you want to use the one found in the current library. (It shows the two symbols next to each other such that you can see what changed.)
If the symbol is only found in the cache lib then it still allows you not to rescue which will mean you get question marks. (Indicated by the right preview being empty) I do not know why this option is present. My guess is such that you can easily see which symbol needs to be replaced by the correct one. Could simply be legacy stuff from before the library reference editor.