Write Arduino C++ or MicroPython, compile it with a real `arduino-cli` / ESP-IDF backend, and simulate it with **true CPU emulation** — AVR8, RP2040, Xtensa, RISC-V, and ARM — plus a full **ngspice analog circuit engine** for op-amps, transistors, diodes, and passive components.
19+ boards, 5 CPU architectures, **590+ electronic components**, custom-chip SDK, and a desktop app — without installing anything on your machine.
- **No installation required** — runs in the browser, or as a native desktop app for offline work.
- **Real CPU emulation** — avr8js, rp2040js, QEMU (Xtensa LX6/LX7, RISC-V RV32IMC, ARM Cortex-A53/A72/A76). Not toy simulators.
- **Digital + analog** — every digital pin is fed into a co-simulated SPICE netlist, so you get true voltages, currents, and waveforms (not just HIGH/LOW).
- **590+ interactive components** — LEDs, displays, sensors, transistors, op-amps, logic gates, motors, e-paper panels, instruments, and more.
- **Custom chips** — write your own chip in C, compile to WebAssembly, drop on the canvas, wire it up.
- **Multi-board canvases** — mix an Arduino, an ESP32, and a Raspberry Pi 3 on the same canvas and bridge them over UART.
- **Open-source (AGPLv3)** — inspect, modify, and self-host with Docker.
| **ARM Cortex-A** (QEMU backend) | Raspberry Pi Zero, Pi 1B+, Pi 2B, Pi 3B, Pi 4B, Pi 5 | QEMU `virt` / `raspi3b` |
Languages supported: **Arduino C++** on every board, **MicroPython** on Pico / Pico W / all ESP32 / ESP32-S3 / ESP32-C3 variants, **Python 3** on every Raspberry Pi.
See [Supported Boards](../README.md#supported-boards) for the full table with CPU clock speeds and FQBNs.
---
## What you can build
- **Digital sketches** — blink an LED, read a button, talk over Serial, drive an LCD, run a servo. The classic Arduino workflow, faster than flashing a real board.
- **Analog circuits** — 5V/GND rails, voltage dividers, op-amp filters, RC networks, transistor amplifiers. Probe with the on-canvas **voltmeter**, **ammeter**, and **oscilloscope**, or inject signals with the **function generator**.
- **Mixed-signal designs** — an ATmega reading a sensor through an op-amp buffer, an ESP32 driving a NeoPixel ring, a Pi 3 over UART to an Arduino acting as a slave. All co-simulated in one canvas.
- **Custom silicon** — model a 4-bit Intel 4004, a Z80, a 74HC595 shift register, or a 24LC256 EEPROM as a custom chip in C.
- **IoT prototypes** — ESP32 WiFi (SLIRP NAT), HTTP servers, MQTT, BLE advertising — all without a real radio.