← Back to team overview

kicad-developers team mailing list archive

Re: Automatic assignment of footprint with a database

 

On Thu, Aug 27, 2020 at 3:36 PM Brian <lotharyx@xxxxxxxxx> wrote:

> I have a private branch that stores symbols and footprints in a MySQL
> database, and I’ve been chewing on the idea of enhancing cvpcb to provide
> the “real-world parts” glue that KiCAD currently lacks.  My approach is in
> line with Jon’s, I think: to have the database also contain
> symbol-to-real-part-to-correct-footprint mappings (not embedded in KiCAD
> symbol data, but stored alongside in the DB), which cvpcb could them query
> and present as choices to the user (no need to add a part-number field to
> each symbol in the schematic; rather, the real-part selection process is
> integrated into cvpcb).  Then cvpcb can use this selection to pick the
> correct footprint, also in the database.
>

This is basically what I'm thinking, except I was planning to integrate it
into the symbol chooser as well (so no need to open cvpcb if you don't
desire)

>
> A tangent goal would be to enhance pcbnew to use the database information
> when swapping footprints.  For example, to choose among several pitch
> options for a through-hole resistor (to make room for routing on few
> layers, maybe).
>

Yes, my spec handles this -- a "part" is a mapping of symbol to one or more
footprints, each footprint is valid and you can quickly swap them out

>
> Obviously this requires data to work, and in my case I have my homebrew
> RDBMS schema set up the way I came up with in my own personal vacuum, which
> I gradually build up with data each time I make a DigiKey order on some
> project or other.  An external database maintained by a community would
> certainly be an advantage over my setup.
>

My first target user profile for this feature is someone working on a
design team, but I also think it could be an interesting community project
if done right


>
> At any rate, all that to say this is a direction that interests me greatly
> (HOW MANY TIMES have I had to rework a board because a TO-220 part’s pinout
> was wrong??), and I have ideas and time to contribute to this effort.
>
>
Happy to have your help!

-Jon


>
>
>
> On Aug 27, 2020, at 2:22 PM, Jon Evans <jon@xxxxxxxxxxxxx> wrote:
>
> 
> Hey Martin,
>
> This is a concept I've been working on in the background (managing
> libraries through a database, including footprint assignments but also
> fields/properties)
>
> The way I was thinking about approaching it is not just a filter in CvPcb,
> but actually a new type of library (including a new part chooser).
> It would pull the underlying symbols and footprints from existing
> libraries, but would connect to a database (local or on a remote server)
> that has all of the information about which parts use what symbol and
> footprint, and what other properties to bring in (manufacturer part number,
> etc)
>
> There is a draft spec:
>
> https://docs.google.com/document/d/1qXwFPbYOwFXRNvjRN5BttRX_4esEDdYDt1cOpOmNc8A/edit?usp=sharing
>
> I have not put a lot of time into this yet because V6 feature freeze is
> right around the corner, and this would be for a later release.
>
> Best,
> Jon
>
> On Thu, Aug 27, 2020 at 2:17 PM Martin Marmsoler <
> martin.marmsoler@xxxxxxxxx> wrote:
>
>> Hi,
>>
>> I wrote already in the Forum, but did not get an answer. Hopefully I'm
>> getting here more attention :)
>>
>> 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 they have 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 <https://github.com/Part-DB/Part-DB-symfony> Looks
>> pretty good to do the job.
>> So CVPCB access this database and assigns automatically the footprint
>> (and the 3d model which matches)
>>
>> The database contains many parts which have footprints (or only the path
>> (preffered)) as attribute
>>
>> 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 has to be done:
>> # create database with KiCad footprints inside (script)
>> # Add parts to the database
>> # Add new filter button to CVPCB
>>     - implement db access
>>     - search in symbol if a manufacturer number field exist and use this
>> value
>>      - access the database and search for the part
>>      - assign footprint to symbol (if in the database only the path is
>> stored, what to do if the footprint does not exist)
>> # Add settings where the url to the database is stored.
>>
>> What do you think about something like that?
>>
>> This is the forum post:
>>
>> https://forum.kicad.info/t/automatic-assignment-of-footprint-and-3d-model/24497
>>
>> Is there a timeplan for v6/ feature freeze date?
>>
>> Cheers,
>>
>> Martin
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>

Follow ups

References