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

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?

Ah, so it is basically like saying, “Okay, here’s a good place for you to save your files, but if your way of organizing doesn’t work like that, go on and save 'em somewhere else.”

Project manager > Preferences > Configure Paths, as those variables apply to all the editors.

1 Like

I’m finding a different behavior in setting personal symbol library directories than from setting personal footprint libraries.

I set both KICAD_USER_SYMBOL_DIR and KICAD_USER_FOOTPRINT_DIR in the paths, as explained above. Then I picked Preferences->Manage Footprint Library and set it up. I added 2 personal libraries, Tango-Connectors, and Tango-ESP32. (Well, not Tango - used my real user name. With situations like this, I prepend my name or “My” to my own settings or personal libs so I can keep it straight in my head what’s my custom stuff and what’s default program stuff.) It was no trouble adding those folders to my footprint libraries.

Then I tried to do the same for the symbol directories and add a “Tango-Connectors”). I’m on a Mac, so I was adding the folder /User/Tango/Documents/KiCad/Libraries/Symbol/Tango-Connectors, just as I added the folder /User/Tango/Documents/KiCad/Libraries/Footprint/Tango-Connectors. I have a reading/perception issue, so simple spelling mistakes elude me, so I’ve triple-checked the paths and copied the paths from KiCad and pasted them into my terminal so I could use ls <dir> to be sure I am referring to the proper directory. But I can’t set the empty folder as a symbol library the way I could set the empty directory as a footprint library.

I’ve even removed the variable and used the file selector in the Symbol Library Manager just to be sure I’m pointing to the right path. In the Footprint Library Manager, I can use the selector and click on the folder I want to add as a library and click “Open” on the file requestor and it takes that path and uses it in the Manager.

BUT - when I’m using the Symbol Library Manager, and I click on the folder I want to use for Connectors, then click “Open,” instead of taking that directory and putting it into the field in the manager, it opens that empty directory in the file requestor. So I cannot pick an empty folder for a library using the file requestor for Symbols, but I can for Footprints.

Also, when I have verified I have typed in the correct path to the new empty folder for a personal symbol library for connectors, then try to close the Symbol Library Manager, it reports it can’t open that folder as a library. (I’ve copied the text from the error message and pasted the path in terminal, like the other times, and have verified the directory is there.)

So, for some reason, I can set an empty directory as a new personal Footprint library, but I can’t do the same for a Symbol library.

That’s because Synbol Libraries are contained in files, not directories. If you look at the screenshot in the Schematic Editor documentation, you see that they all end in .kicad_sym.

Here’s a partial screenshot of my symbol library table. The Nixie library is in a file called nixie.kicad_sym in the directory $(KICAD_USER_SYMBOL_DIR}.

So you’ll have to create a symbol library before registering it and verifying that the path variable works.

Okay, so I’m doing it backwards. Make the library THEN register it.

So this is completely different from Footprint libraries, where you can create a directory, register it as a directory, then add .mod files to it as footprints? Or am I doing that wrong, too?

I think you can create footprint libraries from KiCad, no need to create them ahead of time in the OS. You may want to plan the library names though. It’s the top directory that you have to create and make writable (if necessary).

I got it working now. I just pulled up the two Library Managers and thought using the ‘+’ button on them was all I needed to do to add a library, especially since the first one I did was the footprint library. Seems kind of odd that the Symbol Library Manager cannot add a new library - that’s where it seems intuitive to go, rather than the Symbol Editor.

Actually the library managers are for managing entries in the library tables, not creating libraries. But yes, the UI could do with some refinement.

As has been seen many times, library management in KiCad is difficult. The Manage X Libraries dialogs manage only so called library tables (which are unknown thing in all maybe every other software outside KiCad and therefore a difficult concept) and not the libraries themselves.

The library Editors try to fulfill double duty as editors for library items and as actual library managers, i.e. you can create new libraries with them, copy and paste library items between libraries, etc.

IMO this is conceptually problematic, mixing different domains. The problem is seen in the File menu. Can you tell without trying what Save, Save As and Revert do? Do they work on library items (edited footprints/symbols) or on the library list? Or both at the same time? How about the difference between symbol libraries and footprint libraries where saving means different things?

Perhaps a revamp will occur along with effort to separate the system libraries from the user libraries in the library table managers to ease version updates.

I think the setup for library management is confusing. It seems, from reading the last 3 comments (from @retiredfeline and @eelik) that this has been a problem for a while and that library management requires an understanding, to a point, of what kind of files libraries use and how KiCad manages the libraries.

From my point of view, what’s confusing (and I think @eelik touches on this with is comment about mixing domains - or maybe I’m misreading that?), is that “Library Management” implies that tool is for handling full libraries, not individual entries. (Although it might allow creating or deleting components.) The scope of a Library Manager is a large scope, encompassing one or more libraries. But the symbol editor, one would think, would have a smaller scope: Managing symbols (or footprints) in a library. It’s counterintuitive to go to the tool with a single-item scope to perform functions that involve working with full libraries or multiple libraries their scope. Correct me if I’m wrong, but I think where I’m inclined to use the word “scope,” @eelik is using the word “domain.”

It’s like, if you have to clear cut part of a forest for a firebreak, having to go get a hacksaw, which you’d normally use for trimming smaller branches off trees, to do the clearcutting. It doesn’t make sense, intuitively, to go for the tool to use on single items to handle actions done on full libraries.

I think the two could be combined. Since the footprint editor involves the lists of libraries, having the ability to quickly move between the the two different scopes (or domains) would make the entire process easier. Add the ability to switch from management mode (handling libraries) to edit mode (handling a single symbol - or footprint) would make it much easier to move back and forth between both tasks.