How do you create a symbol library that works?

I can’t help exactly. I have defined my symbol libraries with KiCad V4 when schematic libraries were managed really unfriendly. And now if I need to add anything I just copy one of symbols under new name and modify it.
I suppose the right you should start is the option “Export Symbol…” (after right mouse key at symbol in tree). Then you will probably get the new library with one element. Then you should add that library in Preferences-Manage Symbol Libraries. Place your libraries in your directory.
I have (in the list there) only defined by me libraries as I used to work that way that when I add symbol to schematic then at once its footprint is defined. I have never even tried to step through assigning footprints after having schematic and before defining PCB. Each my symbol has footprint assigned to it.

Just believe me that after stepping over first problems everything will be simpler and simpler day after day. I have different natura than you - before trying to install KiCad for the first time I have read all documentation from:
and even that documentations were not up to date they helped me enough to be able to organize everything according to my needs. I had some problem with BOM generation as I don’t know Python, but with little help from people here I managed to do some BOM generating script modification (more intuitively than based on real knowledge) and now I have everything as I need.
I also use only my own footprint libraries as (because of my documentation needs) I specified some little other standard for layers use than KiCad. I have changed my mind few times (last time on Monday and I spend 2 days this week modifying all my footprints to my last decision). Each time I believe this is the last time I modify all footprints and this time also I believe I will do it no more :slight_smile:

Was there any error message? If yes then please share it (screenshot or copy the text of the error message)
If not can you show a screenshot of the state where the symbol is in the library without you being able to save? How do you determine that you can not save if there is no error message? (What do you see versus what do you expect)

Additional question:
Did you try to get an existing symbol into that lib or did you start with a new symbol?
Do you have write access to the library file? (operating system restrictions)
Is the library on a local drive or a network drive?
What filename did you choose for your library?
Did you place the library into the global or project library table? And are you in the same project when you try to use the add symbol dialog versus when you made the library (as you mention this dialog above)?

Also if the tree view is for some reason not there then you can get it back. See the answer in Symbol Editor Libraries Pull-down for details (the user there asked how to get it smaller or get rid of it and the options explained in the answer can be used for both hiding and showing it)

And another option to better help you would be if you could explain in more detail what part of the process looks different to you than it does in the tutorial. Possibly helped by providing a screenshot of how it looks for you.

Will try to provide more detail on what I am trying to do.
All I am trying to do at the moment is get a schematic into the system, so no overly concerned about footprints and layout specific stuff at the moment, especially for minor passive components.
What I do need for my current project is an IRS2334 IC symbol (20 pin soic). What is in the library (drivers, FET) is an IR2133, similar functionality, many same pin names in a 28 pin soic. I placed this device on my schematic, and then followed the instructions on p43 of the Eeschema manual to modify it, which seemed to be successful. The IRS2334 entry appeared in the library (drivers, FET). listing. This is where it went wrong. Could not find any save mechanism, so attempted to exit the symbol editor which prompted with a “do you want to save” message. This was not allowed due to permissions issues.
Attempts to create my own project specific library file(s) appeared to be successful, but the system could not seem to find or use them.
Here is an image of the schematic with the schematic with the original library symbol and my (partially) modified one to the left.
Below is the library file with the entry of my modified device that could not be saved.
Not sure where to go from here. Possibly the best might be to uninstall (to get rid of any corruption I may have created) , reinstall and try again.
Thanks everyone for your time and patience.

What I did was to create a folder “library” in the same folders where my schematics and project files are located. I then told KiCAD to create my custom library in that folder. Perhaps a similar approach may work.

First, KiCad does work fine. I’ve created symbol and footprint libs and probably have 100+ symbols and a few dozen custom footprints.

Second, just because a program doesn’t work the way you imagined, doesn’t make it user unfriendly.

Third, go on YouTube and watch a few videos. LEARN How It Works.


KiCad does not search for libraries.
Also mentioned in:

(Also posted by Rene)

Result is that you have to do a few manual steps for your custom libraries.
So I’ll do the steps for myself (again) and write them down (Rene’s link is the long version).

  1. Start KiCad, in project manager: File / New / Project…
  2. Start schematic symbol editor (Icon next to Eeschema)
  3. Symbol Editor / file / New Library, enter name, [Save]
  4. Choose: Add to Library Table “Project”. [OK] At this point you have added a new but still empty library to your project.
  5. Type “ir2133” in the search box and double click on it to load that symbol in the symbol editor:
  6. **Symbol Editor / File / Save as. Type in a new name, and also select your custom library before you press [Save]:
  7. Modify your schematic symbol a bit. (so you can always see it’s your personal one). In the screenshot you can see your library name in blue, with a star behind it to show that it’s changed. and your new symbol name is in the new library:
  8. You probably do not want the aliases. Remove them with: Symbol Editor / Edit / Properties / Aliases and remove them by clicking on the garbage bin icon in the lower left corner: image and then [OK] when finished to close the dialog.
  9. Symbol Editor / File / Save Your library is now still blue, (it has changed) but the asterisk behind it’s name is gone.
  10. Exit Symbol Editor. Your changes are already saved, it exits without further prompting.
  11. Start Eeschema.
  12. Press a for add, type in (a part of) the name of your new schematic symbol and place it on your schematic.

Then I did:

  1. Save schematic.
  2. Exit KiCad.
  3. Remove backup file from project.
  4. Create zipped archive of project.
  5. Upload here: (3.9 KB)

If you now open that project, there is an obviously modified “reistr_irs2233334” part on the schematic.

Have fun.


I too had to step back and research a few things before creating my first user library.

I was using Windows 10 (maybe 7 at the time).

Under “Documents” or “My Documents” I created a folder called “j_KicadLib”

I created all my libraries in that folder. The all start with j_ so I have
j_footprints (for PCBNEW)

The leading j_xxxxx makes it easy to see them in the library list.

One of the benefits of this location is they are backed up when “My Documents” are backed up.


It might help if you for now focus on learning kicad. Follow a tutorial that shows how to make symbols. It might make your live easier if you even make a symbol for the same part as in the tutorial you choose (even if you expect to never need it). That way you stay focused on the goal of learning the tool and you can more easily double check any intermediate result.

I posted a full tutorial series in my first answer that goes through all the steps. It is clear from your screenshots that you did not follow all the steps given in this tutorial series which of course explains why everything after the ignored steps looks so different (the steps you missed were all the ones in the how to make a library tutorial).

Alternatively I misunderstood you and you never followed my tutorials and in reality noticed that the tutorial of somebody else is potentially outdated.


Your post is a sign of a new user who doesn’t know where to go and how to use KiCAD. You might find this KiCAD video series useful, watch and learn :slight_smile:

Usually, in open source communities, if you are stuck ask for help without attacking :wink:

When you learn and comeback to read your own post again, you will just smile…

Thankyou to everyone who has contributed help. There certainly seems to be wealth of info provided that should get me on track. I thought a good approach would be to totally uninstall Kicad again, so removing all unsuccessful libraries etc and starting with a clean slate. Unfortunately I am right back where I started - it won’t run and won’t uninstall. Looks like I will need to take the computer to a guru for investigation, but probably cant do this for about a week, as it is critically needed 24/7 by others in the household.

Uninstalling don’t give you clean state. I knew it before my first try to install KiCad as I have read that in one of documentation files (it was 3 years ago, files are now different and I didn’t read their current versions).
It is to help with updating to new version. You can uninstall old one, install new one and all you set previously you have preserved.
To have clean state you need to uninstall KiCad and manually delete the folder with its settings.
Under Windows it is: C:\Users\{your user name}\AppData\Roaming\kicad

And one more thing.
Because of what I have read there I don’t install KiCad in default directory it wants, but I have in paralell to ‘Program Files’ directory made my own directory ‘Programy’ and all KiCad versions I have ever installed went there. Windows don’t likes if you try to modify anything in ‘Program Files’ but has nothing against modifying anything in my folder. So I would probably (didn’t checked it) had no problems with modifying KiCad libraries.

I am not convinced this is good advice to be honest. After all the kicad assets are placed into a write protected area on purpose (as any modification of these assets will be lost with the next update)

That information was there because there was suggestion (it was V4, and documentation may be from V3) to do some basic configurations and save it into (don’t remember name) project file in KiCad directory used then when you open new project. And I remember information that Windows will not block you saving that file if you install it in another directory. But that file had to be in the same directory as KiCad was installed so the only solution was to install it in another directory.

I don’t know if that file to be first edited and saved is still needed, but for that file placing KiCad in protected area was not the best solution. As I started to do it that way (in my dierctory) I just continue. For example I’m not sure if I will install KiCad in default directory do the settings saved in Roaming\kicad will be valid, or it can happen that something will not work. So I continue as I’ve done it first time.
I don’t suggest to modify KiCad libraries (I have written I didn’t tried it) but I only inform that it is possible that way.
I have all my libraries in different place (disk D:) and original KiCad libraries use only to copy from them something from time to time.

Had nothing else to do so persisted with uninstall / reinstall and had some success. I still think there is some sort of issue with the PC as uninstall takes about 20 minutes or more to give any sign that it is working - and then the normal progress box appears and it proceeds normally. 2 things I found - if you press uninstall more than once, the process is corrupted - and if you don’t wait for about 5 minutes after it appears to have finished, the new install is corrupted and won’t work. I had no luck trying to install outside of the program files directory - it only worked after I let install place it where it wanted to.
A big thank you to Rene for that very easy to follow and very accurate step by step guide to set up the project library - it worked exactly as indicated without any problems first time through - everything saved OK and I can bring the project back with the fully edited IRS2334 symbol placed. Did not go any further as its getting pretty late here.
It is obvious that I had missed steps and made errors with my early attempts - I don’t think any of the tutorials I looked at spelled it out in that much detail.
Thank you to everyone else who has offered help - I will certainly have good look at the suggested videos and other documentation.

Would it be good to turn this process and documentation into a Wizard to simplify things for new users?

It could make a good internship or beginner project.

I am still using an older version of Kicad, and found the youtube tutorials by Niklas Wennerstrand addressed all these issues for me, particularly navigating the symbol and footprint libraries

I can’t save to existing libraries as I don’t have Admin privileges.

As the person who created the original post, once again thanks to all the helpful replies. Apologies - I think I assigned the special thanks (in my last post), for the detailed library management instructions to the wrong person.
After getting the libraries sorted I have found the process flows well and is quite intuitive. I find the process of assigning footprints to symbols works very well.
One comment I would like to make is - why are passive components such as generic resistors and capacitors hidden under “devices”? I thought they would have been significant enough items to have their own entry in the main directory? Not a problem when you know where they are, but a hell of an initial hide and seek game.
I have now got a half decent schematic entered, footprints assigned and sitting on an initial board with the rats nest wiring. Have done an initial shuffle of component positions but a bit of work (and learning) to do to end up with a final routed product.
Apologies for my early negative comments - as some one said - I will probably look back at my initial posts and laugh at myself - just about in a position to do that now.
Thanks to every-one

1 Like

Hi Reichstr,

Rather than deleting and installing Kicad to remove faulty or practice libraries, you can delete or add libraries using the “manage symbol libraries” under “preferences” at the top of your schematic page.
Your personal libraries will appear under the Kicad read only libraries in both global and project specific.

A trick I learned some time ago was to start my own libraries with “1a” to keep them at the top of the list. I also make them all “global”. I just use the Kicad libraries from which to “steal” symbols to place in my own personal libraries.


This is a very good question.

Any reasonably complex problem does in general not come with an objective right solution. In most cases especially in technology related issues there are tradeoffs to consider. And for things like library organization there will always be the influence of the past. I doubt we will ever know why the library for generic devices is just called devices but at least during my time as the head of the library team i saw no benefit to changing it (the downsides of such a change to our long term users far outweigh the benefit felt by new users for at most one project). I suspect this is still the case otherwise the library would have been renamed in the version 6 prepared repository.

One additional reason to keep the device lib is that it makes containing non fully specified symbols a lot easier. By having a generic name for such a lib we keep the option open to later have libraries for resistors and capacitors with fully specified symbols like we already have for transistors. (right now we only need to allow 6 libraries to get generic symbols – this is bad enough for some users but well a bit of support for users who do not use fully specified is ok in my mind – especially as i am not a fan to go full out with fully specified as i feel abstraction has its benefits especially for parts like resistors)

Again the benefit of potential future improvements far outweighs the additional learning curve for newcomers.