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 tscircuit's open-source KiCad component converter, we can convert KiCad files on the command line.

First install the component converter:

npm install -g kicad-component-converter

Next, run the following command to convert your KiCad files:

# Convert a directory ./my-footprints.pretty to a tscircuit project
kicad-component-converter convert-kicad-directory --input-dir ./my-footprints.pretty --output-dir ./my-tscircuit-footprints

Importing KiCad Components Programmatically

bun add kicad-component-converter

Import .kicad_mod files directly

kicad-component-converter 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 parser:

import { parseKicadModToCircuitJson } from "kicad-component-converter"
import { readFileSync } from "node:fs"

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

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