Skip to main content

A package manager for KiCad projects

Project description

KiCad Package Manager

This is a package manager for KiCad symbols, footprints, 3d models, simulation files, and hierarchical sheets.

Goal

Create a format for distributing the following kind of KiCad features:

  • Symbols
  • Footprints
  • 3D Models
  • SPICE Simulation Code
  • Sub-sheets
  • Unit Tests
  • Command Runner
  • Plugins

Projects can be created that programmatically generate these files.

Currently Supports:

  • Symbols
  • Footprints

Up Next:

  • Subsheets
  • Command Runner
  • 3D Models

Installing KPM

Open the "KiCad Command Prompt"

pip3 install kicad-package-manager

In your KiCad project directory, run

kpm init

Then edit your kpm.json file as needed.

How to Install a Package

Find a package you want to use:

kpm list
kpm list | grep something
kpm search something
kpm show some_package

Then edit the dependencies list in your kpm.json to include a package and version. Example:

{
	"name": "cool-project",
	"version": "0.0.1",
	"author": "danroblewis",
	"homepage": "http://githab.info/magic/stuff",
	"commands": {
		"test": "./fictional-spice-tester"
	},
	"dependencies": {
		"kpm-jlcpcb-basic": "0.0.5",
		"eurorack-parts": "0.0.1"
	}
}

How to Create a Package

Create a directory, it can be a KiCad project directory or any directory. Probably put it under version control with something like git.

kpm init

This creates a kpm.json file. Add the dependencies your package will require to the dependencies list.

Your package will include your kpm.json file and any of these directories if they are present:

/symbols
/footprints
/3dmodels
/3dmodels
/plugins
/simulation
/sheets
/tests
/scripts

To build the package

kpm build

You should now have a package.zip file in your project directory.

To upload a package to the registry, first create a ~/.kpmrc file:

{
	"name": "yourname",
	"token": "arbitrarytokenonlyyouknow"
}

Then update the version in your kpm.json file.

Then run

kpm upload

You should then see your package in the kpm search <yourpackagename>

Usage

kpm init
kpm list
kpm search jlc
kpm show kpm-jlcpcb-basic
kpm install .

To add a new package to the package index, submit a pull request

kpm.json

{
	"name": "cool-project",
	"version": "0.0.1",
	"author": "danroblewis",
	"homepage": "http://githab.info/magic/stuff",
	"commands": {
		"test": "./fictional-spice-tester"
	},
	"dependencies": {
		"kpm-jlcpcb-basic": "0.0.5",
		"eurorack-parts": "0.0.1"
	}
}

Refresh Symbols and Footprints

After updating your libraries, the symbols/footprints in your schematic files won't have the latest changes. Do this to synchronize them:

  • In eeschema, click Tools > Update Symbols from Library..., then save
  • In pcbnew, click Tools > Update Footprints from Library..., then save

(If we can find a way to do this within kpm, that would be awesome.)

Package Directory Structure

/kpm.json

/symbols/
/symbols/mysymbols.kicad_sym

/footprints/
/footprints/myfootprints.pretty/
/footprints/myfootprints.pretty/myfootprints.kicad_mod

/3dmodels/
/3dmodels/something.step

/plugins/
/plugins/kicad-eurorack-tools/
/plugins/kicad-eurorack-tools/__init__.py

/simulation/
/simulation/mysim.spice

/sheets/
/sheets/mysubsheet.kicad_sch

/tests/
/tests/mytest.py

/scripts/
/scripts/mycommand.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kicad_package_manager-0.0.15.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

kicad_package_manager-0.0.15-py2.py3-none-any.whl (10.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file kicad_package_manager-0.0.15.tar.gz.

File metadata

File hashes

Hashes for kicad_package_manager-0.0.15.tar.gz
Algorithm Hash digest
SHA256 4e42105fec475b75cfffb9a520c20076efd3a865c851859d11b4b85ec5cddd81
MD5 4714aa3645eae327cf1b71981f730f8e
BLAKE2b-256 f4e3b69f37c401429220edba66a36faa76b6e8450264e0f090f51308de2d180a

See more details on using hashes here.

File details

Details for the file kicad_package_manager-0.0.15-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for kicad_package_manager-0.0.15-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ef02b70b76d165cfc9e7ae367614329b9c03e8629e884998d4984f68f5ef33f2
MD5 4dc5d4430d4d4f69ef9b1a4b8d144159
BLAKE2b-256 2cd581d1edce30f9b4ee7d58bccdfa5b311b8a40cf94ca5ff2150421b6db6298

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page