Skip to the content
2 layers120 × 80 mmReference, the printed circuit board in 3D

AI-assisted KiCad design toolkit with Go CLI, direct schematic/PCB writers, validation, and pinmap checks.

Size
120 × 80 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
12
Pads
103
Tracks, vias
229, 49
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
12 Jun 2026
Updated
4 Nov 2026

Overview

Reference is an open-source printed circuit board by dshills, from the dshills/KiCadAI repository on GitHub, published under the MIT licence. It is a 2-layer board of 120 × 80 mm with 17 parts on 12 nets, routed with 229 tracks and 49 vias.

It is built around the ESP32-WROOM-32E-N4, BMP280 and RC0805FR-0710KL, with the GRM21BR61A106KE19L, TSW-102-07-L-S and TSW-104-07-L-S among its other parts. Its parts include 6 capacitors, 4 resistors, 3 connectors, 2 ICs and 2 switches. It belongs with the ESP32 boards of this library.

Main components

8

README

README.md

KiCadAI

AI proposes. KiCadAI proves—or refuses.

KiCadAI turns bounded behavioral requirements into deterministic, evidence-backed native KiCad projects—and stops when it cannot prove a design inside its reviewed component, model, simulation, and physical-design envelope.

It is not a prompt-to-schematic wrapper or an unrestricted circuit oracle. The AI-facing boundary accepts behavior; deterministic code owns architecture and part selection, calculations, simulation, schematic and PCB generation, placement, routing, validation, and the final pass-or-refuse decision.

See The Proof

The featured demo asks for a protected 0.1 A/V programmable current output across supply, load, startup, temperature, and safe-operating-area corners. Its input names no component, topology, internal net, value, coordinate, layer, or route.

KiCad render of the generated protected programmable current output

sh
make public-demo

On the recorded KiCad 10.0.3 run, KiCadAI derived 43 candidate graphs, completed and simulated two competing physical architectures, performed 194 candidate simulations and 6,326 corner evaluations, selected real catalog parts and values, and then generated the same native KiCad project twice.

Required proofRecorded result
Behavioral architecture search2 complete simulation-passing architectures
Placement and routing15/15 components placed; 12/12 nets routed
Connectivity0 unconnected endpoints or DRC unconnected items
Writer correctness10/10 checks passed
KiCad ERC / strict DRC0 / 0 violations
Normalized KiCad round trip0 differences
Deterministic physical replay2 identical project hashes

Inspect the input, native KiCad files, screenshots, commands, compact evidence receipt, and video storyboard. The receipt binds the requirement, inventory, models, catalog, policy, architecture ranking, physical output, and verification results with content hashes. Run make public-demo-refusal to verify that an excessive thermal/SOA request exits unsuccessfully and emits no KiCad project.

This is an ERC/DRC-checked deterministic candidate, not a fabrication release. Human electrical, thermal, mechanical, compliance, and manufacturing review remains required.

What Makes It Different

  • Behavior in, proof out. The open-topology input schema rejects component, topology, model, internal-net, value, geometry, route, provider, and repair instructions.
  • Search is deterministic and bounded. Candidate generation, value selection, simulation corners, repairs, ranking, and tie-breaking are recorded and content-addressed.
  • KiCad is part of the evidence. KiCadAI writes native .kicad_sch, .kicad_pcb, and .kicad_pro files, then uses installed KiCad for ERC, strict DRC, and normalized round trips.
  • Failure is a valid result. Missing evidence, unsafe operating envelopes, unsupported behavior, exhausted search, incomplete routing, or validation failures stop project promotion instead of being papered over.
  • Claims have boundaries. Supported, experimental, and unsupported states are explicit; experimental output cannot receive a promotion-pass or fabrication-ready claim.

The full path is:

text
behavior → capability gate → topology/value search → trusted simulation
         → native schematic/PCB → placement/routing → KiCad + writer checks
         → identical replay → pass or refusal

Capability At A Glance

StateWhat it means todayEvidence
SupportedReviewed slices of analog, protected current output, low-energy nonlinear/switching, mixed-domain control, MCU, power-tree, sensor, interface, and functional hierarchical four-layer generation can reach deterministic KiCad-backed pass evidence.Project status, mixed-domain held-out audit, hierarchical four-layer audit
ExperimentalBroader AI-proposed graphs and capability expansion may generate inspectable artifacts only with explicit opt-in; they cannot be promoted as fabrication-ready.Capability gating, AI generation
UnsupportedArbitrary circuits and parts, mains/high-energy safety, RF power, unrestricted dense boards, unreviewed models, and automatic fabrication approval remain outside the proven envelope.AI readiness, roadmap

The current V18 capability extension adds a version-isolated, catalog-backed path for low-voltage, high-input-impedance, multi-output analog threshold requirements. Its public replay case passes deterministic search, coupled value selection, simulation, physical lowering, and two clean installed-KiCad promotions without changing the frozen V6–V17 evaluator paths. This remains a bounded capability, not arbitrary analog synthesis. See the V18 specification.

V19 tested version-isolated causal-graph invariants, reusable topology operations, and a deterministic depth-four compositional repair beam. Its bounded Phase 6 public evaluation completed all 24 cases twice but produced no passes and did not preserve V18's admitted pass. V19 is therefore permanently retired and excluded from the v1 supported surface; V18 remains the latest publicly admitted capability. See the V19 retirement audit.

The next version-isolated successor adds deterministic analysis, simulation- model, and solver admission to the production open-topology lane. It derives analysis needs from behavior, resolves only authenticated bundled or reviewed overlay model records, records exact model/parameter/source/solver digests, and refuses before search or numerical evaluation when the combination is not reproducible. Its frozen V20 public evaluation preserved the V18 pass and advanced the selected model-availability leaf to a later topology blocker. It remains an experimental post-v1 capability and does not change the v1 support claim. See the specification and public evidence examples.

V21 builds on that admitted V20 boundary with generic causal-topology completion and bounded repair. It derives structural obligations from behavior, terminal contracts, and the current graph; applies only canonical generic graph operations; and preserves exact V20 analysis/model/solver admission before any new topology work. The September 6 review found unsound structural certificates, evidence-hash errors, and bound-enforcement defects in its original evaluator. These are corrected in maintenance revision 1. The original 24-case evaluation is retained as historical evidence, not validation of the repaired code or proof of its previously claimed six-case advancement. A separate frozen maintenance run completed all 24 public cases twice and passed its advancement and preservation gates: four selected cases across four domains advance to a later behavioral-evidence blocker, all 16 unselected raw case objects remain byte-identical to V20, and the V18 pass and safety result are preserved. Outcomes are 1 pass, 6 unsupported, 1 unsafe, and 16 exhausted; there are no additional complete circuit passes. V21 remains experimental and does not change the v1 support claim. See the review and corrections and corrected V21 maintenance audit.

The subsequent V22 post-topology electrical-repair experiment completed all 24 public cases twice. Compact first-failed-gate diagnostics identified the four selected candidates' electrical blockers, but bounded generic control-terminal rebinding produced no additional complete pass. All case outcomes, full replay hashes, and gate records remain identical to corrected V21; the existing pass again clears both installed-KiCad promotions. Independent development fixtures passed, but do not count as corpus improvement. V22 remains experimental and does not expand v1. See the root-cause report, negative evaluation result, and timing/evidence-size observations.

V23 then isolated a generic stale op-amp clamp defect and added a bounded, version-isolated solver correction. Its separate frozen evaluation completed all 24 cases twice on September 10: 1 pass, 6 unsupported, 1 unsafe, and 16 exhausted, with no additional complete passes. All case outcomes, full synthesis replay hashes, and gate records match V22; the existing KiCad-backed pass and safety outcomes are preserved. The complete retained evidence is authenticated, but the capability-improvement criterion was not met. V23 remains experimental and does not expand v1. See the final results and validation.

The subsequent practical sensor/controller-board goal remains unachieved. Its original live baseline produced 0/8 complete boards. The renewed completion attempt stopped before paid evaluation: six human-authored development probes failed before electrical synthesis or native generation, with unresolved requirement/provider qualification and interface-encoding gaps. No new API requests or complete-board passes were claimed. The full short software suite passed, but that does not establish practical board readiness. See the negative readiness publication for retained clauses, evidence, source-bound checks and local-review limits.

The frozen nonlinear/switching corpus provides an additional adversarial check: five behavior-only positive cases pass, while two unsafe stress cases and one unsupported dynamic envelope fail closed without a physical project.

The independently frozen mixed-domain corpus composes sensing, decisions, feedback, nonlinear transfer, switching power, and protection without naming architectures or parts. Eight feasible requirements reach deterministic installed-KiCad pass evidence; one contradictory requirement and four unsafe or unsupported requirements fail closed. See the completion audit.

A separately frozen physical-quality corpus proves a bounded next step: four behavior-only mixed-signal, amplifier, protected-control, and regulated-power requirements produce functional child sheets and deterministic four-layer boards. Each passes two clean local installed-KiCad runs with complete routing, controlled return-path evidence, filled planes, clean ERC/strict DRC, writer correctness, and zero normalized round-trip differences. This is not a claim that arbitrary dense boards are supported.

Run It In Under Ten Minutes

Maintained source (newer than v1.0.1)

The schematic, capability explore, review, doctor, conformance, repro, adapter, and family workflows below were added after the v1.0.1 tag. Build the maintained source to use them; downloading v1.0.1 does not provide them. For a small schematic-first workflow that needs no API key, try:

sh
make build
bin/kicadai --output ./out/divider schematic example divider
bin/kicadai --output ./out/my-session schematic new

Open the generated report.html for component explanations, calculations and explicit check statuses. Add --require-erc before schematic to require native KiCad validation. See the guided schematic workflow. This produces a schematic candidate, not a board or fabrication approval.

Discover supported workflows with bin/kicadai capability explore. For bounded solver comparisons and compact failure replay, see numerical conformance and reproduction.

For an existing schematic, use review schematic; use doctor to diagnose local dependencies. See project review and local integrations for catalog self-test kits and the versioned NetForm adapter.

Published v1.0.1 binary

After installing and verifying v1.0.1, use its supported direct-file LED example instead. Put global flags before the command, and create the parent output directory first:

sh
mkdir -p ./out
kicadai --output ./out/led_demo generate-led-demo
# Optional minimal PCB output (not a placed/routed or manufacturing-ready board):
kicadai --output ./out/led_with_pcb --with-pcb generate-led-demo

The project files use the output directory's basename unless --name is set. Without --with-pcb, only a schematic and project are generated. These offline examples need neither an API key nor installed KiCad. Native ERC/DRC checks do require KiCad. These file-writer demos can report ERC/DRC findings; they are not clean-check acceptance examples (see check fixtures). v1.0.1 silently ignores trailing flags such as generate-led-demo --output DIR; maintained source rejects them before writing.

Released binaries require no Go installation. KiCad 10.0.3 is the supported v1 reference for installed-KiCad validation and promotion claims. KiCad 9 remains experimental for those claims. Supported source builds use the exact patched Go release in .go-version (currently 1.26.10) through Make; protoc is needed only when regenerating vendored protobuf bindings. See the v1 support contract and v1.0.1 installation guide. v1.0.1 is a security maintenance release; existing v1.0.0 users should replace their binary, not merely update system Go.

sh
git clone --branch main https://github.com/dshills/KiCadAI.git
cd KiCadAI
make public-demo

The demo detects standard macOS and Linux KiCad installations. If yours is in a different location, set KICADAI_KICAD_CLI, KICADAI_SYMBOLS_ROOT, and KICADAI_FOOTPRINTS_ROOT as shown in the demo instructions. The full raw search evidence can approach 1 GB; generated scratch output is kept in the ignored examples/.generated/ directory.

For a smaller first look without installed-KiCad proof, build the CLI and use the direct writers or checked-in educational examples:

sh
make build
./bin/kicadai --help
./bin/kicadai version

Release assets contain four platform binaries, RELEASE_MANIFEST.json, and SHA256SUMS. Download the matching binary and verify its checksum before installing it on your PATH. A source checkout can install to ~/.local/bin with make install; set INSTALL_DIR to choose another location. The project publishes a CLI rather than a supported Go library, so versioned go install is not the v1 installation contract.

See educational circuits, the CLI reference, and the preserved detailed capability record.

AI Generation

Compile an ordinary behavior-first request without allowing the provider to choose topology, parts, nets, or layout:

sh
kicadai \
  --file ./behavioral-request.txt \
  --provider openai \
  --ai-profile behavioral-intent-v1 \
  --output ./out/behavioral-request \
  intent compile

Only a ready result writes ./out/behavioral-request/.kicadai/behavioral-design-request.json. A clarification result writes a hash-bound follow-up template; an unsupported result writes stable capability-gap evidence and no executable design request. See Intent Planning for the follow-up and project-creation flow.

Run the recorded protected USB-C LED profile with KiCad-backed checks:

sh
mkdir -p ./out
kicadai --prompt-file examples/ai/usb_c_led_indicator_protected/prompt.txt \
  --provider recorded \
  --provider-record examples/ai/usb_c_led_indicator_protected/recorded-response.json \
  --output ./out/ai_usb_c_led_protected --overwrite \
  --kicad-cli /path/to/kicad-cli \
  --require-kicad-roundtrip --strict-diffs \
  design create

For a live request, load OPENAI_API_KEY from the shell or a secret manager and replace the recorded-provider flags with --provider openai. Provider output is strict-decoded and remains untrusted until deterministic and KiCad-backed gates pass.

Agents that already have a valid generic-circuit-v1 graph can avoid a provider:

sh
kicadai capability generation --json
kicadai --request ./graph.json circuit preflight
kicadai --symbols-root /path/to/kicad-symbols \
  --footprints-root /path/to/kicad-footprints \
  circuit create --request ./graph.json --output ./out/project --overwrite

For rejected generic graphs, run circuit repair-plan first. It selects an executable patch only when one safe correction is fully derived; otherwise it stops for review. See the CLI reference for the strict patch contract and evidence boundary.

See AI Generation for bounded and generic modes, live commands, evidence files, failure behavior, and current limits. AI agents should also follow the KiCadAI Agent Skill.

Reproduce Promotion Evidence

From an unmodified checkout, run:

sh
make promotion-bundle
make held-out-promotion-bundle

The command builds the repository CLIs, resolves the version and stock libraries locked by toolchain/kicad-promotion.lock.json, bootstraps the checksum-pinned distribution only when needed, executes every required scenario twice, verifies all promotion gates and deterministic comparisons, and writes one content-addressed bundle below .tmp/clean-checkout-promotion/bundles/. No manually configured KiCad or library paths are required. The output directory must not already exist. The held-out target uses the same locked toolchain and verifier with the versioned five-scenario matrix for the two newly supported families, writing below .tmp/held-out-capability-promotion/.

Use bundle-path.txt to locate the bundle. Its included files and semantic promotion claims can be verified offline:

sh
.tmp/clean-checkout-promotion/bin/kicadai-promotion verify \
  --bundle "$(cat .tmp/clean-checkout-promotion/bundle-path.txt)"

This is release-validation evidence for the supported corpus, not a claim that arbitrary designs or fabrication outputs are automatically qualified.

Schematic IR

The schematic design/layout IR is a strict JSON handoff for circuit intent, layout intent, and repair policy. It is not free-form natural language or KiCad S-expression syntax.

sh
kicadai --request examples/schematic-ir/led_indicator.json schematic-ir validate
kicadai --request examples/schematic-ir/led_indicator.json schematic-ir normalize
kicadai --request examples/schematic-ir/led_indicator.json \
  --output ./out/ir_led --overwrite schematic-ir write

See Intent Planning And AI Workflow and the CLI Reference.

Documentation

Start with the documentation index.

TopicReference
Featured end-to-end proofProtected Programmable Current Output
Current capabilities and limitsProject Status
v1 platforms, compatibility, and support boundarySupport Contract
Release history and safety reportingChangelog, Security
Detailed implementation recordCapability Record
Educational generated schematicsEducational Examples
Commands and live IPCCLI Reference
Natural-language provider workflowAI Generation
Behavioral compilation, structured intent, and planningIntent Planning
Circuit blocksCircuit Blocks
Components, symbols, and footprintsLibraries And Components
Placement and routingPlacement And Routing
Validation, writer checks, and round-tripValidation And Analysis
Clean-checkout release evidenceValidation And Analysis
Fabrication evidenceFabrication
Direct KiCad file writersKiCad File Writers
Tests, packages, and troubleshootingDevelopment Reference
Specifications, evidence, and auditsSpecs Index
Priorities toward broader autonomyRoadmap

Development

sh
make test
make lint
make build
make release-reproducibility

See Development Reference for focused tests, coverage, protobuf maintenance, package boundaries, and troubleshooting.

License

KiCadAI is licensed under the MIT License. Vendored KiCad API materials under third_party/kicad/ retain their upstream licenses.

Parts

17
QtyValueFootprintReferences
4100nFCapacitor_SMD:C_0805_2012MetricC1, C4, C5, C6
210kResistor_SMD:R_0805_2012MetricR1, R2
24.7kResistor_SMD:R_0805_2012MetricR3, R4
110uFCapacitor_SMD:C_0805_2012MetricC2
11uFCapacitor_SMD:C_0805_2012MetricC3
13V3 INPUTConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
13V3 UARTConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1BMP280 0x76Package_LGA:Bosch_LGA-8_2x2.5mm_P0.65mm_ClockwisePinNumberingU2
1BOOTButton_Switch_SMD:SW_SPST_B3U-1000PSW2
1ESP32-WROOM-32E-N4RF_Module:ESP32-WROOM-32EU1
1GPIO I2C SPIConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ3
1RESETButton_Switch_SMD:SW_SPST_B3U-1000PSW1

More from dshills/KiCadAI

3
  • 2 layers70 × 50 mmProtected programmable current output, the printed circuit board in 3D

    Protected programmable current output

    dshills/KiCadAI

    AI-assisted KiCad design toolkit with Go CLI, direct schematic/PCB writers, validation, and pinmap checks.

    15 parts7MIT
  • 2 layers54 × 24 mmPcb object correctness, the printed circuit board in 3D

    Pcb object correctness

    dshills/KiCadAI

    AI-assisted KiCad design toolkit with Go CLI, direct schematic/PCB writers, validation, and pinmap checks.

    3 parts7MIT
  • 2 layers50 × 20 mmDrc pass, the printed circuit board in 3D

    Drc pass

    dshills/KiCadAI

    AI-assisted KiCad design toolkit with Go CLI, direct schematic/PCB writers, validation, and pinmap checks.

    2 parts7MIT

Similar boards

  • 4 layers85 × 75 mmStarter, the printed circuit board in 3D

    Starter

    opensimgear/device-template

    Work-in-progress STM32G0B1 input/output module with USB HID or CDC-only profiles, Cyphal/CAN, persistent settings, ordered panel events, leased LED/display actions, KiCad hardware and native simulation.

    111 parts
  • 8 layers78 × 55 mmJetson AI Cam CopperPilot, the printed circuit board in 3D

    Jetson AI Cam CopperPilot

    CopperPilot/Jetson-AI-Cam-CopperPilot

    A carrier for Jetson Nano, Xavier NX and TX2 NX with two IMX219 cameras on a 39 mm stereo baseline, dual 4K outputs and CAN.

    305 parts15
  • 2 layers32.5 × 34.5 mmStandaloneLeakDetector, the printed circuit board in 3D

    StandaloneLeakDetector

    ncsurobotics/SW8E-StandaloneLeakDetector

    Standalone leak detector intended for use in LiPo battery hulls

    17 partsMIT
  • 2 layers100 × 75 mmAeroFC, the printed circuit board in 3D

    AeroFC

    angelowickramasinghe/Project-Drone

    AeroFC-1S 1S brushed micro-quad flight controller (KiCad) — schematic, PCB, Gerbers, LCSC BOM

    57 parts
  • 4 layers60 × 50 mmReceiver effects, the printed circuit board in 3D

    Receiver effects

    JMET04/aicad-agent

    Deterministic CAD/EDA agent plugin for 2D drawings, AutoCAD, SolidWorks, KiCad, review gates and auditable delivery.

    46 parts1MIT
  • 2 layers75 × 30 mmAvrdoper re, the printed circuit board in 3D

    Avrdoper re

    alexjx/avrdoper-re

    AVR-Doper RE is a USB in-system programmer (ISP) for AVR microcontrollers. It is a respin of the original AVR-Doper, updated with an ATmega328P controller, a USB-C connector, selectable 5 V or 3.3 V target power, and a…

    42 parts
  • 4 layers165 × 100 mmUsb scoring platform, the printed circuit board in 3D

    Usb scoring platform

    AndrewCraswell/agency

    Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.

    224 partsMIT
  • 8 layers55 × 40 mmCm5-nano compatible, the printed circuit board in 3D

    Cm5-nano compatible

    david0ha/astra-cm5-nano

    KiCad files and specifications for a 55 × 40 mm CM5 carrier board.

    74 parts

Questions

How big is the Reference PCB?

It measures 120 × 80 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Reference use?

17 parts, built around the ESP32-WROOM-32E-N4, BMP280, RC0805FR-0710KL and GRM21BR61A106KE19L. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Reference KiCad files?

From the dshills/KiCadAI repository on GitHub, at the commit this page was made from: the board is internal/boardfamily/reference/board.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Reference design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).