In developmentNot released yet — features and data may change without notice.

Learn while you build

What is your code missing as a circuit?

Upload a sketch and we read which parts sit on which pins, then run it in your browser. After that we fill in what tends to go missing on the way to a breadboard. The 330Ω in front of an LED, the pull-down on a button. What went in and why is always written beside it.

No account neededCode only, no schematicFree for now

What is built so far

How far one sketch travels, in real screens

The six scenes below are not mockups. They are screens this site actually produced while working on the example uno_temp_relay.ino (a greenhouse controller: DS18B20, relay, OLED, ultrasonic). The first four you can use right now; the last two make the board and are not open yet.

L0 sim — Run the sketch as-is

Run the sketch as-is

The ATmega328P in your browser (avr8js) runs the .hex that arduino-cli built. Virtual DS18B20 and HC-SR04 answer over real 1-Wire and echo pulses, so the serial monitor shows T=25.1C dist=42cm.

Run it in the playground

Captured 2026-09-08 · source Arduino Uno → target ESP32-WROOM-32E · verification P1–P5 PASS · board 63×49 mm · KiCad DRC 0 violations

8passesDeterministic verification P1–P8
22modulesCatalog modules with reference circuits
4MCUATmega328P · RP2040 · ESP32 · ESP32-C3
0violationsKiCad DRC · ESP32 PoC board 63×49 mm

The 4-level continuum

Simulator to breadboard, the stretch that is open

One project starts in the simulator and carries through to a breadboard diagram. Pin names stay the same as the level changes. L2 and L3, which make the board, are built but not open yet.

L0
Simulator

Zero hardware. Runs instantly in the browser on avr8js and rp2040js; ESP32 runs on server-side QEMU.

Runnable simulation · pin waveforms

L1
Breadboard

A wiring picture of the modules inferred from your code, generated automatically and linked to the simulator.

Wiring diagram · parts list

L2
Shield / HATNot yet open

Your first PCB. The form factor fixes the outline and connectors, so the hard decisions disappear.

Gerber · BOM · board render

L3
Module on boardNot yet open

ESP32-WROOM or RP2040 placed like a component. The module carries the certification (KC · MIC).

Gerber · BOM · CPL · certification checklist

Same project · same code · same pin contract

How it works

We never ask you to draw a circuit. We take the code you already have.

The #include list is the parts list. You create nothing new — you upload the sketch you already wrote.

  1. The #include list is the parts list

    Parts come from library includes and constructors; the pin contract and I²C addresses come from #define, pinMode and Wire.beginTransmission. We only ask about what cannot be inferred.

    DallasTemperature.h → DS18B20
  2. Expand to a production circuit — and explain why

    The dev board is replaced by an MCU module plus support circuitry. We fill in the power tree, decoupling, pull-ups, flyback diodes and level shifters, and attach a "why?" to every auto-inserted part. This is an educational product.

    D1 1N4148 — relay coil back-EMF
  3. AI proposes, a deterministic verifier decides

    An AI proposal cannot use parts outside the catalog and must pass golden patterns, ERC, the pin contract, N-sample consensus and KiCad DRC to be adopted. If any step fails we fall back to the rule-based expander. There is no AI in the verifier.

    adopted_source: ai | deterministic
  4. What is missing, and why it is needed

    Missing parts are filled into the breadboard drawing with the reason attached. An LED gets a 330Ω series resistor; a button read with pinMode(INPUT) gets a 10kΩ pull-down. If the sketch uses INPUT_PULLUP, the far leg goes to GND instead. The choice comes from the code, so the circuit never contradicts it.

    R1 330Ω — limits the LED current on D13
blink_temp_relay.inoArduino Uno · 22 lines
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 4      // DS18B20 data
#define RELAY_PIN    7      // heater relay
#define LED_PIN      13

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(LED_PIN, OUTPUT);
  sensors.begin();
}

void loop() {
  sensors.requestTemperatures();
  float c = sensors.getTempCByIndex(0);
  digitalWrite(RELAY_PIN, c < 24.0);
  digitalWrite(LED_PIN, c < 24.0);
  delay(1000);
}
Read from the codeExpander output
  • DS18B20 temperature sensorDallasTemperature.h · D4R3 4.7 kΩ 1-Wire pull-up inserted — datasheet value
  • 1-channel relayRELAY_PIN 7 · OUTPUTQ1 NPN driver + D1 flyback — a GPIO cannot source the coil current, and the back-EMF at turn-off destroys the transistor
  • LEDSTATUS_LED 9 · OUTPUT330 Ω series resistor — current limit
  • ESP32-WROOM-32E (L3 target)Arduino Uno → module swapEN 10 kΩ pull-up + 0.1 µF, 3V3 10 µF + 0.1 µF — Espressif hardware design guidelines · confirmed on 4 Olimex boards

Three gates

Passing simulation ≠ safe to manufacture. So we never mix them.

Logic, electrical and physical are always shown separately. The moment you merge the three into one green light, you repeat exactly how breadboards betray beginners.

① Logic
Judged by the simulator

Does the code do what you meant? The browser sim records pin directions and toggles; the server re-derives the expectation from the sketch and only then passes the gate.

② Electrical
ERC 0 · DRC 0

Will it survive? Voltage domains, I²C address clashes, current budget, flyback, decoupling, boot-strap pins — and KiCad DRC.

③ Physical
Confirmed by you — never automatic

Does it really work? Power noise, EMI, sensor timing drift and part tolerances are invisible to a simulator. This gate only turns on when you tick it yourself.

Rules decide ① and ②. ③ never turns green on its own.
The 8 electrical passesAll deterministic
#PassWhat it checksTool
P1SchemaAre parts, nets and pins structurally valid?Pydantic
P2Catalog groundingDoes every part ID and pin name exist in the catalog? Hallucinations rejected on the spotcatalog
P3Golden patternsRequired support circuits per MCU, regulator and interface, extracted from real open-source boardscorpus/patterns.yaml
P4ERC rulesVoltage domains · I²C clashes · pull-ups · current budget · flyback · decoupling · boot-strap pinsrule engine
P5Pin contract1:1 mapping of logical pins · PWM/ADC/interrupt capability matchespin contract
P6ConsensusMajority agreement of N normalized AI topologies — otherwise fall backN-sample vote
P7KiCad DRCGenerate board → route with Freerouting → kicad-cli pcb drc exit 0KiCad 9 · separate container
P8Sim regressionRecompile the same sketch for the target with pins.h applied; compare pin activity before and afteravr8js · rp2040js · QEMU

P1–P6 run as unit tests without KiCad, P7 runs in a KiCad 9 container, P8 is browser simulation plus server comparison. An error at any stage means the proposal is not adopted.

It actually runs

Run an example sketch in your browser right now.

No login. Compiled on the server, executed in the browser on avr8js — with pin states, a serial monitor and virtual sensors attached.

Full playground

Supported boards · modules

Start on 2 dev boards, land on 4 L3 targets, with 22 modules.

We recommend modules that already carry certification (KC · MIC) first, to remove the certification burden at design time.

Starting boards (L0–L2)

Arduino Uno R3ATmega328P5 V
Seeed Studio XIAO ESP32C3ESP32-C33.3 V

Production targets (L3 · module on board)

ESP32-WROOM-32E module (on-board)ESP323.3 VKC技適FCCCE
ATmega328P-AU (Uno-compatible, on-board)ATmega328P5 Vno radio
ESP32-C3-WROOM-02 module (on-board)ESP32-C33.3 VKC技適FCCCE
Raspberry Pi Pico (RP2040) soldered as a moduleRP20403.3 Vno radio

Each of the 22 modules ships a KiCad symbol and footprint plus a reference circuit with decoupling, pull-ups and protection already in place, with a plain-language explanation.

Pricing

Everything is free right now

The simulator, sketch analysis, the verification report and the breadboard diagram are all yours with an account. We will set prices when the board files open.

Pricing details

Free

Available now
0

Everything available today

  • Unlimited simulator
  • Sketch analysis and verification report
  • Breadboard diagram with reasons
  • 53 examples

Maker

Not yet open
TBD

Shield / HAT boards

  • L2 conversion
  • Gerber and BOM

Production

Not yet open
TBD

Module on board

  • L3 conversion
  • CPL and certification checklist

Nothing is charged for the board side yet. We will say so again when it opens.

FAQ

Questions

Do I have to draw a circuit?

No. There is no schematic editor at all. Upload the .ino you already wrote or tick modules in the catalog, and we read the pin contract and parts list from the code. We only ask about what cannot be inferred.

Can I trust a circuit the AI made?

AI output is never used as-is. The AI only proposes; a proposal must pass catalog grounding → golden patterns (real open-source circuits) → ERC → pin contract → N-sample consensus → KiCad DRC to be adopted. If any step fails we fall back to the rule-based expander, and there is no AI in the verifier code. The report also records which proposal was adopted.

Which boards are supported?

Starting boards are the Arduino Uno and XIAO ESP32C3; L3 production targets are ESP32-WROOM-32E, ESP32-C3-WROOM-02, ATmega328P-AU and Raspberry Pi Pico (RP2040). Browser simulation covers AVR and RP2040; ESP32 runs on Espressif QEMU on the server. Raspberry Pi HATs come in a later phase.

Do I have to change my code?

Logical pin names stay as they are. If the MCU changes and physical pins move, we generate pins.h and show the change as a diff. The goal is a single #include "pins.h" line, and the P8 regression sim proves it by comparing pin activity before and after conversion.

Where can I use the generated files?

Gerber, drill, BOM and CPL are standard formats — any PCB tool or fab viewer opens them as-is. You also get the KiCad project, so you can keep editing in KiCad.

What about physical verification?

It is never passed automatically. Power noise, EMI, sensor timing drift and part tolerances are things the simulator and ERC/DRC cannot catch. The physical gate only turns on after you have checked the real board and ticked it yourself, and it is always displayed separately from the other two.

Start

One sketch is all it takes

53 examples are bundled, so you can arrive empty-handed. Upload one and we read the parts and pins and point at the missing circuit straight away.