Skip to content

tscircuit/kicad-mod-converter

Repository files navigation

kicad-mod-converter

This module converts kicad files into a tscircuit soup json, an easy-to-use JSON format for electronics.

  1. Library Usage
  2. CLI Usage

Library Usage

npm add kicad-mod-converter
import { parseKicadModToTscircuitSoup } from "kicad-mod-converter"
import { readFileSync } from "node:fs"

const fileContent = readFileSync("SW_SP3T_PCM13.kicad_mod")
const jsonSoup = await parseKicadModToTscircuitSoup(fileContent)
/*
 * {
 *   "type": "pcb_smtpad",
 *   "x": 0.345,
 *   ...
 */

You can also output "kicad json", an intermediary JSON format that more closely resembles the original kicad sexpr.

import { parseKicadModToKicadJson } from "kicad-mod-converter"


const kicadJson = parseKicadModToKicadJson(readFileSync("SW_SP3T_PCM13.kicad_mod"))
/*
 * {
 *    footprint_name: "...",
 *    fp_lines: [
 *      { start: [0, 0], end: [20, 4], stroke: { width: 0.1 } }
 *    ...
 */

CLI Usage

npm install -g kicad-mod-converter
# interactive usage
kicad-mod-converter
# Convert a directory ./my-footprints.pretty to a tscircuit project
kicad-mod-converter convert-kicad-directory --input-dir ./my-footprints.pretty --output-dir ./my-tscircuit-footprints

You can now go inside ./my-tscircuit-footprints and run npm i and npm run start to view all your footprints!

Using the Converted Kicad Directory

Note

You should publish the generated library to the tscircuit registry! Just run tsci publish inside the directory!

You can then use tsci add yourgithubusername/package-name

import { Battery_CR1225 } from "./my-tscircuit-footprints"

export default () => (
  <group>
    <component footprint={Battery_CR1225} />
  </group>
)

Development

You should read about the kicad sexpr syntax to understand how to read the footprint files.

There are tests in this repo, take a look in the tests directory to see how they work.

Note

You'll need to pull the kicad-footprints official repo before you can run the tests, you can do this by running npm run test:pull-kicad-footprints

CLI Testing

You can test the cli by running npm run cli.

If you want to test conversion of a kicad directory, run npm run cli:test-convert