How to organize libs and modules

I’m new to KiCad.
I found out how to create my own libs for my own symbols and footprints.
I understand that the generic libs are read-only.

At this point, I think I have to decide how to manage libs.
My idea is to work on a set of copies of the generic stuff. In the copies, I should be able to add symbols and footprints, or just edit the generic ones if needed.

Is that a good idea?
If so, how to get there?

Nope. Not a good idea.

Managing loads of different versions of libraries is a headache, especially for a beginner.

As a beginner it’s probably best to not focus too much on library stuff, but get to know KiCad itself better first.

So use as much as the default libraries as possible (They’re quite good), and for the missing parts, put those in a single (or a few) personal libraries.

When you have some more experience with KiCad, and your personal libraries grow, it’s quite easy to organize them better if needed.
But don’t try to make some “perfect” system, if your goals are not even clear.


@paulvdh I’m new to KiCad, but expirienced in eagle, so I got your point.
This time, my goal is to start well organized from the beginning. Organizing things when they turn out to be messy is a PITA.
In my first two tiny KiCad projects about half of the devices are not in the generic libs (phoenix connectors SPTA and SPTF, EOA pushbutton, AL5809-XX-P1-7 constant current souce, WE WL-SMTW-led…).
The led for example: Neither symbol nor FP are in generic libs, so I create them, no big deal. But where to save them? In my own libs? What name should it have, “LED” is occupied already? OK, I name it LED_custom-made. But next time I need a LED, where can I find it? There are two libs for LED by now.
That’s what I try to avoid: Two stores for one kind of goods.
My goal is clear is the aspect of what I do NOT want.

Btw: I’m stuck to EAGLE V5.11, for I cannot accept the later licens model. V5.11 ist about 12yo by now, I have 15y ahead until I’m going to retir. I think about changing to a different layout solution, because I cannot imagine working on a 27yo system in the future.
So I do not aim to grow with KiCad over the years, instead I spend a lot of effort right now to decide if KiCad is an alternative to EAGLE at all, and furthermore right now.
Just to point out why I’m so insistive…
(hope my english is not to bad for such sophisticated content)

I agree with this. And when that’s the case for you,

is reasonable. I would keep the official library and keep it up to date and copy a footprint to a personal library only when it’s needed the first time.


This is my advice too. As I work for different companies, I have different library trees.

But for my own projects I keep my own libraries in a similar way of the official ones. I change the names, for example, device.pretty becomes my-device.pretty.

And I only copy the needed footprints from the official library and add my self made footprints for the ones not included in the official libs. The same for symbols.

1 Like


Read this:

While I’m using the mentioned directory names, KiCad V6 is going to use those same directory names in the future, or maybe already does. When V6 gets here I will make some sort of subtle change to the folder names.

So, I first go shopping in my library. If I can’t find what I want I see if it is in a KiCad library. If it is in a KiCad library, then I also grab a copy and put it into my library. If I have to make a new library symbol/footprint it only goes into my own custom library.

1 Like

No you’re not.
You’ve got KiCad now :slight_smile:

My first advise was for beginners with EDA in general. You certainly passed that some time ago.

The FAQ part of this website has quite in depth info onl lot’s of KiCad related subjects, and is searchable.

If you want to be well-organized from the beginning, then keeping your own personal libraries separate from KiCad’s libraries is one thing I’d also do.

I interpreted this as if you wanted to make a copy of all of KiCad’s libraries, and then change some of them. Still not a good idea. Just make a copy of only the library parts that you want to make a new version off.

If you’re ambitious, you can even have a look at the KLC (KiCad Library Convention) At the moment most library work is a bit suspended because of the transistion btetween KiCad V5 and V6. If you’re comfortable with Git, then even some of your parts may get into KiCad’s official libraries.

Another small tip.
If you open the footprint editor, then that search box has a regular expression (like) kewyord search. It’s often a quick way to find Footprint names in KiCad.

When I started to be interested in KiCad my first task I set for me was to decide how my libraries should be organised and to made them. In my projects I use only defined by me symbols and footprints. I have made some decisions about footprints just to be able to simply make documentation files as I want. I can’t use any KiCad footprint as it will be not compatible with my documentation needs.
So I started from defining basic symbols and footprints and then started to learn the rest of KiCad.

That’s a very old skool way of working with an EDA program.
When I drew my first PCB, somewhere late '80-ies or maybe '90-ies the libraries were quite horrible. Full of parts nobody had ever heard of, and lots of simple common parts were missing.

So I started in a similar way back then and made most of the parts myself.

When I switched to Linux and was in need of an EDA program that worked well with Linux I spend quite a lot of time evaluating different candidates. KiCad was quite rough back then, but I still decided to use it, and some of the reasons was the uniformity of the user interface and that it has a FOSS license.

An important part of the evaluation however was how good the interface is for making custom footprints and schematic symbols. I had (and still have) no exotic needs, but it has to work properly. KiCad was very good in this regard, and it is what made me decide to stick with it.

No matter how good such an EDA program is, there will always be parts in your projects for which you have to make footprints or schematic symbols yourself. There are some sites that have over a million different schematic symbols and/or footprints, but I don’t like those sites much.

So yes, good editors are important, but thanks to the KLC and the effort of the library team KiCad has a solid base of libraries and ignoring them is quite silly in my opinion.

I have been using Protel 3 (commercial program we bought in 1997). If I want I can use if forever (those time when you bought a program you got not one year licence but the right to use it).
I decided that KiCad is for me an alternative when I sow KiCad Interactive routing (introduced in KiCad V4 I think (not sure)). It is much better than routing possibilities of my Protel. There are other subjects that are worse in KiCad than it that old Protel but in 2017 I decided to start moving with my projects to KiCad. Till 2020 when I was doing some PCB next version I used Protel, when I was doing some new PCB I used KiCad. In 2021 even when I had to do new version of old project I decided to start from (manually) copying it to KiCad.
As I know KiCad V6 will remove one of that important by me worse things. You will be able to color nets and hide GND net. Other I hope will be removed in V7, V8,…
Hope that will help you to make decision.
Don’t know Eagle, but I believe KiCad certainly is good alternative to you.

1 Like

You are probably right even I didn’t wrote that I started from reading all instruction PDFs before first trying to install KiCad.

I have about 10+ footprint libraries. I used one letter names for them (C,R,L,D,T,X (quartz),and so on.
In footprint editor I see only my libraries.
My rule is when I place symbol at schematic the footprint is defined at that moment (I don’t use footprint assigning step).
Moving to KiCad I decided to change my other basic assumption with symbol names.
Previously I use rule - symbol name fully defines part - so I had 1n (meaning 1nF 0603) and 1n_4 meaning (1n 0402).
Now my rule is not only name but name+footprint fully defines part. So I can have two 1n capacitors at schematic and one is 0603 and second 0402 (to get this I have to have two C symbol libraries (C for 0603 and others and C1 for 0402 (1mm length)).
I hope that could help you make your own library setup.

I have written following as next post, but forum didn’t allowed me to write next post in serie.

I don’t ignore them. If I need new footprint I search for it in KiCad libraries. Copy it into my libraries and modify a little (for example I have Value and Reference at CrtYd layer). I have written few times about how I have changed my decisions about how my footprints have to be done.
But for symbols I don’t look in KiCad libraries.

KiCad supports two work flows regarding library management.

A part of it’s libraries are “fully specified” (and have footprints attached to the schematic symbols) while for more generic parts such as resistors, capacitors, connectors and such the schematic symbols do not have a link to any footprint, and you have to make those links yourself. It’s a flexible system that works well, but it’s different from Eagle.

Some people find it important to have fully specified parts, including “house part numbers”, ordering information and other stuff. Such a part database is however not implemented in KiCad. There are some thoughts to implement such a thing for KiCad V7, but for now you’re on your own if you ant to do such things. KiCad’s files are easily readable and parsable ASCII, and therefore also relatively easily scriptable. There are some 80+ different side projects around KiCad. Maybe there even is some parts library management stuff among those.

Before you decide on how to organize your parts, I advise to get familiar with library management itself, and the workflows for managing parts, and then overlap it with your own wishes.


The manufacture that I plan to use has their own requirements, and some of the KLC footprints won’t work well with their equipment/design rules. Having KLC footprints is no longer a concern of mine.

FWIW I have Kicad in windows. I’ve made my personal libraries proceeded with j_ and broken into active and passive. I keep them in a folder under “My Documents” so they are archived when I back up my personal files.

My advice is learn how KiCad really works. Just because you know another Cad tool doesn’t mean you know everything. In fact you are handicapped by your limited knowledge. What were once quirks in other tools are now part of your impression of how things should work. You have been assimilated. Break free.

Compared to Eagle, KiCad libs are easy. Don’t get hung up on minor symbol differences. You’re just making your own life more painful. Does your custom Led symbol convey something different than the default symbol?

LEARN and embrace it.


Hi @marera

You have good ideas. That is how I approached Kicad a couple of years ago.

For schematic, I decided to make all my libraries global and I prefixed them “1a” so they would always be at the top of the list of libraries.

eg. 1a_Switch, 1a_Passive, 1a_Reg, 1a_Semi, 1aConn, 1aPower, etc.

I then copied symbols using “save as” from Kicad libraries to personal libraries and then edited these copies in my personal libraries as required.
I usually find the pins are too long or I don’t like the pin name and I often remove aliases.

BTW a lot of basic symbols can be found in the Kicad library labeled “Device”.

I did much the same for footprints, but had to use a different library setup.

Instead of “1a_Passive” I broke it into “1a_ResTHT”, “1a_ResSMD”, “1aElecTHT” etc.

When making a new symbol or footprint I usually start with an existing one to make life easier. That way I don’t forget any layers and also get the size right. I’ll probably add or remove and edit pins then drag the outlines to suit… just requires a bit of messing around with the grid for the various layers.

Whenever I require a new component, I always take the time to enter it into a personal library before using it.

Finally, I am now retired and this is a hobby these days, so I have plenty of time to “get my libraries organised”.

Thank you all for the input, that really helps me.
@paulvdh I’m stuck to the outdated VERSION of EAGLE, not to EAGLE itself.
@jmk Your 1a- prefix idea enhances my -custom-made suffix idea, thanks for that.


I agree.


Sounds reasonable.


I’m still not ready for intimate moments. Be aware of the fact that I’m the least skillfull, or most skillless technician in the world. I need a tool that does not allow my faults to generate faulty production-data.
EAGLE does so, KiCad does not. Here’s why:
Kicad allowes to generate gerbers, that are inconsistent with e-schematic.
KiCad allowes to generate e-schematic with missing symbol units.
KiCad allowes to generate gerbers with faulty filled Cu-areras.
KiCad AFAIU changes FP im my layout after changing the lib, HORROR!
That’s what I found out after a couple of hours, maybe there are even more traps.
Yes, It’ up to me to keep an eye on that, but I’m not that clever, and here’s the point:
EAGLE prevents me for all that, I I’m still unsure wether the really sunny sides of KiCad are worth the dark and dangerous swamps.
Obviously V6 will bring a little light there, maybe I’ll wait for that and have a new look at it.

I got a little of topic, I hope I did not start an endless discussion. Just wanted to give you in insight of point of view, that’s all folks.

From the FAQ section:

There is a couple of more FAQs from Rene well worth reading

@der.ule done……………….