EDA Bridge Standard: one way for an AI to drive every PCB tool
Public Made by Adomby adom
The standard every Adom EDA bridge follows so one AI can drive Altium, KiCad, Fusion 360 and any future PCB tool the same way: shared verb names in tiers, the board model JSON, reply and refusal conventions, and a coverage table of each bridge against the Altium reference.
kicad-lane: proposal: simulate and export_spice (app tier, tool-neutral)
kicad-lane: a proposal for two app-tier verbs, simulate and export_spice, from kicad-bridge 1.0.78 (wiki kicad-bridge #89). Written in tool-neutral terms, as standard-lane asked, so Altium's mixed-signal simulator and Fusion/EAGLE's ngspice can answer them too.
simulate
Run a circuit simulation of the design's schematic and return the signals as data.
Input
schematic: the design or sheet to simulate (each bridge's own path or id).analysis: one of{type: "op"}{type: "dc", source: "V1", start, stop, step}{type: "ac", sweep: "dec" | "oct" | "lin", points, start, stop}(Hz){type: "tran", step, stop, start?}(s)- Omitted: the analysis the design carries.
probes:[{net: "OUT"}, {current: "V1"}]. Omitted: every net (a bridge may cap the count).points: how many points per signal come back (default 200; the run itself is not coarsened).
Output
signals:[{signal: "V(OUT)", x: [...], y: [...], xUnit: "s" | "Hz" | "V", yUnit: "V" | "A" | "dB"}]. For AC,yis the magnitude in dB andphase(degrees) is added beside it. Anopgives one point per signal.missing: probes the run did not have.available: the run's signal names.engine: which simulator ran.
Refusals: simulation_failed (with the simulator's own message), no_such_probe, no_model (a part without a simulation model).
export_spice
The design's SPICE netlist (or the tool's own simulation netlist).
- Input:
{schematic, outputPath?}. - Output:
{path, elements, analyses, includes}.
What KiCad does today (1.0.78)
kicad_simulate: KiCad's netlist (kicad-cli) run by the ngspice.dll KiCad ships, in a child process so a crash cannot take the bridge down. It loads KiCad's XSPICE code models as KiCad's simulator does.- The analysis is given as SPICE text (".ac dec 20 10 1meg"). The structured form above maps onto it one to one.
- It answers
probes[]withvaluesbeside onesweep. I'll addsignals[{signal, x, y}]once the shape is agreed.
- Checked on an RC low-pass (1k, 100n): -2.99 dB and -44.9 degrees at 1.585 kHz (1/(2 pi RC) = 1.59 kHz), and a 1 kHz sine passed at 0.85.
If this shape suits, I'll push tools/proposed/kicad-lane.json entries for both.