Part Editor and Library management

Dear KiCad community,

First of all thanks for this fantastic piece of software. An amazing effort by the developers.

I am a fan of simplistic design and would like to discuss future potential around this. Perhaps this is an old topic but I have not found anything in searching this forum yet.

An EDA software which can provide me a ready part which I know is available at a distributor - at a simple click - will be very powerful. I know the generic symbol and footprint library is a start, but I wonder if it can be taken a step further:

  1. Replace the footprint and symbol editor with a parts editor. A parts editor should include Symbol, Spice model, Footprint and 3D model in one unified file. The editor should have all relevant functionality to work on this file.
    This would remove the need to connect symbols with footprints located in different directories.

I know we today make parts by connecting independent symbols with footprints so somehow this setup should be maintained but this could be handled elegantly in point 2 perhaps

  1. Online database of parts. These parts should be available online - constantly updated. No more having my own libraries which I move around and / or include in my project files. No more links to where these libraries are placed. One online source only which all users can contribute parts to with the parts editor.

I raised a similar question before and there was a mension of the library maintainers, but as far as I can tell it is still maintaining the generic library which is downloaded and then there are additional unmaintained libraries from Digikey and others to download as well, but nothing online I can reference?

  1. Parts should have an automatic connection to the distributor. I should not have to look around at Digikey, Octopart, SnapEDA or all the other sources to try to put a part together. Why should everyone have to spend time doing this when it all could have been done already? Stock status and cost would be a bonus.

Is this a topic worth adding as a future feature request at GitLab or am I completely wrong here?

(Edit) As I learn more it seems like SnapEDA is already trying to do this in a way although their plugin is not compatible with V6??

Thanks once again

1 Like

1 This is impossible by definition because the circuit is a circuit and the PCB board and in 99 percent of cases you need to edit it separately…
2 A bad idea should be the ability to work autonomously without clouds that you do not like
3 All these services give general pictures that you will have to edit for yourself plus procurement and suppliers in different regions are very often different those designations that give services do not coincide with the manufacturer’s documentation and at least everything needs to be checked usually and corrected
4If you consider such services from Altium, then this is octopart with high prices) you should have a choice of where to buy depending on the region and not have a hard link without the possibility of choice… Then it all usually turns into a paid subscription))) What detail can you not assemble without these services?

1 Like

There are several separate issues here. One is “one unified file”. You can vote for New component or part format with embedded or linked symbol, footprint and 3d files (#6941) · Issues · KiCad / KiCad Source Code / kicad · GitLab by giving a thumb up. But what do you mean by “parts editor”? A symbol and a footprint need still be separate entities in one way or another, and because they have different features, they need dedicated editors, just like a schematic and a layout need different editors.

I don’t think separate files will ever be removed from KiCad, but to ease sharing etc. it would be great to have a file format where one file – possible just a zip file – would be one part.

Well, this one has been beaten to death many times, and the situation hasn’t changed a bit. You can find many, many discussions about “why there isn’t one public, open online library for KiCad for user contributions”. Repeating the same arguments isn’t useful and doesn’t change the situation.

Having better support for infrastructure and file formats is a bit different thing. But I don’t see how it would change the discussion about “one online source”.

In v7 we have support for part databases, but (at the moment) it supports only metadata, i.e. symbol property fields, not storing footprint, symbol and 3D data. Adding ability to store the latter kind of data would be great, but still it wouldn’t make “one online source” any better idea than what it is now.

Please tell us how this would implemented. Nobody has done that because it’s practically impossible. Not technically, and not for companies who have their own part databases, but for “one online source”.

eelik The database stores everything in this data paths and 3d models to physical components

It stores paths, not the data itself (the symbol file, footprint file and 3d file). That has been said explicitly several times in this forum. It’s possible I haven’t understood correctly, but more probably you didn’t understand what I meant. The OP wished for an online database from which the user could fetch the parts. The current database implementation in KiCad doesn’t make this possible because you still need the files in the filesystem.

The database libraries feature in V7 is not really intended to be the foundation of a massive online public database. It is intended that you continue to use Git or another similar system to manage the data of symbols and footprints, and the database just stores part info as eelik says.

To the original questions: the main reason that (2) and (3) don’t exist is money. Having a constantly-updated database of accurate part info means paying people to make it happen, and one would not likely be able to set up a public database of parts that aggregated data from a bunch of data sources without having agreements in place with those data sources.

The database itself can be placed anywhere with the components you connect to it over the network and for this you do not need to keep your details on your machine… This is of course more relevant when working in a development group where the project is divided into parts and specific details from a specific supplier are used, but it’s good to just be able to

You can place the database both locally and on the Internet or on the server to make it both public and individual. And what does it mean with accurate information about the details? How can you determine this availability without being tied to a region?

This is not something that’s set in concrete. First of all even with the current implementation, the paths can be network filesystem paths, so the models (significant amount of storage) can be on a server instead of on the local filesystem. Secondly, with modifications in future releases paths could be URLs which would allow more ways of fetching the model data.

There are advantages in moving away from local files for an organisation and the database capability is a start.

But not an Internet wide database as OP seems to envisage.

1 Like

I believe Kicad is used world wide in many different languages.

It would be an interesting exercise bringing all distributors worldwide onboard with translations, monetary exchange rates, postage costs, and continually updated stock status and pricing. :rofl:

1 Like

An Addon can be used instead of embedding at software.

A few years ago there was KiCost. A project for scraping parts info from various sources. After a while it turned out that the big parts stores deliberaty change their interface continuously in devious way with the intention of blocking such program. Apparently they don’t like it if it’s easy for you to find out if that part you want is 0.02ct cheaper from one of their competitors.

Around that time, altium also bought Octopart, and for some reason altium does not like KiCad very much. Various of those websites apparently have a subscription based interface for paying customers, but an Open Source project like KiCad does not have much budget for such things. I don’t know what the current status of KiCost is. As far as I know several people have shared keys with KiCost to enable it to scrape more info, but people who sell such keys also do not like that very much. Their business model is to sell keys to each and every individual customer. I do not know what the current status of KiCost is. It’s still mentioned on but it seems to be very low profile these days. It’s not even in the Plugin & Content manager.

And while all companies on the west side of this round mudball are spending a lot of effort in thwarting competition and cutting each others throats, there is some part on the East side of this mudball where you can buy a lot of similar parts for half to a quarter of the price, but guess what, those are not listed at octopart.

When I was young and naive, someone told me that communism was about cooperation and building something great together. In practice it turned out to be something else. The Open Source communities and it’s projects is the closest you can get. It’s a lot more realistic then scantily clad teenager stating they are wishing for “world peace” on some podium in a hope to catch some prize.

Last but not least.
I want to give a thumbs up to I never heard of them, until KiCad Project Awarded NLnet Grant | KiCad EDA In total they manage to donate around EUR3.5M to open source (and hardware) projects each year.

Thank you everyone for very good feedback.
I understand much better now both the history and challenges in this and will not pursue this further.

The SnapEDA site seems to be a good starting point to get models for me. I tried their plugin and I will probably use that for now.

Thanks again

Another option that might suit you is DesignSpark, from RS Components. Its integration with their parts library and ordering system might be the all-in-one solution you are looking for.

There is a reason for separate databases for symbols, footprints, and probably 3D models. And that reason is to save YOUR disk space or space in a cloud.

The number of footprints is smaller than the number of symbols by at least two orders of magnitude. So, if the footprint for each symbol were to be stored with that symbol, then the size of the symbol library will increase by at least a factor of 2, probably more. It is simply more efficient to store them separately with a link that is only a few bytes long.

The same thing applies to 3D models. I am not sure about SPICE models.

As for having the libraries only on line/in a cloud and doing away with personal libraries for a given project, think what would happen to your carefully drawn schematics if someone decided to edit a symbol that you had used. Perhaps they move the pins around to different locations around the component’s outline. What would happen to the circuit paths you have drawn to those pins? Would they stay where you put them, perhaps connecting to nothing or, worse to a different pin? Or would they do some kind of elastic stretch to remain connected? Or would there be some kind of auto router for them to work them around the outline to the new pin locations? Would that auto router use your preferences for drawing schematics? Just one component comes instantly to my mind: the 555 timer. In spite of fairly standard ways of drawing it in the OEM’s spec. sheets, I have seen some other arrangements that are insane. They make the circuit almost impossible to understand without a lot of mental effort. And that is just ONE component that I would not like to have changed on any schematic that I draw.

No, if I draw a schematic and come back to it a year or ten later, I want it to look the same. And libraries for that project, that are saved with that project, are a very, VERY good idea. To state the obvious, just create a folder for each project and put all that project’s files in that folder. The on-line libraries should be easily available so we can download the parts from them. But that is already the case, isn’t it?

Automatic connection to A distributor, as in just one? Boy, the parts houses will LOVE that one. Buy our part at OUR PRICE! And shut up! What a concept! The distributors would probably pay the full cost of developing KiCAD for years to come to get a monopoly like that.

And I am sure KiCAD is used world wide. So, how does that work around the globe? Different distributors for different countries/regions?

No thanks! Besides, in the US if you search just two sources you can find 99.99% of all the parts you will ever need. And you get better prices that way. Sometimes much better prices. Do I need to name those two? Europe is probably similar, but I don’t know. Other regions?

I suspect you are not personally paying for the parts that you use and are not the least bit concerned what your employer pays.

But perhaps a spreadsheet-like thing showing the prices and CURRENT availability from ten or twenty-five different sources that the user can pick. And you could just check off which parts to order from each of them. But that would be way, way down the list of priorities that I would have for KiCAD.

I do not think your suggestions are very well thought out.