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?
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.
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
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.
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.
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.
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.
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.
Is it hard? No, but tedious. How about allowing you to multiselect multiple items at a time.
Imagine if managing files on your computer were as cumbersome. So currently it works… yeah but is very far away form easy to use. I mean similar things happens when you want to see what symbol inherits from where etc etc.
The GUI at the moment is the least that could work. There is lot that should be improved. Its no wonder people would prefer to manipulate files.
Yes but this does not help people who have a 10’s of different single item libraries. Why not allow me to copy form multiple libraries. Perhaps commandline?
Why would you have 10’s of different single item libraries? This will only cause Repetitive Strain Injury on the scroll wheel finger.
Libraries may start with a single item, but, over time, additions will be made. What is the point of a different library for each semiconductor or capacitor etc.
when you download ready made symbols from vendor sites you always get a one item libraries, as has been established in this thread.
I’m not saying the software is defective I’m saying it does not reflect realities on ground. Not really an issue for me I don’t download library items but my students do and they frequently have 30 one item libraries.
This will only cause Repetitive Strain Injury on the scroll wheel finger.
Exactly, that’s what I am trying to avoid. My point is the GUI is not entirely optimal should be improved. There is no reason why there needs to be this kind of limitation. There is no reason why i couldn’t consolidate 10 from this lib 2 form this lib, and 1 form there 3 lines with one drag or click or something.
In the Symbol Editor I can select multiple symbols in different libraries ( One mouse click and a [Shift + mouse click]), but if I then attempt to copy it, I get: Error loading symbol from library: ‘0_motor_driver’. symbol not found
I guess this is a bug and KiCad is attempting to “copy” the library itself as being a symbol too or something similar. (Edit: Ah, yes, the good old [Ctrl + click] to select only a few items (See jmk’s followup post))
The Footprint Editor does not even let me select more then one footprint at a time, so no copy of multiple footprints.
I couldn’t find any sites that didn’t require a sign in, so give up.
@paulvdh
When selecting multiple symbols from multiple libraries, you need to open all the libraries first and then take care to select only the symbols and NOT include the library.