Importing from KiCad
Overview
You can import KiCad components or projects into tscircuit.
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 componentkicad_sym- Schematic symbol file for a single component
- Files for KiCad projects
kicad_pro- KiCad project filekicad_pcb- KiCad PCB board filekicad_sch- KiCad Schematic board file
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