Automatic assignment of footprint (and 3D model)


I’m thinking about how the footprint assignment can be more “intelligent”/faster. I’m not talking about simple parts like resistors/ capacitors without extra requirements, but diodes, inductors, connectors, integrated circuits.

For example diode:
The most of the time the same symbol for a diode is used, but the footprint changes. But before selecting a footprint you search for a diode which fits your needs (at the distributor, manufacturer, …). After you selected the exact part, only a few footprints are still available (for diodes in the most time only one).

For inductors it is the same, but many times the footprints are generic, but the 3D model matches not always. For example have they a different heigth. (I think this is currently not doable, because there is no 3D model assigner)

So it would be nice if in cvpcb exist a filter which filters only these matching footprints.

Where to store the information which partnumber matches with which footprint?
Maybe this information can be stored in a database
found this: Part-DB
So CVPCB access this database and assigns automatically the footprint (and the 3d model which matches)
Maybe in the database is stored only the path to the footprint and not the footprint it self.

So at the end the workflow looks like:

  1. Create schematic with generic parts
  2. Add Manufacturer number to parts
  3. Let CVPCB Assign automatically footprints

What do you think about something like that?

Diodes, inductors and connectors are generic parts just like resistors and capacitors.

Diodes and inductors come in many hundreds of different sizes and it does not make much sense to make these all fully specified schematic symbols. This would not make it any easier. For you it would move the selection of a Footprint in CvPcb, to selecting the right fully specified part when placing each diode on your schematic.

It’s not the fault of KiCad, it’s the fault of “industry”, I would not be surprised if there are 50000 different opamps available.

KiCad’s approach is simple and very effective. It is also very flexible.

I am also of opinion that CvPcb does a remarkably good job at identifying schematic symbols. For example, for a LED, you get a preselection of 114 different footrpints for LED’s, both THT and SMT:

How familiar are you with the filters (in the green circle) in CvPcb?
These are quite powerful to quickly narrow the selection down.

If I want to make a PCB with many similar parts (for example a resistor with 0603 Footprint, same for diodes, etc.) Then I often place the first resistor on the schematic, assign a footprint, and all the other resistors are copies from the first (with the ‘c’ key from copy).

More then 3/4 of the schematics I draw are never intended to be made into PCB’s. Some are just for simulation, others are quick ideas, or made just to post something on a forum, and quickly forgotten afterwards. For these I just want to place a resistor, transistor, diode or whatever on the schematic, and not be bothered by the “footprint selection process”.

You can also quite easily make a library of your own preferred parts, and these can have the footprint info already in them, and have extra fields in them.

I think the Digikey library has Digikey part numbers in them, but I only experimented with it very briefly. It has lots of duplicates of schematic symbols already in KiCad, and the graphical part of the KiCad symbols looks much better designed.

3D models are linked to Footprints.
If you select a Footprint in Pcbnew and press e for edit, then the menu gives you 3 tabs. In the rightmost tab: “3D settings” you can change the link to the 3D model.

Currently KiCad has over 4GiB of 3D models data, so I’m sorry if your particular part is not in it. Stuff like Inductors come in many sizes, but often look very similar in all other aspects. In the 3D Settings you can add scale factors to make a 3D model more closely fit your actual part.

About the parts database.
His is a repeating subject on this forum, it is repeated a few times each year, and there are multiple attempts of implementing it.
I am not interested in this part, so will leave further comments to others.

There’s a discussion going on right now:

At that moment I am adding a symbol for that diode and specify its footprint. Then use that symbol at schematic. Never used CVPCB so may be just don’t know what I’m missing.

Yes. But at the end you have to assign an exact partnumber for generating a BOM. So I prefer the workflow, specifying the partnumber and the footprint is then automatically assigned

At first I assigned part number.
But during time I got many times the question - we can get a part in 12 weeks - you will wait or specify what to use instead of it. So now I minimize the number of such questions by assigning a list of part numbers (as long as I can find).
That is not done in KiCad but in LibreOffice spreadsheet.

You can understand added by me symbol name as ‘partnumber’. It can be the manufacturer part number or your part number.