From 16835ea0affe42ea0691c17bab8f920a0e109a81 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 26 Sep 2023 20:52:44 +1000 Subject: [PATCH 1/5] Add plugin entry for inventree-kicad --- _publishers/afwkiers.md | 5 +++++ _repo/inventree-kicad.md | 37 +++++++++++++++++++++++++++++++++++++ _repo/inventree-wireviz.md | 2 +- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 _publishers/afwkiers.md create mode 100644 _repo/inventree-kicad.md diff --git a/_publishers/afwkiers.md b/_publishers/afwkiers.md new file mode 100644 index 000000000..2df424f36 --- /dev/null +++ b/_publishers/afwkiers.md @@ -0,0 +1,5 @@ +--- +short_name: afkiwers +name: Andre +github: afkiwers +--- \ No newline at end of file diff --git a/_repo/inventree-kicad.md b/_repo/inventree-kicad.md new file mode 100644 index 000000000..355f3cb5e --- /dev/null +++ b/_repo/inventree-kicad.md @@ -0,0 +1,37 @@ +--- +name: inventree-kicad-plugin +author: afkiwers +license: MIT +open_source: true +stable: true +maintained: true +pypi: true +package_name: inventree-kicad-plugin +github: https://github.com/afkiwers/inventree_kicad +issue_tracked: https://github.com/afkiwers/inventree_kicad/issues +website: https://github.com/afkiwers/inventree_kicad +categories: Integration +tags: schematic bom kicad +--- + +KiCad Integration for InvenTree + +A plugin which allows InvenTree to serve component data to [KiCad](https://kicad.org) via the HTTP library interface. + +This plugin provides an API wrapper which provides an API interface that conforms to the KiCad HTTP library interface specification. This allows KiCad to pull component data directly from your InvenTree database. + +## Installation + +The plugin can be installed via the InvenTree web interface, using the tag `inventree-kicad-plugin`. + +Alternatively, install the plugin manually as follows: + +``` +pip install inventree-kicad-plugin +``` + +Or, add to your `plugins.txt` file and run `invoke install`. + +## Documentation + +Refer to the [plugin documentation](https://github.com/afkiwers/inventree_kicad) for further instructions and information. \ No newline at end of file diff --git a/_repo/inventree-wireviz.md b/_repo/inventree-wireviz.md index 68ce2f42c..25c744676 100644 --- a/_repo/inventree-wireviz.md +++ b/_repo/inventree-wireviz.md @@ -3,7 +3,7 @@ name: inventree-wireviz-plugin author: SchrodingersGat license: MIT open_source: true -stable: false +stable: true maintained: true pypi: true package_name: inventree-wireviz-plugin From 1b0f5622d0a71a9e75330ecff3d221a2f40b7f06 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 26 Sep 2023 21:04:43 +1000 Subject: [PATCH 2/5] Cleanup --- _includes/partial/publisher_ref.html | 5 ++++- _layouts/plugin.html | 26 ++++++++++++++++++++++---- _repo/inventree-kicad.md | 1 - assets/index.css | 4 ++++ 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/_includes/partial/publisher_ref.html b/_includes/partial/publisher_ref.html index 222b462ab..c1da41f18 100644 --- a/_includes/partial/publisher_ref.html +++ b/_includes/partial/publisher_ref.html @@ -1,4 +1,7 @@ {% assign publisher_ref = site.publishers | where: 'short_name', include.pub | first %} -by mdo {{ include.pub }} + + mdo +

 {{ include.pub }}

+
\ No newline at end of file diff --git a/_layouts/plugin.html b/_layouts/plugin.html index 322d72902..750a583f4 100644 --- a/_layouts/plugin.html +++ b/_layouts/plugin.html @@ -17,12 +17,30 @@

{{ page.name }}

Detail section

License: + {% if page.open_source %}{% else %}{% endif %} {{ page.license }}
-

- Status: -
{% if page.stable %}Stable{% else %} Unstable{% endif %}
-
{% if page.maintained %}Maintained{% else %} Unmaintained{% endif %}
+
+
+ Status:
+
+ + {% if page.stable %} + Stable + {% else %} + Unstable + {% endif %} + +
+
+ + {% if page.maintained %} + Maintained + {% else %} + Unmaintained + {% endif %} + +
{% if page.pypi and page.package_name %}Package on PyPI:
{{ page.package_name }}
{% endif %}

diff --git a/_repo/inventree-kicad.md b/_repo/inventree-kicad.md index 355f3cb5e..9d6c84fc0 100644 --- a/_repo/inventree-kicad.md +++ b/_repo/inventree-kicad.md @@ -9,7 +9,6 @@ pypi: true package_name: inventree-kicad-plugin github: https://github.com/afkiwers/inventree_kicad issue_tracked: https://github.com/afkiwers/inventree_kicad/issues -website: https://github.com/afkiwers/inventree_kicad categories: Integration tags: schematic bom kicad --- diff --git a/assets/index.css b/assets/index.css index e142ce6eb..a53370339 100644 --- a/assets/index.css +++ b/assets/index.css @@ -106,6 +106,10 @@ layout: empty @apply mb-0 italic } + .success { + color: #155724; + } + .anchor { display: block; position: relative; From eae713322d2e8b15e76435b94df1327bbdd2fe90 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 26 Sep 2023 21:14:48 +1000 Subject: [PATCH 3/5] Improve integrations page --- _data/general/footer.yml | 6 ++---- extend/integrate/index.md | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/_data/general/footer.yml b/_data/general/footer.yml index 7289b2adc..b00d14b41 100644 --- a/_data/general/footer.yml +++ b/_data/general/footer.yml @@ -19,12 +19,10 @@ internal: extend/api.md - name: App internal: extend/app.md - - name: Integrate - internal: extend/integrate/index.md - name: Plugins internal: extend/plugin/index.md - - name: KiCad - link: https://github.com/sparkmicro/Ki-nTree + - name: Integrations + internal: extend/integrate/index.md - title: Sitemap cats: diff --git a/extend/integrate/index.md b/extend/integrate/index.md index a0755d0cd..dacb38df8 100644 --- a/extend/integrate/index.md +++ b/extend/integrate/index.md @@ -1,8 +1,15 @@ --- -title: Integrate +title: Third Party Integrations --- -Tools and plugins that integrate into InvenTree via APIs or plugins natively. -- [Ki-n-Tree](https://github.com/sparkmicro/Ki-nTree) *KiCad* integration -- [PK2InvenTree](https://github.com/rgilham/PK2InvenTree) is an open-source tool for migrating an existing [PartKeepr](https://github.com/partkeepr/PartKeepr) database to InvenTree. -- [Digikey-Inventree-Integration](https://github.com/EUdds/Digikey-Inventree-Integration) is a simple project that takes a digikey part number to creates a part in InvenTree. \ No newline at end of file +In addition to the many out-of-the-box features, and further functionality provided via [plugins](/plugins.html), InvenTree is supported by a range of third-party integrations, built by members of the InvenTree community. + +Below is a non-exhaustive list of external tools that may be used in conjunction with InvenTree, or to extends its functionality: + +| Tool | Publisher | Description | +| --- | --- | --- | +| [Ki-n-Tree](https://github.com/sparkmicro/Ki-nTree) | [@sparkmicro](https://github.com/sparkmicro) | Tool for automating creation of InvenTree data from external systems such as DigiKey | +| [PK2InvenTree](https://github.com/rgilham/PK2InvenTree) | [@rgilham](https://github.com/rgilham) | An open-source tool for migrating an existing [PartKeepr](https://github.com/partkeepr/PartKeepr) database to InvenTree | +| [Digikey-Inventree-Integration](https://github.com/EUdds/Digikey-Inventree-Integration) | [@EUdds](https://github.com/EUdds) | A project that takes a digikey part number to creates a part in InvenTree. | + +If you have (or know of) a third party software tool which should be featured here, please reach out and let us know! \ No newline at end of file From 6f6ab2962a754a3366fb790b9eec9ec5de18985f Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 26 Sep 2023 22:50:08 +1000 Subject: [PATCH 4/5] Add blog post --- _posts/2023-09-26-kicad.md | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 _posts/2023-09-26-kicad.md diff --git a/_posts/2023-09-26-kicad.md b/_posts/2023-09-26-kicad.md new file mode 100644 index 000000000..051b14ee7 --- /dev/null +++ b/_posts/2023-09-26-kicad.md @@ -0,0 +1,40 @@ +--- +author: SchrodingersGat +title: KiCad Integration +--- + +In the world of electronics design and PCB (Printed Circuit Board) development, KiCad has been a go-to tool for engineers and hobbyists alike. KiCad is a very popular and capable tool, and has continually evolved to meet the changing needs of its users. + +Ever since InvenTree was first [*shamlessly cross-promoted*](https://forum.kicad.info/t/inventory-management-open-source/) on the KiCad forums, I have been searching for a clean way to connect KiCad and InvenTree together. This has been a [popular topic of discussion](https://github.com/inventree/InvenTree/discussions/4133) with other InvenTree users too! + +InvenTree contains all of my part definition data and inventory management information, such as part parameters, supplier data, etc. If only there was a simply way to get all of that information directly out of InvenTree and into KiCad. + +Well now, with great excitement, there is! InvenTree data can now be used as a first-class *symbol library* - with full support of all of InvenTree's internal data! + +### HTTP Library Support + +In September 2023, [HTTP Libary Support](https://gitlab.com/kicad/code/kicad/-/merge_requests/1679) was added to the KiCad application. + +This feature allows KiCad library data to be retrieved from an external API endpoint, rather than a library file on the local filesystem. This is a groundbreaking change which allows us to leverage InvenTree's existing capabilities to provide a fully-featured integration between the two software packages. + +### InvenTree Plugin + +The same author who implemented the HTTP library support in KiCad has also released a [plugin for InvenTree](https://github.com/afkiwers/inventree_kicad) which provides an API wrapper for the InvenTree database that conforms to the KiCad HTTP library standard. + +What does this mean? Simply put, it means that you can now use your InvenTree database as a native KiCad library, and pull your InvenTree data directly in to your KiCad schematic. + +### Categories as Libraries + +InvenTree *categories* can be used as separate *libraries* in the KiCad application. The InvenTree plugin allows the user to select which part categories are exposed to KiCad. + +### Parameters as Fields + +Part *parameters* are exposed to the KiCad symbol as *fields*. This means that any extra part information (stored as part parameters in InvenTree) is available to the KiCad symbols. + +#### Default Values + +Where certain KiCad values are not defined for a particular part, each *library category* can optionally specify attributes such as *Default Symbol* or *Default Footprint*. This allows a category to be defined where all parts may share a common symbol and/or footprint within KiCad. + +### Further Reading + +Check out the [inventree-kicad-plugin](https://github.com/afkiwers/inventree_kicad) page on GitHub for further details, including installation instructions! From af443c46c9f297f1a7c7e8472307deda103d5a55 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 26 Sep 2023 22:54:37 +1000 Subject: [PATCH 5/5] Add section on configuration file --- _posts/2023-09-26-kicad.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/_posts/2023-09-26-kicad.md b/_posts/2023-09-26-kicad.md index 051b14ee7..e7039bc98 100644 --- a/_posts/2023-09-26-kicad.md +++ b/_posts/2023-09-26-kicad.md @@ -23,6 +23,26 @@ The same author who implemented the HTTP library support in KiCad has also relea What does this mean? Simply put, it means that you can now use your InvenTree database as a native KiCad library, and pull your InvenTree data directly in to your KiCad schematic. +### Configuration File + +Once the plugin is installed, a simple configuration file on the local computer is all that is required to connect to the InvenTree database. All that is required is the URL to the remote server (with the correct plugin extension) and an API token for authentication: + +``` +{ + "meta": { + "version": 1.0 + }, + "name": "InvenTree", + "description": "InvenTree Library", + "source": { + "type": "REST_API", + "api_version": "v1", + "root_url": "http://my.inventree.server/plugin/kicad-library-plugin", + "token": "usertokendatastring" + } +} +``` + ### Categories as Libraries InvenTree *categories* can be used as separate *libraries* in the KiCad application. The InvenTree plugin allows the user to select which part categories are exposed to KiCad.