Home

Awesome

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