Skip to main content
Importing Modules and Chips

Importing from KiCad

Overview

You can import KiCad components or projects into tscircuit.

tip

If you're trying to use a footprint from KiCad's standard libraries, you can skip manual importing and reference it directly with the kicad: prefix (e.g. kicad:Resistor_SMD/R_0402_1005Metric). See KiCad Footprints for more details.

To import from KiCad, you should understand the different file formats KiCad uses:

  • Files for KiCad components
    • kicad_mod - PCB footprint file for a single component
    • kicad_sym - Schematic symbol file for a single component
  • Files for KiCad projects
    • kicad_pro - KiCad project file
    • kicad_pcb - KiCad PCB board file
    • kicad_sch - KiCad Schematic board file
info

We're still building KiCad import directly into tscircuit.com, stay tuned for when that's available!

Importing KiCad Components

Currently the easiest way to import KiCad components is to go to kicad-component.tscircuit.com and upload your kicad_mod and/or kicad_sym file.

Importing KiCad Components using the CLI

Using tsci convert, we can convert KiCad footprint files on the command line.

Run the following command to convert your KiCad file:

tsci convert MyFootprint.kicad_mod

Importing .kicad_pcb files directly

You can import a KiCad PCB board file as Circuit JSON and place it inside a tscircuit board with <subcircuit />:

import { circuitJson } from "./example.kicad_pcb"

circuit.add(
<board width="10mm" height="10mm">
<subcircuit circuitJson={circuitJson} />
</board>,
)

Importing KiCad Components Programmatically

bun add kicad-to-circuit-json

Import .kicad_mod files directly

tsci registers a bundler loader that lets you import KiCad footprints like any other module inside your tscircuit project:

import kicadMod from "./footprint.kicad_mod"

export default () => {
return (
<board>
<chip footprint={kicadMod} name="U1" />
</board>
)
}

Convert KiCad files manually

If you need to do the conversion yourself (for example inside a build script), you can read the .kicad_mod file and pass it through the converter:

import { KicadFootprintToCircuitJsonConverter } from "kicad-to-circuit-json"
import { readFileSync } from "node:fs"

const converter = new KicadFootprintToCircuitJsonConverter()
const fileContent = readFileSync("SW_SP3T_PCM13.kicad_mod", "utf-8")

converter.addFile("SW_SP3T_PCM13.kicad_mod", fileContent)
converter.runUntilFinished()

const circuitJson = converter.getOutput()
/* [
* {
* "type": "pcb_smtpad",
* "x": 0.345,
* ...
*/

Circuit JSON can then be converted into regular tscircuit modules using circuit-json-to-tscircuit