Library maintainers have always been in short supply. Checking a merge request for full compliance to the rules takes a lot of effort
The symbols project seems fatally flawed destined to have an ever-growing list of submissions not being processed, with people cherry-picking what they want to do. The system used is not really conducive to mass participation. Taking the existing SYmbol editor and using it as the basis of a tool to accelerate the process would seem to be one candidate to improve the situation.
I wonder if it would be beneficial for the community/Kicad users to create such a symbol library ourselfes. A public library suplementing the default library. In general I am in favor though.
But I think (so I don’t really know) for many people it would add little. In the end (most of us) will be using their personal libraries for as much as possible. The symbols that we would add would only serve as a template (like the default library) to supplement one’s own custom library with. This is normal ofcourse.
I eventually made symbols for most used Resistor values in 2 different packages complete with vendor ID codes. You can imagine that that is somewhat alot of work. This particular library would only be beneficial for people who would use the same vendor (JLCPCB in my case).
If there were a public shared library I would happily upload my stuff to it. So others who would also use the same vendor could benefit from my work as they would not need to search for vendor ID codes for all their resistors (and whatever more I or others would add). And it would have been even better if I could have used somebody else’s library for JLCPCB components… would have safed me from the labor
A few weeks ago, I happened to be in need of a symbol A DRV8220 iirc… regardless… it was not in the default library. If it would have been there, I would have copied it to my own, add a vendor code and if needed add a footprint as well. Now I had to make one from scrap. It would have been nice if somebody else did that for me but okay… we cannot have everything right?
The other side of the story. The thing only had like 8 pins. So it was not actually that much work to create the symbol directly in my personal lib. And like with the resistor libraries. You usually do this once per component in your lifetime.
And I don’t know how often other people experience this, but for me this was like the 6th time in about 3 years or so that I could not find a symbol in the symbol library that I needed… So for those 2 things per year that I miss a symbol…
But again, still in favor of making a public library for supplementing.
My 2 cents ,
Bas
Who would check the quality and adherence to standards and what standards ? if a library is dubious in terms of quality people won’t use it and it becomes a waste of effort. Sometimes it quicker and safer to create your own symbols/footprints, then if it’s wrong you know who to blame.
Nobody would check for quality obviously, unless a volunteer would pop up. A document for standards and a disclaimer that usage is for your own risk could be added but you are right, no
if it’s wrong you know who to blame.
Yourself for not reading the disclaimer.
Bas
The way I see it, the threshold to contributing to KiCad’s libraries is too high.
A possible solution is a “melee library” I suggested half a year ago:
interesting discussion. Fun to read that somebody cares no f***s about 3d models when I care so much
I honestly would not mind to use somebody’s rectifier library. Checked or not. Idk why it is. But the names of footprints in Kicad and JLCPCB concerning diodes and rectifiers are always… different
Out of all my PCB related ‘issues’ I dislike this the most.
I think the hardest part would be to keep everbody happy with a single set of rules. I don’t like that the default parts have to big silk text (imo).
Bas
One way to do it might be to have a library which is created from all the submissions in the queue that have passed the automated tests.
If in addition to that KiCAD could submit usage stats when end users use a component and perhaps collect feedback some quality rating could be created.
A Wikipedia-type mechanism could help produce a mechanism for assessing quality. That with an auto-update mechanism for when the library is modified.
Wiki-Ki-Symbols, Wiki-Ki-Footprints, Wiki-Ki-3dModels?
Usually I make my own symbol for anything more complex that a bjt. I usually prefer a different symbol layout than what I find in the libraries AND once its saved in my personal library I don’t have to worry about it changing.
I also find some of the library symbols are simply too large for how I make my schematics (again a preference)
Ok, so the problem is that eventually people can not agree with simple stuff. Everybody will have a slightly different use case and tastes. It is far better to have a too small library that is of very high quality, than have a library that has everything and the kitchen sink. Not that I’m saying that the kicad library is of stellar quality but its ok.
lets take an example mentioned in the post
vendor ID codes
On a superficial level this seems like a good idea to have in the component. Until you realize that there are many vendors, vendors change code etc. A much, better idea would be to just have a unique ID for the component and then have a database that has the vendor ID’s. This way you would have a one to many association and I can have a different translation table from others without needing to change the part in the table.
would have safed me from the labor
So also this is on a superficial level true, but at the end of the day things change. So your still on the hook for the cost of failure so your the one that needs to do the checking. And who wants to have a library with all individual resistors in the world. It would be very slow.
Seems to me that there’s a part missing in the chain of schematic symbol → footprint that somehow ties to the actual vendor component. But again this is also a superficially much easier problem than it seems. What if i changed resistor vendor in the next batch, or if the vendor changed the production method? How do you mark that in your data.
Essentially sky is the limit on what problems you want to tackle with the library items. And almost certainly we would want to have a database mapping for the library items. So should the entire library be migrated to a database driven version?
The answer is simple: don’t include vendor codes unless the component is single source manufacturer’s codes. That is what happens with large chunks of the main library.
Nobody ofcourse Therefor I would not want one super mega database but several smaller ones.
And perhaps a dvision per vendor. So you would have several libraries for JLC several for eurocircuits or for fill in your vendor.
However, the most common workflow is supplementing your own personal library every time when you need something news. If you start using a new attiny chip, what do you do? You copy the symbol to your lib and add the vendor ID code (you have to copy it because the default lib is write protected anyways). I also don’t need a symbol for every resistor value, just for those values I actually use.
So what I think we really need from a library are the ‘raw materials’ to copy stuff from. So just the symbols and footprints for chips which are currently lacking (and in demand) I too think that for this reason alone that adding vendor codes was not really such a good idea .
And with that easy to use great JLCPCB plugin you can easily live without libs with vendor codes
Bas
I’m not sure, taking the example of the resistors, it’s necessary to have all possible resistor values and all possible vendors in a single database. As far as resistors’ symbols are concerned, there are 2-3 options (depending on, whether you prefer small/large, US/rest of the world symbols), the rest is the value of the component. You can also add extra fields to any symbol, which could then simply contain a link to your vendor’s, or the manufacturer’s datasheet. You can instruct KiCAD to include these in the BOM, which makes ordering a piece of cake. And if you think about it, you already have a separate database, which is called footprints, which you have to link up most of the time, anyway.
Having said this, I agree that the symbol library is a bit of a mess. I would like to stress, however, that I don’t mean this as criticism. I’m grateful for the tool, and I would be happy to contribute, if there was a viable concept on the table. But the OP’s comment is very valid, the contribution threshold is high, and ill-defined.
What could, perhaps, help is a better search engine behind the symbols. At the moment, if you’re looking for something, you’ve got to know, which category it belongs to, otherwise, you don’t stand a chance.
If each symbol has a unique ID then there can be a separate database which contains manufacturers, vendors and importantly footprint ID. Currently, the symbols do contain information about which footprints are valid, which is only ever used by the “assign footprint” option.
In a multiple database system, you pick your symbol, then pick either footprint, manufacturer or vendor, which presents you with a successively reduced list of candidates, or perhaps you pick your vendor first and then you can only select from symbols which are available from that vendor.
There are plenty of other permutations which would be useful to some people. The entire field of electronic component numbering is a mess. No one had ever created something like Dewey Decimal for it.
One question that should be clarified first is what we understand by the word “symbol”. A resistor in an electronic circuit has two symbols:
Now, what you are describing goes way beyond that, and those extra attributes can be attached as extra fields to the symbol properties. The value, and the footprint are such attributes, and I don’t see why your preferred vendor couldn’t be another one.
In my opinion, KiCAD already has way tooooooo many symbols, which makes it hard to find the one that you need. It would be much better, if it contained only the base symbols as someone above has already suggested, and you would add the extra information on your own. Who is to tell, what’s important to you? There are so many vendors in the world that it just makes absolutely no sense to make that part of the symbol. Some has also mentioned that vendors change their IDs, which would mean that curating the list would be a gargantuan task.
My vote would be for simplifying the symbol library, and leave only the base symbols (perhaps, with footprints), and add, perhaps, the possibility to interact with third-party plugins or data bases. There are some attributes that are physically part of the symbol, like the footprint, and the pinout, but there are many that aren’t, like the vendor, the price, alternatives, or the availability. KiCAD shouldn’t try to operate in that domain, because that just results in a bloated and unmanageable library.
It doesn’t go way beyond that really, you can use it the way you suggest nothing beyond the bases symbol is mandatory. It is a hierarchy of databases and libraries.
What counts as a base symbol? In the case of diodes, there are far too many defined, resistors that are far better organised.
When a Symbol is defined at the base level the pinout is essential, if don’t have that then the Electrical Rule checker will not work. Software needs to be designed so that it can be used the way the users want and they are not forced to use it the way the designer wants it to be used.
If a designer wants to pick only to buy from a single vendor that is their choice, if they are using a fabricator to build and populate the board then making it easy to pick from only that fabricator’s options is sensible.
What a lot of Opensource software lacks is proper system analysis, so you end up with a feature set which is determined by a few of the loudest voices. Saying the software should only work in the way I do things is typical of this.
I am/was a professional software engineer, I’ve spent a lot of time listening to people tell me how the system they want should work, only to go to the next person on the consult list to find them equally vociferously tell me it works a different way everyone in the office does it this way, good software is designed in a way that it allows multiple approaches which suit everyone’s needs and foibles. Really the last person you want to trust on this is the person who started doing the job before computers were a thing because they’ll often just try to get you to implement the original system. If you do what they want you’ll end up with a system that has all the limitations that the paper system has and none of the advantages the computer can bring.
And if so, for example? GitHub - issus/altium-library: Open source Altium Database Library with over 165,000 high quality components and full 3d models.
It’s just like an idea
In general, ideally, a full-fledged converter should have not only footprints, but also all library data
Then there is the data for SPICE.
The question really is, how the particular components are linked to the symbol. Altium has a hierarchical way of attaching more and more fields to a symbol, but they begin with the base. I think the crux of the matter is how you navigate in the information.
The base can always be converted into an integrated library … And how anyone wants to organize this personal matter for everyone … In the end, disabling the unnecessary is always easier than finding the right one) Even so, I would like to see tighter integration with Altium and not with Eagle understandable reasons…