KiCad needs a more liberal/open library

I think there is a huge gap right now to libraries. The KLC is strict. It requires lots of work from contributors, preventing them from contributing or giving up on merge requests, and it requires lots of time from our wonderful volunteer librarians who are doing the best they can in their free time.

Currently the other option is to not add symbols/footprints to the library. They live in a dark recess of the internet. In a project specific library, or in someone’s git repository which is obscurely found.

With the ease at which people can do PCB’s now in overseas fab, and cheap PCB assembly, the problem is only going to get worse, not better. I think the question needs to be answered - are the KLC requirements so important that we should effectively freeze additions to the library?

Perhaps we need a footprints-beta and symbols-beta repository where the rules are loosened. This would be an added “warning” to double check datasheets for symbols or footprints used from this library. (Assuming people aren’t already checking datasheets for the main libraries.)

2 Likes

3rd party libraries can be added to plugin manager, there already are a few in the official repo. That at least helps the discoverability aspect.

But the official library absolutely should have strict rules and verification process. That’s the only thing that keeps quality high.

16 Likes

Spoken from my heart.
But with the current library system/regime, don’t expect too much, it’s a Sisyphos task that requires at least one full-time maintainer, and I don’t see that happening.
I posted here a little time ago, offering cleaned up and corrected standard logic libraries (4xxx, 74xx, 74x1Gxx). Standard Logic Symbols (4xxx, 74xx, 74x1Gxx) Edited, Corrected, Pruned. Free to Use

Interest: Zero. 0. Nada.

I might as well have flushed them down the toilet. I won’t do that again.

But actually, the basic “Device” library is quite good, and so are many of the generic libraries.
The problem seems to be (I’m guessing here), that KiCAD has let all kinds of suppliers/manufacturers provide their own stuff, and this has been included in the libraries by default.
The result is a immense amount of “dead wood”, that make the libraries unusable.

And don’t get me started on GitLab/GitHub. Every contributor runs away screaming after the first encounter.

1 Like

Nope. There’s just been well over a decade of contributions.

The libraries have always been maintained by separate individuals from the developers. The development team does not really do much to manage them or get involved.

The problem is libraries are, even if started from a scratch, are a very all work and no glory task. It’s essentially nothing but data entry. And after 10 years, the libraries will again be exactly where they are today.

There was some hope we could push manufacturers to start creating their own libraries to share via PCM. But quite honestly I don’t think any of them care either, hence why they’ve outsourced the job to ultralibrarian and other services for all CAD tools.

2 Likes

Totally agree! Consistency shouldn’t be underestimated.
My personal library follows the KLC pretty close but not 100% simply because I also want consistency but also a path to submission.

3 Likes

I was impressed with your effort, just that I am not needing much standard logic these days

4 Likes

There is nothing more annoying than a crappy lib. One 3rd party sites has libs for everything, but the symbols are all auto generated rectangles with pins assigned in numerical order cloned from a datasheet. These SUCK!

Yes it is a fair effort to create libs but high standards are entirely appropriate.

6 Likes

Could the maintenance and checking burdens be reduced by some tests/automation?

Like a more comprehensive DRC for library parts (and ideally auto-fix button for common issues). If there is a clear list of “part checked: fail 5/100 items, 3 fix auto CLICK, details of remaining 2 areas INFO” - then easy to pin point.

Investment in this area would pay dividends in time saving and reducing barriers for library additions.

That’s been a desire, and something that has slowly been written

But it is also a whole bunch of work and the library maintainers are also volunteers as well doing this in their spare time.

I don’t think they would refuse help either

2 Likes

I personally think yes. Most of the rules defined in the KLCs are either there to make sure the symbol actually works in KiCad as expected or guarantee a consistent look of symbols. Point two maybe seems like it is not that important but after working years with libraries which had not such kind of rules I can say it really eases up the way of reading other peoples schematics and also speeds up the creation of your own. not to mention the more professional look if you don’t have weird unfilled boxes with pins distributed all over the place…

4 Likes

@Tojan

And don’t forget the 50mil grid for Schematics.
I can just imagine my own reaction if I loaded a symbol with pins 35mil apart! :face_vomiting: :face_vomiting: :face_vomiting:

1 Like

I agree that high quality libraries are far more important than a big container of garbage. I once downloaded a big freecad library, and it was such an unorganized mess that I just deleted it all. I very much like the KLC as a strict quality standard. It is the KLC that gives KiCad’s own libraries an advantage over the web based libraries such as Ultralibrarian and Snapeda.

I also agree that being a KiCad librarian is a relatively underwhelming title. There is not much incentive to do relatively boring checking work on library parts you’re unlikely to use yourself in the first place.

I think a solution could be found in adding meta-data to the library parts.

First, there would be a distinction between “officially vetted” and KLC approved parts. This would allow you to discard all the “unstable” stuff when you’re looking for symbols or footprints.

Second, there would be some kind of grading or voting system. This would allow for library parts to be improved incrementally by different persons, and at some time they could be tagged for “official review” and KLC approval, which would then be done by a KiCad librarian. This could be a good path to make it easier for individuals to make small contributions without getting bogged down by KLC bureaucracy.

Most of this can probably be done by git, and KiCad already once had git based libraries, but it was a terrible idea for the stable libraries back then. Also because in that time KiCad projects had a direct dependency on static library data. It may be a good Idea to re-introduce this for an additional “non vetted” library.

There is also a licensing issue. If KiCad had an additional “loose” library, it’s quite likely to get filled by slightly modified parts from web based organisations such as snapeda and ultralibrarian. In KiCad V6 all icons have been replaced (for at least the 3rd time) and part of that decision was because of unknown licensing of the then available icons. Full KLC compliance is a tough task, but there should be some minimum rules for contribution to a “loose” library. I think contributions should be “original work” and explicitly released to https://www.kicad.org/libraries/license/, which is CC-BY-SA 4.0.

3 Likes

Good suggestions and in-line with my thoughts. The mechanism doesn’t matter; meta data, separate libraries, flags. Some way to allow people to spend an hour contributing a footprint for the first time rather then 6 hours, only to have it sit in a queue and then lose interest. I have old PR’s I’ve abandoned. And, if something is contributed that is “good enough”, it means a subsequent individual might feel like taking it a step further.

I’m not suggesting a free for all. There are already pipelines for footprints that will weed out poor grid selection, missing courtyards, etc.

I am of the same opinion as the majority here. The rigorous process is PITA, but I think it is really worth it. I still remember V4 where it was lottery whether I could use an asset (symbol/footprint/3D model) or not (at least to my standards). With V5, Rene Poschl really made the library jump in quality and now if I want to use some asset I just look if it exists, and if it does, I can use it.

I admit my views don’t completely align with KLC, but the beauty of having libraries under git is that I can fork the repositories, and change the assets to my liking. And I can still import new assets from official library to my personal repository.

This is even applicable to what you want. Anyone can fork the official library and open the fork to less strict contributions. But as others have said, the main issue is that library management requires man-hours.

1 Like

Spoken from my heart. Unfortunately, the library IS a big comtainer of garbage, filled with hundreds of parts from “favourite/loved” manufacturers and missing all the parts from others that are not so “loved”.

The problem is somewhat philosophical.
The KiCad symbol library tries to be a “second mouser.com”, which is a fool’s errand. It’s simply impossible.

The first thing that needs to be realized and acknowledged is:

It’s a symbol library, NOT a component library (discard the “second mouser.com” thinking).
This leads to the next consequence: footprints and datasheets do not belong in a symbol library (just the fact that one component can have several footprints/packages makes this obvious).
By removing those, a library suddenly shrinks to perhaps four different dual op-amp symbols instead of hundreds and hundreds.
The symbol library is then manageable and easy to use.

The footprint (and 3D model) libraries are just that: mechanical drawings that have no real connection to the symbols.

This is the way I work with my personal symbol libraries, and it’s very efficient. I would never use KiCAD to find a component (that’s what the supplier web sites or mouser.com are for), and I’ll need the latest datasheet in all cases for electrical specs (I can’t rely on the KiCAD links for that).
The uninteresting standard logic libraries I submitted here in another thread demonstrate this approach

This may seem radical, but a new approach is necessary IMO.
Fortunately, the new 6.0 feature of saving symbols and footprints with the project file has made it possible without risk.

PS: This approach only applies to “generic” parts, of course; different MCUs, DSPs, special parts etc. need their own symbols, but they wouldn’t be influenced. They can stay as-is.

1 Like

The KiCad library is very good for what it is, a good basic starting library. Your particular problem might be best solved by database libraries, which seem to be working according based on preliminary testing.

I will repeat others’ statements, library development is a thankless job. Worse than thankless, when someone calls a lot of hard and high quality work garbage. Practically speaking, that is a good way to ensure that no one will want to work on it.

John

2 Likes

Libraries are critical to good pcb design.

I bought some PCBCAD software many years ago (no names!)
I created a SMD TQFP pcb symbol and got the pcb made.
When the pcb came back the TQFP package wasnt in line with the pins !
There was a growing error the further along the line of pins I went.
So got in touch with the PCBCAD business.
It turns out that the distance between pins can sometimes not be exact part of mm and so any discrepancy grows as pads are added.
They said that they would change the software to not drop any misalignments and this fixed it.
Sadly too late for my pcb.

@JohnSG:
If you’re adressing me, you’re beating the wrong guy.
I was trying to make some constructive suggestions on how to handle the library issue.
I have high respect for the librarians and even volunteered at one point, but being forced to work with Gitxxx turned me completely off.

I do not make many PCB’s, so can’t say much about KiCad’s libraries, but from what I understand the parts (both schematic symbols and footprints) do tend to have a quite high quality.

That has nothing to with the quality of the items that are in the libraries, but it’s a result of the Open Source nature of KiCad. Someone has to spend the effort of creating and checking the library item, and that is generally only done when such a part is actually needed for a project. Commercial projects with a steady monetary flow from users can afford to appoint people of “filling in the gaps” in libraries, but it remains a different issue from the quantity of the parts that are in the libraries.

Personally I find good editors for both schematic symbols and footprints more important than the libraries, and KiCad has quite good editors for these. The editors let you create any needed footprint, and lets you create them as you wish them to be. Having the extra libraries is a nice extra, and I do use parts if they are available, and mostly unmodified, except for microcontrollers. I usually re-arrange the pins in schematic symbols for these to suit my project. But they remain secondary to the editors themselves.

1 Like

As a former Librarian (or at least an inactive one), and somebody working in a company who spits out PCB’s at a high rate, I really hope we’ll keep the standard high.
Personally I never download 3rd party symbols or footprints, simply because it takes me longer to check and change them for quality and consistency, compared to making them myself.

Linking symbols and footprints together is super important for consistency, and help avoiding issues when people pick the wrong footprint for the wrong symbol (same part in different packages, might need different symbols).
By having them linked, you only need to do it right once.

I always remind our engineers
“You simply can’t make a board better than the parts in your library”

4 Likes