Ughh, the current libraries are a mess

How do you handle variations that are not provided by the vendor such as hand solder, wave solder, oven solder? There are some allowances that can be made for bigger design rules vs smaller feature sizes.

I have a proposal I can dig up for library- and user-supplied tags that could ease searching, but I think will require some updates to library organization.

1 Like

You might want to checkout www.librecores.org. They are creating a data base for any digital iP that is available on the internet. It can be searched and used to download repos to your machine. Kicad could do something similar for all of your libraries as well as user contributed parts.

John Eaton

1 Like

Not only are the libraries a bit of a mess but Iā€™ve tried to contribute part symbols and footprints and the process is extremely painful. Iā€™m using these on boards, theyā€™ve been tested, pass the klc checks etc and it takes several messages to get a response from a reviewer.

I have several Iā€™d still like to contribute but Iā€™m still waiting on the first ones to be applied.

Imo there has to be a way to better crowd source parts for libraries and let the users help validate them.

2 Likes

You mean this pull request?

As far as i can tell the hold up is future proofing the lib. (By deciding on a good naming convention.)
Your bad luck is that you got your PR started after we decided on cleaning up all footprint and symbol libs for the v5 release. Another bad luck is that there is no similar footprint that can be taken as an example. In addition you submitted it while @SchrodingersGat was on holiday and while i was sidetracked by another project of mine.

I fear it has gotten forgotten by now. I will reactivate it for you :wink:
(Yes it helps to poke us from time to time. Sometimes we are tired when we look at stuff. I think the overall state is getting better. At the start of this year we had more than 250 open pull requests now there are only 150. And i also think our response time is trending down.)

Edit: Ok i read into the discussion a bit more and i now understand why it has dragged out so long. It will take me some time till i get a good naming scheme i fear. (This connector made me realize that my current naming scheme for connectors has some major flaws.)
It is late where i live. I will get back to this first thing tomorrow morning.

5 Likes

Yep. Thatā€™s the one. As youā€™ve mentioned there are hundreds of other pull requests like mine sitting on github and I can assure you that it is causing many people to give up on contributing. Klc is great but its simply too difficult to get parts into the library.

Imo it would be better to get more parts in more quickly and somehow flag for quality and steer naming and conventions vs. gating each submission until everything is perfect.

3 Likes

Iā€™m more a quality trumps quantity guy. A lib will always be judged by itā€™s worst elements.

Maybe some additional information:
It took me about half of an hour to review your contribution. (Excluding the time for finding a good naming convention.)

Some more complex contributions take a few hours to review.
I check not only if a part fulfills the KLC (That takes 10 minutes or so)
Most of my time is used to check if all dimensions are correct. (Fab layer, Silk, Courtyard, Keepouts, ā€¦) I use @mauiā€™s KiCad Stepup tools for that.

3 Likes

Iā€™d be interested in help automate that library checking process with python scripts. Do you see any part of the checking process that could be automated?

Edit to add:
For example:
Layers, on grid, spacings, names, all elements included, cross checking between symbol and footprint, summary information that would be manually checked, etc.

1 Like

The things that can be checked via script are mostly checked with scripts.
Reading a datasheet and understanding what the requirements are is still something where humans are better.
But if you are interested have a look at the kicad-library-utils repo. It holds our KLC checking scripts. Maybe you have an idea how we can check even more.

1 Like

Would having an intermediate step of pulling stuff into an ā€˜unverifiedā€™ area make sense? They become available, with a caveat that really applies to all symbols of ā€˜use at your own riskā€™, and regular users could recommend verification on ones they used and found to work out of that pool?

First thing I do when I donā€™t find a part is Google it and I have found parts and libraries on Github that I have used ā€˜as isā€™. This just makes it a little easier to find.

2 Likes

Does not reduce the work for us librarians but increases the risk that some contributions stay for ever at this state. (It has been accepted somewhere now my work is done.)

If you look at the open pull requests you will notice that most of the open requests are awaiting response from the contributor.

3 Likes

As Rene says, we have created a set of scripting tools to reduce the burden of many simple checks. The bottleneck is human eyes to do a final check and then approve the merge. Having any set of contribution guidelines (no matter how strict or lax) requires conformance checking. Otherwise there is no point in having standards at all.

And, as the official KiCad libraries, these are not going to be unregulated. There is an assumption of quality, which we are trying hard to meet.

If anyone is keen to help, what we really need is more librarian team members to perform validation checks on the submissions. Most of the work is done via the KLC scripts, and since the introduction of automated checking, many PRs require no feedback as the contributors are generally pretty good at adhering to KLC guidelines.

If anyone wants to assist by contributing a few hours every now and then to validated outstanding PRs, that would be a great help.

5 Likes

Thatā€™s a good test. I put KiCAD designs on Github. I want them to work with a fresh download of the production version of KiCAD. I often test this by downloading a fresh version of KiCAD on a machine at Techshop. Techshopā€™s machines are re-imaged with a standard set of software each night.

This almost works, except that the standard 3D models are not found if you install KiCAD into a nonstandard directory.

This link should go to the second response in the thread, but if not, thatā€™s the one Iā€™m linking too. :wink:

http://www.eevblog.com/forum/projects/favorite-schematic-pcb-software-with-large-database-for-components/msg1318873/#msg1318873

ā€œUnfortunately, AFAIK, no software provides large, usable, good-quality library. You need to built every freaking component from scratch, a fact that often slowly sinks in as every beginner hopes to get libraries but get slowly disillusioned.ā€

3 Likes

As Rene mentioned, most of the checks that can be automated already are.

However, if you want to help, one thing that could be added to check_kicad_mod.py is to check ā€œSilkscreen-pad clearance must be at least 0.2mm or greater than the pad-mask-expansion (whichever is greater).ā€

Currently the script only complains if silkscreen is over the pad itself, but doesnā€™t detect silkscreen that is within 0.2 mm of the pad.

4 Likes

You might not, but a quick check shows that RS alone lists 125 4000 series parts. Somebody is buying them, presumably to build 12V powered circuits. Hobbyists and school projects like this sort of thing.
Some people are using KiCad to design valve amplifier PCBs. You will never please everyone.

1 Like

Maybe the answer is go back, way back, old school, and have RS populate SMD devices on a board and mount it to cardboard with jumper wire connections made between the coils of springs.

The need for the ability to physically test parts for learning has not gone away.

The first thing I do is to delete all libraries. Iā€™m using my own library sorted by category. All names are according to IPC and the dimensions are based on PCB Librarian. Until the library will be sorted like this, it is useless in production environment. Current state is only for students and hobbyists.

Also what is needed is part numbers to create order list. There is no such thing in KiCAD. I have overcame this by my Part Manager.

I wouldnā€™t mind pitching in. However, I will never simply accept and go to production with a footprint I did not check myself. I have been burnt with ill constructed footprints even from commercial libraries. So anyone who has production needs should not/could not accept KiCAD libraries they have not checked themselves. Therefore, I question the notion of requiring lots of manual checks by librarians before a part could go into a library. Yes, some checks need to be implemented to avoid total chaos, but perhaps the process can be sped up by simply skipping on the tedious checks that the final user of that footprint should do for him/herself anyway?

I see the KiCAD libraries just as a starting point for my own needs not as a ready made product I just use. The organization of the libs did not fit my way of thinking so I made my own. My libs are very skinny, only parts I use and have verified are in there. If I have production issues, I know where to check/change and never have that problem again (fingers crossed :slight_smile: ).

With respect, the discussion about the KiCAD library mess and lack of quality, the lack of others helping, the ocean of talk about how to best restructure it, is over done. Expectations of what one gets as a library user or must do as a librarian should be adjusted a bit in my opinion. To the librarians Iā€™d say; thank you for all the time you dedicated and good job so far but please donā€™t try to make libraries that work for all - will never happen. To the users Iā€™d say; accept that you need to do some work to make this work for you, no silver platter business here.

Sorry if I step on anyones toes with this, it is not meant that way.

7 Likes

It is always advisable to check everything before using it.

Here we disagree. I think if we want a lib of reasonable quality than we need to check every contribution for correctness. (You would not believe what some people send in.) I do not expect that everyone checks them as detailed as i do it. But some form of sanity check is a good idea.
(If we have a consistent quality the checks that a user must do will go faster.)

A lot of contributions go quite fast. Especially if the contributor is experienced. (We know what quality we can expect from this contributor. They know what quality is needed. They know what information should be provided. ā€¦)

Thanks and we know that we can never fulfill the requirements of all users. But i hope we can at least reduce the work required by those who have different requirements. (We also hope that a lot of people can use our stuff as is.)

No offense taken. Your post had at least some positive messages in it.

What does category mean in this case. The new lib will be organized by function instead of by manufacturer. (Will make it a lot easier for users to find what they need.)

If you mean House part numbers that interface into your own part management system then we can not help here. If you mean the Manufacturer part number then i have good news. In future the symbol naming convention is such that we will use the MPN for the symbol name. (Where applicable)

That might be a bit harsh. I would say that @joost is definitely right and you always need to check the stuff you use but the official lib is a good starting point. (But i am a bit biased.)

3 Likes

The way open source works is that you contribute your work so others donā€™t have to duplicate it. Checking is easier than starting from scratch in this case. Want to do all of your own 3-d models? I donā€™t wanna do any! :wink:

It also helps people starting out. Once you have modified a few it is easier to make your own.

3 Likes