How do you create a symbol library that works?

This is the most user unfriendly program I have encountered in the last 20 years. Can generate a schematic and create new symbols, but can’t work out how to save them in a manner that allows them to be accessed for use. Looks like the inbuilt libraries are read only so can’t save them there. Attempts to create a library file under the project directory does not give the desired result. Have managed to save my symbol into it but no idea how to get it back. Something wrong with the way I created the directory??? Going through the “place symbol” process seems to only allow access to the inbuilt libraries - not my created one? What am I missing? I have looked at a few of the tutorials but still can’t get anywhere.
Using 5.1.9 on windows 10, 64 bit


Possible further reading:

I switched to KiCad because it is much more user friendly than Protel 3 I was using till now. There when I wonted to have small letter in symbol value (like 22pF) I had:

  • add that new symbol giving it 22PF value,
  • save the library in ascii format,
  • open it in text editor,
  • serach file for PF,
  • replace it with pF,
  • save that ascii file,
  • open in Protel that ascii library file,
  • save it in binary format.

And after doing that all I could start using that new symbol in my schematics.
Next time if I wonted to add 10uF I had to repeat the whole procedure.

In KiCad I just open my capacitor symbol go to Aliases Tab and add new alias, name it, and press OK and then save (Ctrl+S) - done.

Or even easier just change the value field once the symbol is placed. There is not really a benefit to having it in the library as an alias as aliases don’t really have the power to add much here (they can not be used to for example have a part number different for the symbol and its alias)

Looked at the “creating a new symbol library” tutorial, but could not replicate the screens shown. I did get the option to add a new library and it did create one or 2 - went round the loop several times, but nothing I could do would put my new symbol in my new library - it would place the new symbol name in the existing library, but then refuse to let me save it there. Going round the “place symbol” loop gave me no option to look into any of my newly created libraries. By the way I have used an early version of Protel and had no trouble with it, also used Mentor Graphics Design Architect and got on well with that.
Schematic capture / symbol creation is normally the easy part - if I cant get past that I am not looking forward to the PCB stuff - which I have had very little previous experience with - when I was working full time I was on the design side of things - layout / PCB was another department. Now semi-retired I want some capability to do the whole lot - mainly hobby related. I will persist as I really want to get somewhere with this, but at the moment feeling fairly frustrated.

For me there are important benefits.
At the same time I add alias I add (with the same name, footprint) that element into my database used to generate BOM. That way making schematic I can be sure I use only elements I have accepted and specified how to order them.
For example imagine that according to IC application I want to add 1uF ceramic capacitor.
When I press ‘A’ I select capacitors and I see among them 1u with description 1uF/25V X5R 0603 and the other one 1u50 with description 1uF/50V X7R 0805. I just select one of them (both are aliases - one for 0603 capacitor and one for 0805 capacitor).
If I didn’t defined them as aliases I would not know:

  1. how to name it (to be sure it is defined in my database): 1u or 1u16 or 1u25 or 1u50,
  2. what is the right footprint connected with each name: 0603, 0805, 1206, 1210.

In point 1 I have listed more names than I really have as I just don’t remember what exactly capacitors I decided (two years ago) to use. For example it could be possible that I have decided that 1u means 1uF/10V 0603 and if I need 1uF/16V than it needs at least 0805. Capacitors in too small cases can be few times more costly than in right case, but I just don’t remember what value/voltage is right for what case. May be I am just too old to remember right cases for all values/voltage pairs (1u, 2u2, 4u7,10u, 22u / 6.3V, 10V, 16V, 25V, 50V, 100V) and others don’t need that help, but if program can help me with it I just prefer to get that help.

I’ve been using KiCad for some years now, and I only had some trouble with library management in KiCad V4 (or was it V3?) and that was because there were serious bugs in it.

The FAQ articles linked to by Rene should have all the info needed to get you up and running with library management.

If you still get stuck somewhere, you need to give more detailed info to us to be able to help you. What is it you want exactly? Which buttons did you push? What was your expected result? How is it different from what you expected? Without such detailed questions we can only give generic hints, and that would sort of be a duplicate of what is already in the FAQ articles.

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.