Following discussions here on the forum, on the KiCAD libraries GitHub and the developers mailing list it seems there is no consensus on setting up default names in KiCAD or the standard symbol libraries as an acceptable solution to encouraging interoperability between third party tools.
It is therefore up to the community of tool builders to decide on a standard to follow, to prepare a document that describes it and to put it up online somewhere and badger people when they don’t use it.
The following is a draft of my proposed standard. Please read it carefully and submit any comments or suggestions. Please try and avoid bikeshedding and give clear reasons for any amendments or additions.
EDIT: an alternative proposal is to keep separate fields for each of Manufacturer, MPN, Vendor and SKU as described by @bobc below. Some things to consider:
- The colon character should not present a problem if the approved vendor and manufacturer names are used even if there is a colon in the part name
- Seperate fields are easier to parse
- Have separate fields
KiCAD Community Standard Symbol Fields
Detailed are standard field names and value schemas for KiCAD symbol libraries that should be adopted as the defaults for any KiCAD tooling. This is to encourage interoperability between third party tools.
2 Existing Fields
KiCAD already hard-codes 4 fields with the following schema.
| Name | Value | |-----------+-----------------------| | Reference | <Reference> | | Value | <Value> | | Footprint | <Library>:<Footprint> | | Datasheet | URL |
3 Additional Fields
On top of KiCAD’s hard-coded fields we add the following fields.
| Name | Value | |--------------+----------------------| | MPN<Integer> | <Manufacturer>:<MPN> | | SKU<Integer> | <Vendor>:<SKU> |
- All strings are UTF-8 encoded and exclude the colon character (
:, i.e U+003A)
<Integer>indicates a positive integer starting at 1
<Manufacturer>should be string indicating manufacturer name as listed by Octopart
<MPN>should be a string of a manufacturer’s published part number
<Vendor>should be a string indicating vendor as listed by Octopart
<SKU>should be a string of a retailer part number, a.k.a stock keeping unit
TBD: I will ask Octopart whether they will provide their lists in an easily parse-able format as they did with their CPL data.
| Name | Value | |-----------+-----------------------------------------| | Reference | U1 | | Value | NE555 | | Footprint | KiCad/Housings_DIP.pretty:DIP-8_W7.62mm | | Datasheet | | | MPN1 | Texas Instruments:NE555P | | MPN2 | Microsemi:NE555P | | SKU1 | Digi-Key:296-1411-5-ND | | SKU2 | Ralph's Elec.:SEMI-NE555P | | SKU3 | Ralph's Elec.:TEXAS-NE555P |
5.1 But Manufacturers change name and MPNs all the time, things go out of stock.
If a manufacturer changes name, a part goes out of production, goes out of stock or is re-stocked with a new SKU the user can simply append a new MPN or SKU pair. They can delete the old pair if they wish.