New project : reuse of an existing one

Just curious:
Is that new file format going to have integrated functionality to make projects “portable” and archivable and therefore completely independent from existing libraries?

I find backups pretty important, and when KiCaD 12 comes out with very likely much changed libraries, I still want to be able to work on old projects without too much fuzz.

1 Like

3D models are specified in the footprint, we are talking about schematic symbols here. I agree there should be better integration of the 3D objects, but they have nothing to do with the cache and rescue library.

Quickly touching on the 3D objects, @MitjaN’s archive plugin does copy the used 3D objects to the project folder and re-targets the footprints in the board to the local copies.

1 Like

Your library setup does not matter when the assets are embedded in the files. Meaning with this feature you would only need to copy the schematic and layout file and can continue to work with them.

If you however do not have the same library setup then any feature that updates some property of your asset from the library can not work. (update footprint from library would not find the footprint and can therefore not update it.)

The feature will also not be a archive of your libraries as it only embeds used assets.

So yes in my opinion this can be considered a way to get very easy to use and robust portable project.

I’ve tried to copy and rename a 2 page schema to reuse a core part of the schematic. I cannot get the 2nd sheet to copy.
Is there a “save as” planned? Or can someone give directions. So far I create a new empry sheet open a 2nd incidence and copy and paste. I tried create, close, delete and copy and rename the master, 2nd sheet never copies.

paulvdh already posted this link, but here it is again: https://bugs.launchpad.net/kicad/+bug/594051.

Everyone who needs the whole project (or maybe parts of it) with a new name, please register to launchpad and add “This bug affects” vote there. This way the developers can see how much the feature is needed and wanted.

1 Like

I think there is to much “bikeshedding” issues being brought up. KiCad is going to evolve, it always has. Start with the basics first, then fix/update if needed.

For example, there is mention that the Rescue LIbrary needs to be included with the “Save As” feature. In my opinion, it does not need to be included. No project should rely on some random “Rescue Library” named “Rescue”.

Create the “Save As” feature and add (experimental feature) such that it reads “Save As (experimental feature):” and run with the idea; doing nothing just because it seems it may be a little bit complicated is just not the way to tackle this commonly requested feature.

1 Like

The new schematic file format will make the rescue stuff obsolete anyways. Meaning implementing save as for the new file format will become much more straight forward. V6 will come with the new file format and as save as would be a new feature v6 will be the first possible system to get this feature. Meaning it makes 0 sense to invest time into save as before the new file format is merged.

And i must strongly object to any notion that a half assed implementation is of any use to kicad over all. If that feature only works for a very specific case then we will get one bug report per week where we need to tell users “well is your project in exactly this state? because if not then you are out of luck.” (to be honest i am not really convinced you fully grasp the importance of the rescue lib and especially the cache lib in the current version of kicad. With the danger of repeating myself: The project is kind of dead if you do not preserve at least the cache lib. It will behave strangely if you do not also preserve the rescue lib.)

1 Like

man, all evening I make symbol library parts…they get screwed up in the next screen…yet this is a new project & I thought I will redo all new components. But every time I make one, I get all “?” all over. All evening. I add a new symbol , in next screen , all become “?”.

Now, very tired & frustrated.
I think there are duplicate names, something much sinisterly wrong…BUT how do I fix it once for all?
I have tried to operate manually from inside symbol library "copy paste?..“import”…whatever but nothing worked.
A lot of .lib are duplicated all over from version 4 days.
How do I make a clean break?
I have too many sch & PCBs designed & cannot afford to have all libraries messed up as I make more & more projects.
I am willing to attach a pro file & copies of my “lib” …to have some expert explain what I do I do wrong.
appreciate any help,
robin

It sounds like you are combining two things, reusing a project and migrating it to v5.

Migrating a project to v5 is not trivial, and whatever anyone says doing a proper job takes a while. Yesterday I spent about 2 hours moving a project to v5, and that had about 380 components. I think somewhere I wrote down the process, it has a lot of steps.

I have both v4 and v5 installed, so I can choose whether to leave legacy projects as v4, or take the time to move to v5.

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.)

More details: Converting KiCad version 4 projects to version 5 (Remap a project)


And in general: There is a bug in v5.1.2. It sometimes shows symbols as question marks until you restart eeschema.

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 :wink: . 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.

3 posts were split to a new topic: How bad is the rescue lib after remapping (FAQ article discussion)

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.

No, rescue and remap are different operations.

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.

1 Like

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.

1 Like

This is also how I feel:

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.

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