How to organize libs and modules

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

:slight_smile:
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.

Edit.
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.

2 Likes

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.

2 Likes

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.

@paulvdh

I agree.

@Sprig

Sounds reasonable.

@iabarry

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……………….

In my opinion gerbers are related to PCB and not schematic. I see nothing wrong in this that you need to consciously transfer the changes from the schematic to the PCB (one icon to press). It is and shoud be your decision at what moment your schematic is worth being transferred to PCB.

I am lucky that this problem never touched me. I use few elements with several units.

As default you have “Check zone fills before plotting” checked. Why you unchecked it?
I think in any program you can wrongly check/uncheck some option and then say you got wrong result.

This I don’t understand. Whenever I change something in footprint in library I didn’t get it changed in PCB until I use “Update Footprint from library…”.

Ops…

Piotr is right: this must be some mistake from your part. KiCad doesn’t do any automatic updates from the footprint libraries to boards. In v6 the schematic will work the same way, it will be necessary to update the schematic manually after doing changes to libraries.

KiCad v6 will do some more work to ensure you haven’t forgotten to refill the zones before plotting gerbers. It’s still possible to ignore that, but accidents will be less probable.

Otherwise the steps to update the next phase based on the previous phase is manual in KiCad by deliberate decision. That’s a design philosophy which ensures the best flexibility. Some end users would like to see automatic updates between the schematic and the layout, but if that will be implemented (for v7 or later) it won’t be automatic by default but optional. The explicit design philosophy is that KiCad shouldn’t force one way of working to the users. Several kinds of forced automatic updates would be harmful for professionals for whom correctness of each step may be critical and must be inspected separately.

1 Like

As piotr and eelik already mentioned. KiCad does not do that.
One way this could have happened is if you made a schematic, put footprints on the pcb, and then loaded a footprint from the PCB in the Footprint editor, modified it and put it directly back on the PCB.

… And then later updated the PCB from the schematic with the Update Footprints option on.

Another way this could have happened is if you forgot to save the changes you made at some point.

KiCad works a bit differently from Eagle, and it takes some time to get used to it.

I’m also not such a fan of prepending strings to library names just to influence the order in which they get sorted. You can adjust the order in which libraries are shown with the up and down arrows.

I do recommend to think a bit about the keywords you add to your parts. KiCad has a regular expression like search for schematic symbols and adding the right keywords can help a lot to find symbols when your libraries get bigger.

For some time I use the search bar in the footprint editor just to find the right footprint, and then copy it’s name elsewhere.

CvPcb, the “Assign Footprints” tool also makes extensive use of these keywords to find footprints efficiently.

All the more reasons to first get to know KiCad better before you spend a lot of effort into organizing your personal libraries.

@Piotr
quote=“Piotr, post:21, topic:30651”]
As default you have “Check zone fills before plotting” checked. Why you unchecked it?
I think in any program you can wrongly check/uncheck some option and then say you got wrong result.
[/quote]
I don’generate gerbers myself anymore, fab does that, all I send is the Project.zip. A sunny side of KiCad!

That implements that PCB is not necessarily related to schematic. Hmmm… I wish it would.

Thank you all again for your effort, I’m a bit closer to KiCad now. I think I’ll keep on going, with some interessing features that are to come in near future it will eventually work for me.
I DO see the sunny sides, for sure! Sad actualy, I need to mention the cons all the time, that gives a wrong impression somtimes.

1 Like

This is being fixed and is implemented in the 5.99 development nightly for the (hopefully soon) v6.

If you run Design Rule Check before sending project (what is ‘have to be done’) I think wrongly filled zones will be noticed (didn’t checked it, and can’t check it now). I don’t expect fab is to be modifying anything in your project so wrongly filled zones should be no problem.

I never thought about it deeply but according to my imagination if my changes in schematic are immediately transferred to the PCB the bigger than needed mess can be done there if I several times change my mind during schematic edition. I just have never worked with program that does it automatically. In Protel I had to save/load netlist, in Kicad 4 I had to save/load netlist, in KiCad 5 I have to Update PCB to schematic.
The main arguments for KiCad for me were:

  • Interactive router in ‘Shove’ mode I didn’t had anything like that in my Protel,
  • easy track modifying by moving segments (hotkeys ‘D’ and ‘G’), I didn’t had in Protel,
  • automatic track length tuning. In Protel I had to count it manually - summing segments length (sqrt(2) frequently used). Here I set needed length (Ctrl+L after Alt+7) then move mouse over my track and it is tuned.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.