How to view actual library path for symbol/footprint in KiCad UI?

Today I had two instances where I was troubleshooting a symbol or footprint that I thought was updated in the library that I thought was being used, but the updated component did not appear on the schematics or PCB.

My question here is not about those cases per se, which I resolved.

My question is --are there ways to get the Kicad UI to tell me for sure which file a particular footprint or symbol was coming from, or would be updated from? This includes in schematic and pcb editing environments, and the symbol and footprint editors.

Now of course I know about the Kicad > Preferences > Manage Symbol Libraries and Manage Footprint Libraries, in which library files are registered with Kicad, enabled and disabled. These set which libraries should be in use, but it’s not always clear when a change to those lists takes effect, and in general, I could not find a way to confirm that it was taking effect.

So am I missing somethings in the UI? For example, in EESchema, if I select a schematic symbol and open its properties, the dialog shows Library link: [LibName]:[SymbolName]. However, what I would also like to know is what file Kicad thinks [LibName] corresponds to. And the same in PCBNew.

For what it’s worth, I am using KiCad 7.0.8.

Thanks.

I do not think you missed anything. KiCad uses:

to identify a library name and symbol name, and it uses the path names from the Preferences / Manage … Libraries for the locations of the libraries used.

I did try to: Symbol Editor / File / New Library, then create a project specific library (In the project directory) and name it Device, but Kicad does not accept it. It complains with:

image

However, when I: Schematic Editor / Preferences / Manage Symbol Libraries / Project Specific Libraries, then the [+] button, Then Kicad does let me add a path to a Device library in the project directory.

So It seems to be possible to create an actual library conflict this way, but I have not investigated further.

1 Like

Well it’s an indirect way, but when I select the symbol, then Edit > Change Symbol, then click on the current symbol’s library icon, it pops up a symbol browser and the title of that window shows the library path. On Linux anyway.

1 Like

I read the OPs question as “How do I know when, and if, Kicad has updated a library component in a Kicad library?”

Maybe I’m wrong with my interpretation.

Also, 7.0.8 has been updated to 7.0.9

@retiredfeline

Sounds promising, but I don’t follow your series of steps:

  1. “select the symbol, then Edit > Change Symbol”
    OK, that brings up Change Symbols dialog.

  2. then click on the current symbol’s library icon
    I don’t see any icons in that dialog

  3. it pops up a symbol browser and the title of that window shows the library path. On Linux anyway.
    [Could not proceed to this step]

However, you got me on a useful track.

  • Schematic Editor main menu > View > Symbol Library Browser brings up the Symbol Library Browser which does indeed show the library file path in the title bar when you select a library in the leftmost column.

  • PCB Editor main menu > Footprint Library Browser brings up the Footprint Library Browser which shows the library path in the title bar as you select a library in the leftmost column.

This is a pretty good start! However, it would still inspire more confidence if that info was available for an individual symbol or footprint on a schematic or PCB.

Thanks for your suggestion!

1 Like

Library icon is the three books at the RH end of the symbol name boxes.

The very top of the page… the full library path followed by " .kicad_sym - Symbol Library Browser"

The “handful of books” icon.

@jmk and @retiredfeline Ah-hah! I was looking for an icon for the library symbol, not an icon that symbolizes a library!

Anyhow, it appears that leads to the very same Symbol Library Browser that I found was more directly accessed from: View > Symbol Library Browser, and similar in PCB Editor for Footprint Library Browser.

However the difference is even if you have a symbol selected, View > Symbol Library Browser doesn’t take you directly to the library containing the selected symbol, whereas from Change Symbol it does. At least not the first time. So perhaps a feature request should be made.

1 Like

I do not understand this question:

[LibName] is the “nickname” of the library, and the way it works is explained in: Schematic Editor | 7.0 | English | Documentation | KiCad

This part can make it confusing:

Each library must have a unique nickname: duplicate library nicknames are not allowed in the same table. However, nicknames can be duplicated between the global and project library tables. Libraries in the project table take precedence over libraries with the same name in the global table.

As far as I know, the only way to see the actual filename (path) of a schematic symbol is to use the lookup table from Schematic Editor / Preferences / Manage Symbol Libraries. Everywhere else in KiCad, only the library nicknames are used. For all of KiCad’s default libraries the nicknames are the same as the filename (without extension), but apparently they do not have to be. I never used a library nickname different from the filename. That would be quite confusing for me, and I always try hard to avoid such confusion.

Edit: Oops, when the Symbol Library Browser is opened, it does indeed show the full library path in the window title. Just as in jmk’s post below. The Symbol Editor shows the nickname:symbol name combination.

retiredfeline

1d

Well it’s an indirect way, but when I select the symbol, then Edit > Change Symbol, then click on the current symbol’s library icon, it pops up a symbol browser and the title of that window shows the library path. On Linux anyway.

1 Like

Your solution works also with windows as OS.

But only on the current v7.0.x version. For v7.99 nightly (upcoming v8) the symbol library browser (as displayed in your picture) was replaced by the symbol chooser window. And that window doesn’t shows the filesystem-library path.
So for next year we need a new solution.

2 Likes

Perhaps the file path should be one of the attributes shown in the Properties. Or there should be a View > Show Path action.

Mind you I’ve never been in doubt where a particular symbol/footprint comes from as being a occasional hobby user I have only made a handful of each and I remember each one.

2 Likes

That’s a bit of a drama!

Now we are going to have to remember where we placed the library. :rofl:

Or as Paul stated:
Schematic Editor /Preferences / Manage Symbol Libraries.

I really don’t think we need a solution.

To use a symbol in a Kicad schematic, that symbol needs to be in a Kicad or Personal library.
That library also needs to be active in the Global libraries or Project library lists.
If in a Project Library, that Project also needs to be open.

7.99, just as 7.0.9, shows the library link in the Symbol Properties, so it really is just a matter of scrolling through the Symbol Library list to find the Path and/or its substitute.

I also don’t know whether there is any problem that needs solving here. Maybe it is possible to create a situation in which the location of a symbol or footprint is ambiguous, but having an example of this actually happening would be a nice starting point.

If this happens after some project import from another program, I would be very much tempted to replace the majority of the symbols and footprints with KiCad native parts, and for the rest simply export it from the converted KiCad schematic and PCB to project specific libraries.

1 Like

Good point! That does make it useful to use the steps that start with “Change Symbol”. Thanks!

As I mentioned in my original post, I recently had two instances in which I needed to troubleshoot KiCad library paths. Which is to say, crosscheck what the Manage Symbol Libraries (or equiv Footprints) says is supposed to happen versus what KiCad is actually doing. In both cases, it turned out that KiCad was behaving “as designed”, but it wasn’t clear that was so, or what the “design” was.

Instance 1:

I had recently updated to K7. Since I am maintaining projects that were created in K5, K6 and now K7, I need to maintain user libraries that pertain to each set of projects. So, as I usually do, I created a K7-specific UserLibs directory to hold subdirectories for user-symbols, user-footprints, user-3dmodesl and so on. To those directories I copied all files from the corresponding K6 UserLibs. I then used Manage Symbol Libraries (and same for Footprints) to register these user libraries, and migrate them to K7.

Later, when I used a symbol from a user library, it seemed to be an old version that I though had long been revised. This led to some troubleshooting as to whether this was indeed an old symbol, and why it was now appearing in K7.

It turned out the following had occurred:

  • During the K5-to-K6 update, I had used the procedure described above to initiate my K6 UserLibs directories.
  • In that process, I had copied K5 library files into the K6 user-libs folder.
  • I had registered and migrated those files. That created new K6-format library files, while leaving the K5-format files in place. At the time I was not savvy and vigilant enough to delete those K5 files from the K6 directory.
  • Now during my K6-to-K7 upgrade, I copied those K6 libraries (some updated since initiated from K5) to K7 user-symbols, along with the left-over K5 library files.
  • When I then registered and migrated the newly-copied “K6” library files in K7, K7 converted the K5 files, and overwrote the K6 files, leaving me with some K7 libraries that actually came from K5, not the newer ones from K6.

OK, I am sure that in retrospect you can spot the missteps on my part. But that is not the point – the result was a mess that I needed to troubleshoot, and where I wanted 100% confidence that a particular component (symbol) was coming from a particular file.

Instance 2

In this case, I was trying to find out why the 3d models of some (but not all) PCB footprints were not showing up in the 3D viewer. This led me to pursue the link from footprint properties to 3d-model. There I discovered that these links are specified using the variable KICAD6_3DMODEL_DIR.

Well, in a K7 library, “KICAD6” appears at first glance to be a bug. It is also not defined in the Configure Paths table. So logically, the reason that the the 3d-models don’t appear is because the K7 library data is broken.

Yet other components DID appear in the 3D viewer, and also have 3d models linked by variable KICAD6_3DMODEL_DIR. How could that possibly work?

Here I could really have used confirmation of what actual files K7 was trying to use for the the footprint, and what file it was trying to fetch for the 3D model.

Turns out (as you probably know) that K7 treats KICAD6_3DMODEL_DIR specially – internally it converts this to KICAD7_3DMODEL_DIR.

And the reason that some components were not appearing in 3D was… in a previous session, I had set the viewer’s option to hide through-hole parts. Doh!

So here again I had made a misstep, but in this case the situation was clouded by the unexpected design of K7 – the hidden transformation of KICAD6_3DMODEL_DIR to KICAD7_3DMODEL_DIR.


These are the kinds of cases that make a user seek more confidence in the actual files used as the source of symbols, footprints and 3d-models

1 Like

This comment of mine was based on my own use of Kicad: someone who only uses symbols and footprints from Personal Global Libraries.

Thanks for your detailed user cases @gwideman .
You have changed my opinion.

I now believe the below is required :slightly_smiling_face::

2 Likes

Hi jmk. I’m glad my rather lengthy story was useful.

1 Like