app
KiCad - the KiCad Bridge
Public Made by Adomby adom
Drive your own KiCad from an AI, in the background: open every editor, read the whole board as data (the EDA Bridge Standard board model), stack-up, part heights, netlists, place, route, pour, DRC and exports.
← Commit history
1.0.78: 1.0.78: SPICE simulation from a KiCad schematic, headless, through the ngspice KiCad installs.
- **kicad_simulate (new, wiki #89):** runs a sheet through ngspice, the simulator KiCad itself uses.
- Analyses: transient, AC, DC sweep or operating point, given in the call or carried by the schematic.
- Probes are node voltages V(/NET) and source currents I(V1). Each comes back downsampled with its first, last, min and max (AC as dB and phase), and as a CSV file.
- ngspice runs in a child process, so a circuit that crashes it never takes the bridge down, and a failed analysis returns ngspice's own message.
- Checked: an RC low-pass of 1k and 100n is -2.99 dB and -44.9 degrees at 1.58 kHz, and passes 0.85 of a 1 kHz sine.
- **kicad_export_spice (new):** KiCad's own SPICE netlist of a sheet, with its elements, its analyses and the model files it includes.
- **Engine:** adom-eda-checks 0.10.4 (standard 0.13.4): plan_route keeps a pour holding the route's own end pad out of avoidPours, echoes its pour settings, and smooths grid staircases into straight and 45-degree segments.
1 file changed
+5−3
README.md+5−3@@ -257,7 +257,7 @@ viewer. This is how every 3D shot above exists. <!-- verbs:start (tools/readme_verbs.py writes this) --> -Every verb of this build (288, `kicad_describe` is the live catalog with inputs, hints and pitfalls). A name marked *standard* is the EDA Bridge Standard's name for the verb after the arrow.+Every verb of this build (290, `kicad_describe` is the live catalog with inputs, hints and pitfalls). A name marked *standard* is the EDA Bridge Standard's name for the verb after the arrow. **Board model and reads (EDA Bridge Standard)** (12) @@ -427,7 +427,7 @@ Every verb of this build (288, `kicad_describe` is the live catalog with inputs, | `kicad_set_design_rules` | Stage a fab's .kicad_dru next to a board and run DRC with it. | | `kicad_zone_state` | Read every zone on the live board with KiCad's filled copper area per layer and the coverage. | -**Checks, exports and manufacturing** (25)+**Checks, exports and manufacturing** (26) | Verb | What it does | |---|---|@@ -446,6 +446,7 @@ Every verb of this build (288, `kicad_describe` is the live catalog with inputs, | `kicad_export_odb` | Export the board as ODB++ via kicad-cli (zip by default). | | `kicad_export_pdf` | Plot a board or schematic to PDF via kicad-cli. | | `kicad_export_pos` | Export the pick-and-place (component position / CPL) file from a board via kicad-cli, optionally reformatted for a fab's assembly service. |+| `kicad_export_spice` | Export a schematic's SPICE netlist with KiCad's own exporter (kicad-cli), headless, and say what it holds: its elements, the analyses the schematic carries, and the model files it includes. | | `kicad_export_step` | Export a STEP model of the board via kicad-cli. | | `kicad_export_svg` | Plot a board or schematic to SVG via kicad-cli. | | `kicad_fab_check` | Will a fab make this board? Its smallest features (track, clearance rule, via and pad holes and rings, SMD pads, edge clearance, hole spacing, silkscreen text and lines, layers, size) measured and compared with a fab's limits from adom/pcb-design-rules, each finding naming the fab's page and the date it was read; or with limits you give. |@@ -466,7 +467,7 @@ Every verb of this build (288, `kicad_describe` is the live catalog with inputs, | `kicad_project_rename` | Rename a project: the .kicad_pro, root .kicad_sch, .kicad_pcb, .kicad_prl (and .kicad_dru, backups folder), with the references inside updated (project file entries, every schematic's instance headers, the board's sheet references and title). Refused while KiCad has the project open. | | `kicad_project_snapshot` | Timestamped copy of the project's files into <project>/snapshots/<stamp>[-label]/, plus schematic and board PDFs made with kicad-cli. | -**Windows, editors, install and the bridge** (116)+**Windows, editors, install and the bridge** (117) | Verb | What it does | |---|---|@@ -572,6 +573,7 @@ Every verb of this build (288, `kicad_describe` is the live catalog with inputs, | `kicad_silk_designators` | Place every reference designator the way assembly houses want: one size, upright, beside its own part, clear of every pad (JLCPCB: 0.15 mm), every other part's body and the other designators, inside the board, then read back from KiCad. Parts with no clear spot are reported, not forced onto pads. | | `kicad_silk_state` | The silkscreen as it stands: every part's body box, its designator and value as placed (text, position, size, rotation, shown), and the free texts and graphics on both silkscreen layers. | | `kicad_silkscreen_prep` | Get the silkscreen off the copper for fab: the Gerbers set to subtract the solder mask from the silkscreen (KiCad's own clipping), silkscreen lying outside the board deleted, designators that sit on pads moved beside their parts, and KiCad's silkscreen DRC findings counted before and after. |+| `kicad_simulate` | Simulate a schematic with SPICE, headless: KiCad's netlist of the sheet run by the ngspice library KiCad installs, with the analysis you give (transient, AC, DC sweep, operating point) or the one the schematic carries; each probe comes back downsampled with its first, last, min and max values (AC as dB and phase), and as a CSV file. | | `kicad_state` | KiCad's full state of the union: every owned window as inline base64 PNG + logical state. | | `kicad_status` | Bridge health, KiCad version, install location and uptime. | | `kicad_symbol_prims` | A library symbol's drawing: primitives counted by kind, the body rectangle, the polylines' bounding box, units and body styles, the footprint link and filters. Read only. |