Carry over custom parts from one KiCad version to the next?

Here’s the process precisely:

  1. open Footprint Editor
  2. File menu > Import > Footprint, select the .kicad_mod file and hit Open
  3. make some changes to the layers
  4. File menu > Save
  5. A window appears. “Save in Library” and then choose the correct category. In my example, I select “Button_Switch_THT” and press OK.
  6. [done] close the footprint editor, or proceed to re-import the remaining 80+ parts.

Is this where the trouble stems from?

Your footprints and symbols that you create or modify need to be stored in personal libraries that you have created.
Are you doing this?

What operating system / platform are you on? Normally the KiCad standard libraries are marked as “read-only” to prevent this kind of issue. You are meant to create your own personal libraries that you can use to import or create symbols or footprints in.

Great question. I do not know. I am only doing the exact and precise steps listed. I don’t recall seeing anything about a custom library. Just Save. No idea where it’s saving to. So, I suspect I might not be, but, I cannot say for certain.

macOS Sequoia, and the two OS’es before this one as well, same problem existed then. So you and the other person mentioned personal libraries. That’s probably the ticket. Will have to figure that out.

The correct procedure for storing custom symbols and footprints is to create personal symbol and footprint libraries first. Imported (from outside Kicad), or copied (from existing Kicad supplied libraries), footprints and symbols are then placed into those created libraries. Once you have placed those items into your personal libraries you can modify (and perhaps re-name) them as you wish and they will be available for you to use without redefining.

There is a section for creating personal libraries in the “Beginners Guide” here and I have also written a FAQ to create Personal Libraries here

I’d suggest starting with my FAQ. If you have any questions please ask here. Some find the subject of personal libraries confusing.

3 Likes

Thank you! I’ve started a PersonalLibrary. I am now Saving my custom items to that library. I was going wrong in my Step 5 above… saving my buttons to Button_Switch_THT, saving my capacitors to Capacitors, saving my potentiometers to Potentiometers, etc, which was apparently wrong. Now, it’s all being saved to PersonalLibrary, which I suppose will be “portable” to future apps, since it’s its own file and folder now. Thanks again!

Hi @KylesKad
You are correct about step 5. Kicad supplied libraries are “read only”. You cannot place new or modified symbols or footprints into them. I’m not sure how/why your program didn’t, but my Kicad always gives a warning message stating I cannot modify Kicad supplied libraries if I try to modify, add or subtract anything from those libraries.

With regards to personal libraries, it is best to consider your future Kicad use when planing and creating these libraries. It is best to have “some” smaller libraries rather than just one single library. Imagine in a few years having perhaps a single library with 200 odd symbols. That would be awkward to navigate. A good example of how not to have a library is the Kicad “Device” library. :grinning:

Just for your information, I use personal libraries exclusively. Many of the footprints and symbols are just copied from the Kicad libraries. Some have been modified from Kicad, some have been created from scratch. I have 25 symbol and 26 footprint personal libraries.

Take note, with regards to personal libraries: Each major Kicad release (eg. Kicad 7 to 8 or 8 to 9) your personal libraries have to be re-installed from your Operating System Kicad personal library folders to the Kicad Global Libraries list via Preferences > Manage Libraries.

[

1 Like

you shouldn’t have to recreate too much. there’s two things you can do to find your previous symbols or fps.
1 - you can open up older projects and copy those symbols into new (V8 or V9) projects and then save them into your new personal libraries.
2 - each main install of KiCad is in a separate folder/install, such that you could go open up the library where your custom part is, and then save it to a personal library (in say V7 or V8) then import/use that new lib in V8 or V9.

good luck!

1 Like

PS - this is more of my own personal experience (of many moons) but even if I find the exact match for a part, symbol and/or footprint I will spend a few minutes verifying the pin numbers/functions and/or the dimensions of the footprint, comparing it to the datasheet.
Then I will copy the Kicad version over to my own personal library and possibly make mods to it as needed.
At the end of a project I go through and make sure all footprints are from my personal library.

2 Likes

Thank you jmk, craftyjon and StecklerCircuits, these are all great insights.

I suppose the biggest improvement is if it were to stop me, like jmk’s stops them. Or at the least, a warning, such as “you really shouldn’t save here but we will let you anyway” would have clued me in that something wasn’t correct with my procedure. Now I know! I’m just happy this will be the last time I have to deal with these. Hoorah

Take note of @StecklerCircuits second post. I work the same way even though I’m now just a silly old fart who only does this as a hobby. :wink:

If you (like me) are using personal libraries exclusively you need not to manage library lists when major release happens. The only what you have to do is to point KiCad your list at first run of Schematic and first run of PCB.
I have designed my libraries with KiCad V4 and use them since then without ever need to make my work with them once more. Each time KiCad was able to read symbols and footprints from previous version and save in new format. It happened to me on changes V4->V5, V5->V6, V6->V7, V7->V8 (I’m not using V9 yet).

Yup, it looks like we don’t mark these as read-only properly on macOS like we do on other platforms.

image

Hmm…

It seems that the consensus here is to only use the default libraries as a suggestion, copy everything needed into my own “virtual parts bin” that I maintain myself, and then use that (my own “virtual parts bin”) exclusively. Nothing from the default libraries should ever make it (directly) into production. Is that about right?


That’s not how I’ve been doing it either, and it’s probably true for a lot of other people too, especially new users. “See-it/use-it” comes to mind, as I did when I first started and to a large extent still do. I do create my own parts from datasheets, but only if it’s not already in a library that I already have.

And when I do make custom parts, I don’t know where to put that library, except in the project folder that needs those parts. And so I end up with project-specific libraries, together in the same folder with the project itself (or a group of projects that all go together), and no global one.

It seems to work, at least as long as it remains just me and my own organizational skills and mindset. I remember that I used <this part> in <this project>, and so I open <this project> again, copy/paste from one schematic to another, and go from there.

For much beyond just myself and my own thought process, yeah, that’s going to faceplant! But having figured things out on my own before I found the community, it’s what I ended up with.


Don’t know if it would have helped me or not, but some obvious new-user training material might be helpful, if it doesn’t already exist by now. Something that not only describes how the app itself works, but also the community best-practices and how to do that too. Not in a weirdly-formatted Help menu (“weird” being very personal here), or at least, not only in there, but blatantly obvious to anyone.

Something like maybe a first-5-runs popup. Or maybe it keeps popping up forever until it’s disabled, and one of the tutorial items is how to disable it. It’s not on the popup itself, 'cause then I can’t get it back because I don’t know the app yet to find it.

Just the first run doesn’t work because I often start a new thing just to see if it runs at all, and then close it again. Then when I want the tutorial, the first run has already happened, and I can’t find it because I don’t know the app yet.

It should also be part of the installation itself and stored locally. (at least the basics anyway) I often install stuff, test-run it, and then go off-grid to figure it out with the assumption that I’ve got all I need now…

(I’m actually typing this in an RV with a phone hotspot; I don’t always have that even, sometimes because of a limited data plan and sometimes for other reasons…)


Just my $0.02

No there is no consensus. It’s just that the people who #iusemyownlibrariesonly are more voluble. You should find the way that suits you. I put custom items in personal global, not project, libraries. It only takes my a few minutes to register them in a new version but then I use a shortcut with a text editor on the library tables.

1 Like

Although the status quo is better than Write-Only.

It is your decision how you organize your work. KiCad is flexible.
Using Protel 3 (1997-2017) we were using only our own symbols and footprints. At the end I was the only one using Protel and when moved to KiCad I just copied the way of working form Protel.
We were always using only global libraries and containing only elements accepted to be used. The argument behind it was that it helped to control to not use unneeded new (resistor/capacitor) values (our semi-automatic assembling machine had limited number of drawers and the less global number of used elements the easier the work).

I had never such doubts. I have organized my KiCad directories before I have designed my first schematic and PCB.
And since always (since DOS times) I have all ‘my’ files at D: while all ‘not my’ files at C:. During years it helped me two or three times. Last time 2 months ago. Suddenly Windows had some problems (icons in bottom line were not visible, but working). I was able to reset Windows to beginning state without touching my files at D:

1 Like

@AaronD

I’m not sure how far you have progressed with Kicad, so forgive me if I assume too much or too little.
This is a link to a FAQ explaining Global personal libraries. It is best to create some first then place symbols or footprints in them at your leisure.
I use global libraries especially for jelly bean symbols and footprints.
An example: My global personal resistor symbol library has many different footprints attached to the one symbol. Rs402, Rs603, Rs805, Rt .3, Rt.4, Rt.7 etc. Rs = SMDs and Rt = THTs.
This saves me having to attach footprints after the symbol has been selected. Now there is the symbol fields table, I don’t know if I would bother if I was starting from scratch.
Also, for me, the Kicad symbol library “Device” is a pain in the butt; too much scrolling. Having separate libraries for Resistors, Caps, Electros, Transistors (each with their six versions); several connector and IC libraries etc. saves wear on the RH index finger and scroll wheel. :slightly_smiling_face:

Saving Kicad library parts to personal libraries is very easy. Open the appropriate editor, scroll to and right cliick the part needed, click “save as”, select the personal library in which you want the part placed, rename if you wish and save. Now the part is in your personal library ready to use or modify.
Rather than building new symbols or footprints from scratch, I will find something similar in a Kicad library, move it to a personal library and then modify to suit.

Anyway, as that old cat above wrote: You should find the way that suits you. :wink:

1 Like