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.4.tar.gz (7.7 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.4-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kiskeleton-0.1.4.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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.4.tar.gz
Algorithm Hash digest
SHA256 0e779130c1cb3e06c2470d68a98f60edf60d0622dc49127b502a184570c875f6
MD5 30c0142f97261a79776e088ed3dcdebf
BLAKE2b-256 824fc7ca1c98f4274d9945f1672b29cfd2cdfb7af3a63797f0ec54830b287c7c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kiskeleton-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1b3b651d1d5cc39c7fb44b81e5f8aba78db09a5d07c51cb2c9bf9235ce8f5bd3
MD5 9e885abe4c098efb61ec64d8d7a7e711
BLAKE2b-256 0b114d531e3618e5de0330ac6e5620cd55fd4298eac2fac5fd761f26d9360971

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