My major frustration with KiCad + footprint talk

RANT time!!

Why is it so difficult to understand the library structure of KiCad??
Why is there a major lack of guidance in how to organize the component libraries and footprint libraries??

I have designed a couple of boards in KiCad but I can not for the life of me wrap my head around the file structure.
I just installed BZR5376 that I downloaded from here…
and when I go into Eschema I am able to browse and place schematic symbols, BUT when I go to Pcbnew and try and place a component footprint there are NONE to be found.
When I open the Footprint editor and go to “file” the “set active library” choice is grayed out. Why???

I submit that this is a MAJOR frustration with new users. And I further submit that many who are auditioning KiCad give up due to the lack of guidance and direction on how/where the component libraries are stored, on how to direct KiCad to the necessary path, on how to create a “user favorite” set of components and how to copy/paste already designed components into a “favorite” library.

Chris… Please consider doing a video tutorial on understanding how the library structure in KiCad is set up and how to direct KiCad to those libraries. How to import components and new libraries, how to set up a “favorite” folder, how to bundle any components used in a given design along with the design archive for future editing.

I would love to hear about others experience in this area of KiCad.
How do you set up your libraries?? How do you create a favorite of most used components??

thanks all


I feel your pain and anguish too Dwight. I can’t get my head around the new library format for PCBNew either or using Github etc. It’s one of the major alterations to the program and there isn’t any really documentation for it. Very frustrating


Agreed. I actually quite like the way that EESchema handles its part libraries, so much so that I’d love it if Pcbnew adopted something similar.

I just want to clarify a bit…

I really mean to say my frustration with why the various parts of KiCAD don’t already know where to find the components and footprints by default. (I know if I move libraries around to some other personal folder that I will have to provide a new path)

Today when I installed the new downloaded windows version it came with several schematic and footprint libs. Why doesn’t kc already have those paths in by default??

When I opened up a new schematic it was easy to start placing components and kc already knew where to look. But when I opened up PCBnew… nothing by grayed out choices and unhelpful warnings that I needed to tell kc where to look.

and what is specifically frustrating is that I don’t know which part of kc to tell… is it PCBnew that I need to tell or is it the footprint editor or is it the footprint viewer??? or all of the above, separately??

It is also ambiguous where the LIBs are now… bin? doc? or share?
and which files contain the schematic symbols and which files contain the footprints??

and If I create a new “personal” favorite set of them where should I put them?? in mydocuments so they don’t get blown away when I update versions??

questions, questions.

thanks for any help or guidance

If you want to use libraries provided with kicad make a copy and place in location you want (to be not overwritten while update).
In eeschema add path to your library and select it in “Current search path list”. Remove all loaded libraries and add your own libraries. Draw a schematic, used symbols are stored in cache-lib. When schematic is finished it’s better to remove all libraries from your project and leave only cache-lib, otherwise there may be loaded libraries other than you used (your schematic may look bad if libraries or paths were changed).
In pcbnew paths to .pretty libraries are in library tables which are described in pcbnew user manual.
You can assign footprints to schematic symbols in “Component Properties” in eeschema (set “Footprint” field, may be set also in schematic library editor).
Probably there will be more changes in library management so if you fell frustrated with them you can use stable releases.

The library structure was somewhat understandeable in the ‘last stable version’. The problem is that some developers had this reality neglecting idea that libraries have to be something shared. There is no serious developer on earth who would use a shared or imported library. Shure your schematics can be pugged together in no time, bugt your asking for serious trouble downstream. And you will definitely loose a lot more time adjusting/adapting symbols and footprints and most likely go through several costly versions of your board. The development team seemed to be missguided by certain individuals onto this track. Nevertheless we (users) need to voice our concerns as even with a few drawbacks Kicad remains a great tool. Thanks to all who contribute!

That would be why many professional users don’t use the github libraries. Even for hobby users it’s not very convenient; I think to be more useful someone would need to write a tool to track and accept/reject changes in the components that users want. For me the github facility would be most useful in a corporate environment where you share your symbol and footprint data and there are strict rules for making changes, but even in such an environment some tool would be needed to manage changes. No one is forcing anyone to use the github libraries and I’ve never used them.

Well I’m glad I’m not alone. In my previous career, admittedly in a large company it needed almost an act of good to introduce a new symbol, even worse if this symbol needed a new module to go with. Because every new module required a new feeder in the placer. I appreciate your input about the usage of ‘KIGITHUB’. may be we can use this as a hook into a yet to be developed library and parts manager. We have a Web-based not Kicad connected version running, maybe there is interest…?

These videos helped me understand the library structure:

KiCad Tutorial #5 Create a library and put your own component in that library:

KiCad Tutorial #7 Add Footprint search path:

Kind Regards

Kicad libraries from github are not that very useful.

I myself use manufacturers name for directory structure.

Booth for symbols and footprints.

What kicad lacks is the concept of a part.
A part that ties together, the footprint and an arbitrary number of symbols.
Symbols should be loose entities with arbitrary names. Not as now where multi symbols are locked in to one single logic symbol, a, b, c etc.

Also I did like a zillions pull requests adding my footprints (professionally made) to github but it went ignored beacuse of breach of klc.

So clearly useless and faulty footprints are better as long as they conform to klc, even when the lack completely information on fab layer.

Sometimes just wrong in other aspects.

I think a non associated github for footprints and symbols have better outlook for success.
Today’s library is just to amateurish.
And ambition seems to keep it that way.

So, why don’t you open an account on github and share them?

My personal symbols and footprints also break the klc, but I don’t care :wink:

1 Like

Beacuse i hace been intensely in layout.


I will share soon.

1 Like

I keep my libraries (standard footprints built to IPC7351) in a local git system and add them to the Library Table for each project. In the end it isn’t too much work to keep your own libs and git is a nice way to track changes, even if the diff’s aren’t super clean.

1 Like

Your libraries sound great, which part of KLC did they breach?

I found many component I opened were not KLC compliant. E.g. not placed in the center.


not always 0.25mm courtyard, sometimes the pads are just capable to fend their territory by themselves and they are far out from the component body and i dont feel like putting another 0.25mm penalty on top of that.
(not that the drc of today check the courtyard overlap !!)

silkscreen for small components do not always interest me to put in, and not always klc compliant.
silkcreen for me is cosmetics of low value, i put it in when it can make sense according to me.
in real life i rarely depend on silkscreen for information.

but i am very pedantic with the fab layer.

Depending on how you use your silkscreen layer, it can be quite useless or useful.

Here’s the rules I follow: You should always avoid silkscreen under components. Put another way, if you cannot see silkscreen when a component is placed it is useless. Silkscreen should be minimal but convey pin 1 indication clearly. I stole these from a PCB Librarian doc a while back and they work well for me.

Silkscreen should be used to help assembly identify errors in placement of components. Also, hand placement can get confusing fast if no silkscreen is present in the midst of a number two pin SMT parts. It starts looking like randomly placed pads all over the place…


yes but professionals use the fab layer for placements and use pick and place machines
never looks at silkcreen.

refdes on silkscreen rarerly can be put for each and every component because lack of space.
also in the professional world where time is money silkcreen is the layer getting least attention, beacuse pcb needs to go out of the house quick,
Sometimes silk is completely skipped in manufacturing to save 1 day pcb manufacture time. and/or lower price,

when debugging pcb you print pictures out of the pcb tool to identify components.
this is a big problem with kicad also because it can not mirror pcb to show back of pcb as it looks when you look at it. in your hand.

you cant make proper mirrored fab files with refdes tect mirrored.
i dont think you even can print the fab.layers alone.
super-important fundamentals 1000% more important than silkscreen.

Kicad and its users needs to step out of the beginners-state-of-mind-mode if to evolve into professional grade…

yes, your rules and suggestions about silk apply , but fab (assembly layer) is #1 silk #2 priority.

(excuse quickly written)


also silkscreen under smd components is forbidden as it lifts the components

and for high speed signals it alters the dielectric above the surface trace (not that i care but some do)

1 Like

I agree here with most of @nicholas points. I have worked on space constrained boards with dense fine pitched BGAs and the PCB back side will “starts looking like randomly placed pads all over the place” due to the 0402 caps and differential pair escape routing. The board assembly house uses the Fab layers for checking placement against the X-Y data.

However, @nicholas, I am able to print front and back assembly fab drawings with the back side mirrored just like when you look at the board from the back. It usually contains the Edge Cuts, Back Silkscreen, Back Fab and a reversed Title Back Fab comments. I use Plot with PDF output selected and “Mirrored Plot” checked


Thank you for beautiful silkscreen ideas!
i don’t understand one thing - do you put those on fab layer, too?
So that there is no silk layer in gerber, only fab?