kom2

command module
v0.0.0-...-3f3dc33 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2023 License: MIT Imports: 18 Imported by: 0

README

Prototype

ODBC to InvenTree prototype driver for KiCad.

See also: https://github.com/clj/kom for a previous prototype that uses SQLite virtual tables

Installing

macOS

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.

Linux

Contributions welcome.

Windows

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
KiCad Configuration

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).

Connection String

The Driver argument of the connection string is used to find the kom2 driver and the exact value used is platform specific.

Windows

Use Driver=kom2 when the driver was installed using the downloaded Windows installer.

Linux

Use Driver=/path/to/kom2.so, using the correct path where the driver was downloaded and extracted.

macOS

Use Driver=/path/to/kom2.dylib, using the correct path where the driver was downloaded and extracted.

Other Connection String Options
  • username
    • InvenTree username
  • password
    • InvenTree users's password (not required if the apitoken is used instead)
  • server
    • The InvenTree server to connect to
  • apitoken
    • The optional API token (not required when username and password are used)
Add the library to KiCad:
  • 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.

Interactive Use

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.

License

MIT License Copyright (c) 2023 Christian Lyder Jacobsen

Refer to LICENSE for full text.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL