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
(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.
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.
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.
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.
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.
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.
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.
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.
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.
“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.”
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.
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.
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 ).
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.
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.)
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!
It also helps people starting out. Once you have modified a few it is easier to make your own.
@hermit: I hate doing my own models as well as doing my own footprints. Somehow I make one mistake after the next with all that detail. But, I will do it because the alternative is far more frustrating. The start was/is difficult when my library was empty and just about every component would need to be done. Now its just one here and there.
Another side effect of doing your own, and not liking that, is that you more often reuse existing parts. I question myself a lot if I need yet another device/resistor/cap that is slightly different from what I already proved. It also means that I have less inventory which is easier to handle and can get (slightly) better prices on larger quantities. Additionally, reusing parts and schematic parts across many designs makes one very familiar with what is normal for the part i.e., troubleshooting and design limits go much faster.
I am totally with you on the “helping out with open source” part. I simply question the mountain of work that seems needed to happen to move the KiCAD libraries along. The discussion how bad the libraries are comes up again and again (they are not that bad imho). I have also seen the various discussions on naming libraries and - another question use of anyones time to me. Having a good search function is far more to be preferred over a library naming system that few will completely remember. Lots of brain power is wasted on those kinds of discussions. I rather do work on the essentials and forget the rest - it is noise.
But I hear ya, helping out is a good thing since I too am plucking the fruits of your (collective) labor and I will think about where I can best help and put in some spit and polish.
I’m with @Rene_Poschl: Make the libraries as good as you can justify. The fact that users will use them as a starting point for their own symbols or footprints is a compliment, not an insult. Even when I was using expensive layout programs (before I started with KiCAD), i had developed the mind-set that anywhere from 20% to 80% of the effort for ANY layout project would be “library work”.
And keep in mind that the idea of “libraries are a mess” is really TWO separate problems. One mess is content, such as inaccurate pad placement, silkscreen on pads, symbols with pin designations that don’t agree with footprints, etc. The second mess is structure and organization of the library subsystem, difficulty of locating symbols and footprints, etc. Both problems seem to be receiving active, and effective, development effort. Give the librarians and developers credit for fighting a war on two fronts.