Imported Footprint Disappeared (due to KiCad update, perhaps?)

I hereby certify that I am not simply asking someone else to design a footprint for me.

After getting some help on my questions about footprints, I’m working on preparing my first KiCad schematic for the PCB design. I’ve run into an issue with a disappearing footprint along the way.

I downloaded KiCad within the past 6 weeks and got version 8.0.4 for macOS. While looking for footprints, I saw a number of ESP32 footprints, but none for the Devkit C version, which is quite a different form than the simple footprint for the chip by itself. I did some searching and found a footprint online and imported it into my library and checked it out. It imported okay and I picked it as a footprint for my schematic. I did a test run and when I tried to import the schematic into the PCB editor, there were no errors specifying the ESP32 chip.

Then, within the past week, I updated KiCad to 8.0.5. I don’t know if that’s why I’m having this issue or it’s something else, but now the footprint for the ESP32 Devkit C is no longer available in my library.

Is this normal after an update? Do I need to create my own custom library and save it somewhere so imported footprints don’t get clobbered by an update? What should I do to deal with this so I don’t lose imported footprints in the future?

Thank you.

I’m reading through that and I’m not clear about locations and persistency of the libraries. I tried this with the Footprint Editor, since that’s what I need first (to import the ESP32 footprint). I can create a library, then it asks me where I want to save it.

Does KiCad keep track the global libraries I create, so I don’t have to load them or anything like that to use the symbols in them?

And I take it that everything specified in that post about symbol libraries works the same for footprint libraries?

Yes.

As the FAQ instructs:
First create a new folder with your OS, or a folder in a folder. This requires a bit of planning.

Maybe something like: A folder named Kicad Personal Libraries.
Inside that folder, three folders named Symbols, Footprints & 3D images.
Inside those three folders create folders LIBRARIES as you wish for different types of symbols/footprints/3D images.
Maybe for footprints, start with a connector library and add new footprint libraries as required. eg. Diodes, Resistors, Capacitors etc.

The above suggestion will result in a path reading something like:
Tango’s comp/C drive/Kicad_Personal_Libraries (an OS folder)/Footprints (an OS folder in an OS folder)/Connectors (a Kicad Personal Library)/spunky_USB (the created footprint).

Yes, provided you do not move them to another place on your computer. eg. If you moved them to “D” drive, you will have to instruct Kicad how to find them in D because Kicad will still be looking in “C” if you originally placed them in C

1 Like

I would say something else. Minor version change doesn’t affect configuration or settings, including library setup.

Thank you - and thank you for the work on the FAQ in the first place. I know it takes a lot of time to write something like that up. I did go over it. I do have a some reading/learning issues. Sometimes I will misinterpret something or it won’t sink in, even after repeated reading. (Back when I was programming in Perl, and when compilers didn’t always provide error messages that helped narrow it down to one line, if I used a colon instead of a semicolon at the end of a line, it could take 45 minutes to find the error!)

So thanks, again, for clarification on this!

I just want to verify that I get this, so let’s work with just the footprint library. So I have KiCadPersonalLibraries as a folder, then, in that, I have the directory footprints. So each library, such as capacitors, or connectors, will need a separate folder? (I know it won’t “need” one, but is the idea basically that each footprint library I create works best if it has its own directory? I just want to be sure I have it right.

This expands a lot on this and might warrant another topic:

I’ve also read this thread on KiCad file locations. I see that all the KiCad configuration files are in one directory. With the personal library directory, that adds another. Are there other situations where files, other than my own projects, are going to be stored in any other directories? I’ll be using KiCad on two different computers. I use Syncthing to keep configurations up to date. Like you mentioned about libraries, planning ahead helps, so I want to make sure any extra directories I need to create can be set up now so, as I get used to KiCad and do more with it, and set up more advanced settings or default files, or any other config or settings that need more files and directories, that they’re all included in my sync setup.

Good point. So if I have KiCad 8.x.x, when I upgrade to 9.x.x, in the future, will I have to copy or import settings to the new version, or does it do that automatically?

No.

I was suffering brain fade. Please read my above post again. I typed the wrong word. The correct word is now in bold. I’m sorry if this has caused confusion.

For your interest, I work exclusively with Personal Libraries. I frequently use Kicad Library symbols and footprints to add to my personal libraries. Usually I will modify the Kicad symbols. Sometimes just a little.

I have 22 personal footprint libraries and 24 personal symbol libraries. I don’t bother, usually, with 3D images; only having 5 of those. I have the Kcad Libraries installed but hidden (not visible).

If I need a new part, I will make visible the appropriate Kicad Library, find what I want, “save as” and modify to suit myself, or I will make new stuff from scratch with the aid of a Data Sheet.

No.

Accessible Kicad supplied stuff is in the one location, placed there automatically, upon installation, by Kicad. Your Personal Libraries are in another place where you put them. Your projects are in yet another place where you put them. That is all.

Settings will be automatic. I’m not sure about Hotkey alterations. I have a feeling my modified hotkeys needed to be re-installed when I did a major upgrade (eg 7 to 8).

Personal libraries need to be re-installed at major upgrades. This is done in Preferences / Manage Symbol(Footprint) Libraries.

Thanks for the clarification. So I have ~/KiCadPersonalLibraries/Footprints/ but not subdirectories within the Footprints folder? Just libraries in there?

I’m curious about your reasoning for this - if it’s not going too far off topic. My guess would be that your personal libraries include components you know use the symbol you prefer and have the footprint you prefer, so you don’t have to worry about that kind of problem. (For instance, I saw, in the symbol library, a lot of symbols that are rectangles with a wire going in each end. Saw that for diodes, resistors, and others - that can make reading a schematic confusing. As for footprints, I can see how there would be choicess. For instance, mounting resistors flat or vertically.)

I can see how using only personal libraries might speed things up and let you focus on what you’re designing, instead of HOW to do the design. The problem is the upfront effort it takes to add all the components to those libraries. I’m thinking, since I haven’t designed PCBs yet, that when I do, I’ll need to do test prints on paper and lay out the components and make sure they fit. Once I get used to the process, I can see how I’d develop a set of preferred symbols and accompanying footprints. When I get to that point, I can see how it would benefit me to do what you’ve done.

Okay, simple. Got it.

Sounds like that would also be solved by finding out what file the hotkey data is stored in and manually coping it from one folder to the other.

I use a program for 3D work (at this point mostly for printing) and I’ve learned, from some issues in that program, that handling updates can be tricky. (For instance, major version updates disconnected my Python macros and scripts for it.) So I always check on these things. That I’m asking this kind of question is the kind of thing I do when I’ve used a program enough to know it’s what I want to keep using.

I would think that would simply be a matter of pointing the new version to the directories containing the personal libraries.

I’m curious - and know it’s possible nobody here has the answer - why isn’t this done automatically? Or is part of the install process providing a choice for personal library locations?

Right now, there is a technical limitation that the same configuration file (known as a library table) is used to store the list of official KiCad-provided libraries, and any user-added libraries (and there is no definite way to tell the difference between those two). Since the list of KiCad-provided libraries can (and does) change with major version updates, it is best to start with the latest version of the KiCad-provided library list, and then re-add your custom libraries. Note that all of this has to do with the library table file, which tells KiCad the list of libraries to load – not the location of the library files themselves.

Obviously this is not ideal and it’s something we have discussed ways to improve in the future. While there are various proposals, at the end they all are one or another form of separating the official KiCad libraries from the user libraries in a defined way, so that we can upgrade the KiCad libraries automatically without touching user library configuration.

More than once, I’ve thought “wouldn’t the ability to copy/paste ten personal libraries at a time be nice”.

In the greater scheme of things, re-adding nearly 50 personal libraries once a year into the library tables isn’t going to kill me. It is only about 15 minutes effort, including sips of coffee.

Yes.

Mostly it is done to make jelly-bean symbols and footprints easy to find and quick to place on both the schematic and PCB. Even typing “Res” into the Find box still requires a lot scrolling and looking using the Kicad Libraries. Sometimes I don’t like the shape or pin location in symbols (this is purely personal taste).

This is not really an upfront effort, more like an ongoing effort. It started with compartmentalizing frequently used symbols from the Schematic Device library.
The PCB libraries have footprints to suit the mountain of parts I have acquired over years.
Kicad is strictly a hobby for me in my retirement years.

I’m not certain if they are carried over. I was messing around with hotkeys at the last major release. I’ve made a note to check this when I move to the next major release. If they are not carried over, I’ll make a “Feature Request”.

I found something else that makes me question this. I was looking in my Documents directory. (I’m on macOS, so the KiCad preferences are in ~/Library/kicad. But I found ~/Documents/kicad and it has a number of folders in it, like 3dmodels, 3rd party, footprints, plugins, projects, scription, symbols, and template. I did find the worksheet with my preferred information on the lower right corner in template, so I may have created that folder, but I would not have created all the others.

KiCad creates some suggested directories for user libraries the first time a user fires up a KiCad (major) version. On Linux for 8.0 they are in:

~/.local/share/kicad/8.0/

I don’t use that directory, I prefer my own. @jmk you may wish to mention in your FAQ that these directories are available for use.

Are we going in circles?

This:

is this?

Are they?

Not that I can see. First, I’m referencing this thread, which I brought up earlier. Second is your post, above, where you’ve said:

On macOS, I have ~/Library/Preferences/kicad. According to that thread and to your answer, that is the only location I have to worry about for KiCad files (other than my personal libraries and projects), but I’ve found another directory, one I did not make, ~/Documents/kicad, so KiCad made it. I don’t remember how my edited worksheet got in there. I think it was because when I tried to edit it, that was the default save location, I saw the directory was “templates,” and thought, “Sounds like where KiCad wants it.” Otherwise all the directories in it are empty (except, maybe, for empty subdirectories).

So this is a 2nd directory we haven’t discussed that KiCad created.

I think it’s explained in this other reply:

But I don’t know what’s going on and if that’s just, as stated, a suggested directory, or if something else is going on there. I don’t know where it is in Windows, but we have the locations for macOS and Linux specified here. If it’s just a suggested directory, then there’s no issue, but I just want to be clear if it is only suggested or if KiCad actually uses it for anything at all.

It’s only a suggestion, for files which the user explicitly creates and saves using KiCad or for KiCad (that’s what the user’s Documents folder is for in the operating system directory structure). This is a bit more complicated with KiCad because it automatically saves packages managed by the Plugin and Content Manager there, too. But the implictly created and saved configuration files used only internally by KiCad are saved in the Preferences or .config or AppData folder of the user.

Check out Preferences → Configure Paths. There you can change certain default paths. The only path which can’t be changed that way is the actual configuration directory.

One thing I would encourage people to do is to use variables in your user library paths. For example I have defined KICAD_USER_SYMBOL_DIR and KICAD_USER_FOOTPRINT_DIR which means I can move my libraries anywhere, change the values of those variables and carry on (I do that anyway :wink:). The temptation is there to use the filesystem browser to set the path though. But a bit of copy pasta and it’s done.

I take it the place to use them is in the library managers, but where do we set global definitions like that?