Library Management HeLL

Here are the three files in my symbols folder.
image

Here are the files in my Symbol Libraries. What am I doing wrong?

Let’s start with this. If you use git, you certainly know what is a file and what isn’t. But what you say doesn’t make sense. Not from the viewpoint of git, nor from the viewpoint of KiCad, nor from the viewpoint of your computer’s file system.

In KiCad one symbol library is one file. One footprint library is one folder (directory).

So, please be exact and use correct words to minimize confusion.

1 Like

OK. I have a symbols folder and a footprints folder. CEM3340 is a file. I was using files and folder interchangeably. I guess that’s where I’m confused. I think of a library as a collection of books or files. KiCad calls one file a library?

My objective is to not use the symbols supplied by KiCad and to have my own in a separate folder that I can link to and modify. I’ve had trouble before where I try to load a project and there’s squares full of question marks everywhere.

A one symbol file is just a symbol library with one member. So all symbol files are also libraries.

Read this:

The FAQ section is your friend.

A one symbol file is just a symbol library with one member. So all symbol files are also libraries.

I understand this in theory, but get confused when actually trying to configure things neatly.
I want a folder for user files stored locally and occasionally pushed to GIT that has all of my user created symbols and footprints. I’d love to have everything stored away nicely with specific project folders for each project I’m working on, but I’ve never gotten that far or figured out how to link everything easily. The 8049 symbol is associated with another project. The CEM3340 and SSI2131 symbols are associated with my current project. SSI2131 should not be associated with 8049 pinout. I want to undo the damage I’ve done.

I already tried this, but it says the file already exists. I simply can’t access the symbol to change the path from Audio:AS3340 to my own library and path.

I’m still confused. Why would a file function like a directory or library? I’m trying to move up a directory to where all of these files are stored and post a simple link in my global libraries window. Unfortunately, it won’t let me. I remember, someone told me that I can’t change up to the parent directory symbols where all of these files are held and that I needed to create a link for ever file in the global libraries symbol libraries path?

Am I wasting everybody’s time? Sorry, but this system is one of the most painful software experiences I’ve ever had. Is it just me?

1 Like

From long ago a symbol library has been a single file, sort of like a zip file if you like. Now consider what you would do with a single symbol. You could give it a different file type, but KiCad decided to just make it a library with one member. This is the reality that any scheme that you devise has to deal with: A symbol library is stored in a single file.

Therefore you cannot apply OS level file operations on symbol libraries to do things like add a symbol, or merge a library into another (same thing since a single symbol is a library). You have to use KiCad’s symbol and symbol library management facilities.

You may use git to track your changes, but they would have to be at the level of symbol libraries.

2 Likes

Thanks! Do you have any suggested reading?

The KiCad docs would be the logical starting point.

2 Likes

You sound like I did some years ago. My solution was simple, I had to layout the folders and what is in them and keep it “laminated to my desk”

My structure is:

Another thing I found. In the global paths you must use the “shortcut” and not the full path.

2 Likes

Yes.

I wrote this in a similar thread yesterday.
I also wrote this FAQ.
There is also this official Kicad tutorial.

My advise is to temporarily forget GIT.
Learn to create and use personal libraries with your computer first. When you have mastered this, move to GIT.

Basically, to organize personal libraries, as mentioned in all the above links, you:

1/ Create a Folder with your Operating System, NOT Kicad.
2/ Create more Folders with your Operating System, to place in your original Folder.
3/ Maybe create even more Folders to place in your Folders in your Folders in your Folder; again with your Operating System.
4/ THEN you open Kicad, go to the Symbol/Footprint Editors and use File > New Library > Global > give the new Library a name and steer to the folder (created with your OS in 2/ or 3/ ) in which you wish the library to reside, then click Save.
5/ Repeat 4/ as required. Personally, I have 25 symbol libraries. @Piotr has 26… he beats me :frowning_face:
6/ Use the same procedure (4/ & 5/ ) to create footprint libraries.
7/ 3D libraries are not created with Kicad. 3D libraries are created with your OS. They are another set of named folders in one of the other folders created with your OS.

Copy, Import and Create symbols or footprints or 3D images and place them in their appropriate libraries.

Your tree should end up looking something like this:

*My Kicad Libraries 

           > *My Schematic Libraries > Various named Libraries > Symbols
                             
           > *My Footprint Libraries    > Various named Libraries > Footprints
                             
           > *My 3D Images  >  *Various named Libraries > Images
NOTE: everything with a * is created with your OS.                                                       

When you have all the above sorted and correct and understood, it is time to move it all to GIT.

Please ask any questions if you do not understand something in this post.

1 Like

The concept of a library that includes a single item is counter-intuitive. The inconsistent organization of symbols (one per kicad_sym file) vs footprints (many per directory) is another source of confusion.

2 Likes

As already explained above practically all symbol libraries hold multiple symbols in the .kicad_sym file. It’s just that the same library format can be used to hold only one item, when handling symbols one at a time.

I think that this confusion is amplified by the recent proliferation of commercial EDA library generation companies (SnapEDA, UltraLibrarian, and friends).

KiCad does not have a format for passing around a single symbol by itself (unlike footprints) – symbols have to be contained within a library. But these services give you components one symbol at a time. So they all generate a library that contains one symbol inside it, and name the library the name of the symbol.

This is of course terrible practice as a way of managing a collection of symbols, but I can understand why people think that it is the way to go, when they can just download such single-symbol libraries from a Digi-Key product page.

1 Like

Well maybe there should be a bit more thought put into the way the GUI of library items are managed. I mean it shouldn’t be so hard to move symbols from one library to another. One should probably be able to drag and drop things around.

2 Likes

It is really not that hard in my opinion. You can either copy/paste, or use “Save As”. You can’t drag-and-drop, but is the absence of drag-and-drop really “that hard”?

As others have written here, it really is time to read the manual and really learn how library management works.

In KiCad, a library for symbols is a single file which can contain many different symbols. Each library (not the symbols) have to be added to the library table to be visible in KiCad, and that is not what you have done. It looks like you exported or saved individual symbols into files.

(With footprints it works differently in KiCad. A footprint library is a directory, and each individual footprint is a file in that directory).

Another part of your confusion is that you can easily load a symbol directly from a schematic into the symbol editor, and then save the changed symbol into the schematic again. Such a modified symbol is stored in the schematic only, and when you update the symbol from the library, it is replaced again by the old / unmodified version, and your efforts have been lost.

So again. Take some time to read the manuals, do some experiments with dummy symbols and continue doing this until you understand how it works. After that you have the knowledge to re-organize your libraries properly.

3 Likes