Skip to main content

Derive and modify KiCad symbol libraries with spreadsheets

Project description

KiSkeleton 🩻

Derive and modify KiCad symbol libraries with spreadsheets

The problem

You have a large number of KiCad symbols with differing parameters derived from existing symbols.

You want a single source of truth for these that's easy to manage.

Example:

You have 100 different resistors, each with different values, datasheets, footprints, and manufacturer metadata.

Keeping a library of discrete symbols for each variation helps you place these and not sweat backfilling this metadata per project.

This is a task that is much easier to manage from a spreadsheet rather than creating every single part from scratch; after all, they're all the same base resistor symbol!

Installation

This project uses uv to manage stuff.

You can run it directly without installing with uvx:

uvx kiskeleton

Manual install

Clone this repo somewhere, then do:

uv tool install -e PATH_TO_CLONED_REPO

Now you can run it from wherever:

uv run kiskeleton

Usage

There's two phases to using the tool:

  • Creating a new spreadsheet (possibly from an existing library/symbol)
  • Generating a symbol library from the input spreadsheet

Creating a new spreadsheet

The new command helps you scaffold your spreadsheet. With no options provided, a blank spreadsheet with the minimum required fields is created.

You can also pass in the library and symbol options, which let you bootstrap it from a full existing library, or an existing symbol.

This example uses the default resistor symbol as an input:

kiskeleton new \
  --library /Applications/KiCad/KiCad.app/Contents/SharedSupport/symbols/Device.kicad_sym \
  --symbol R \
  --output my_cool_new_library.csv

This will generate the spreadsheet with a row pre-filled with the properties taken from the existing symbol.

You will now fill this out with all of your parts.

Generating from the spreadsheet

With the spreadsheet filled out, it's time to generate the symbol library:

kiskeleton generate \
  --input my_cool_new_library.csv \
  --output my_cool_new_library.kicad_sym

Required columns

The name, template_library, and template_symbol_name columns are required:

  • name is the name of the symbol in the new library
  • template_library is the library to pull our "template" symbol from
  • template_symbol_name is the symbol within the library to base our new symbol off of

Any new properties that exist on the spreadsheet but not in the template symbol will be added and marked as hidden by default. If you wish to style/position these fields make sure they exist on your template symbols already (the value will be overwritten).

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

kiskeleton-0.1.3.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kiskeleton-0.1.3-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file kiskeleton-0.1.3.tar.gz.

File metadata

  • Download URL: kiskeleton-0.1.3.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for kiskeleton-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a34817f18996474c4fc13263f62346198d4930f273ee7ec729d0add33c353b69
MD5 d2d67bb985de094e8f571872c4ba6bc2
BLAKE2b-256 3cd7063f0b6d319f4a89971f4d13334c24feeed12fd431dff21072cf402c3a90

See more details on using hashes here.

File details

Details for the file kiskeleton-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: kiskeleton-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for kiskeleton-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6a1e7fe626e1cdb137430d1a879fbef0cfea7bfb6fca175b5cb7794e71e95a8a
MD5 669e53c51d185856ea610207ec8c5812
BLAKE2b-256 af00cfb0f301eb24aee08a5ed9ead1a4dd70e9e20276cf751537db06b153dd28

See more details on using hashes here.

Supported by

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