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.2.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.2-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kiskeleton-0.1.2.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","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.2.tar.gz
Algorithm Hash digest
SHA256 2bb758f94b18e8802315b8102a519d32c67389b4d537551a63051f37b6ff9dcf
MD5 452bb26a2a006a0171841efefe61afef
BLAKE2b-256 d6fd583e5c48ca33f96c6ece4d947d3eefad4a5dcc82f1240082615a9cdc91a0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kiskeleton-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 24b02e5e45488793dce72835cfeaf107a27da151d582875532ec630c7366dafc
MD5 89c2f24d6572a5ddc40ff66ef208faa3
BLAKE2b-256 980d0b22693ec3507d682681c9daa4ab5571e129e8269d5ccd42f7bc48e66ddd

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