ODBC to InvenTree prototype driver for KiCad.
See also: https://github.com/clj/kom for a previous prototype that uses SQLite virtual tables
Install unixODBC
$ brew install unixodbc
Download the latest kicad-odbc-middleware2 release from Releases:
- For Intel based Macs:
- kicad-odbc-middleware2-macos-amd64-VERSION.zip
- For Apple Silicon (ARM) Macs:
- kicad-odbc-middleware2-macos-arm64-VERSION.zip
decompress it and leave the kom2.dylib file somewhere convenient.
Contributions welcome.
Download the latest kicad-odbc-middleware2 Windows installer from Releases and run it.
- For Intel/Amd based Windows PCs:
- kicad-odbc-middleware2-windows-amd64-VERSION.exe
Create a inventree.kicad_dbl
file with a valid configuration (see the KiCad documentation on Database Libraries), e.g.:
{
"meta": {
"version": 0
},
"name": "InvenTree Library",
"description": "Components pulled from InvenTree",
"source": {
"type": "odbc",
"connection_string": "Driver=SEE_BELOW;username=reader;password=readonly;server=https://demo.inventree.org",
"timeout_seconds": 2
},
"libraries": [
{
"name": "Capacitors",
"table": "Electronics/Passives/Capacitors",
"key": "pk",
"symbols": "parameter.Symbol",
"footprints": "parameter.Footprint",
"fields": [
{
"column": "IPN",
"name": "IPN",
"visible_on_add": false,
"visible_in_chooser": true,
"show_name": true,
"inherit_properties": true
},
{
"column": "parameter.Capacitance",
"name": "Value",
"visible_on_add": true,
"visible_in_chooser": true,
"show_name": false
},
{
"column": "parameter.Package",
"name": "Package",
"visible_on_add": true,
"visible_in_chooser": true,
"show_name": false
}
],
"properties": {
"description": "description",
"keywords": "keywords"
}
}
]
}
The InvenTree Demo server does not seem to have IPNs for everything though, so the key should probably be pk
instead if that is the case (i.e. if IPN isn't unique).
The Driver
argument of the connection string is used to find the kom2 driver and the exact value used is platform specific.
Use Driver=kom2
when the driver was installed using the downloaded Windows installer.
Use Driver=/path/to/kom2.so
, using the correct path where the driver was downloaded and extracted.
Use Driver=/path/to/kom2.dylib
, using the correct path where the driver was downloaded and extracted.
username
- InvenTree username
password
- InvenTree users's password (not required if the
apitoken
is used instead)
- InvenTree users's password (not required if the
server
- The InvenTree server to connect to
apitoken
- The optional API token (not required when
username
andpassword
are used)
- The optional API token (not required when
- Preferences -> Manage Symbol Libraries...
- Switch to the:
- Global Libraries; or
- Project Specific Libraries
- Add a new library
- Give it an appropriate Nickname
- Set the Library Path to point to the
inventree.kicad_dbl
that you created earlier - Set the Library Format to Database
You can now open the Schematic Editor and add a new component. The configured library should now be available.
You can query InvenTree using isql
by using a connection string:
isql -v -k "Driver=/.../kom2.dylib;username=reader;password=readonly;server=https://demo.inventree.org"
and run things like:
select * from Electronics/Passives/Resistors
or
select * from Electronics/Passives/Resistors where pk = 43;
or
select * from Electronics/Passives/Resistors where IPN = ???;
if there were IPNs in the DB.
MIT License Copyright (c) 2023 Christian Lyder Jacobsen
Refer to LICENSE for full text.