esp32.diy

Velxio: Simulate ESP32 and Arduino Projects in Your Browser

Oct 11, 2026 · 5 min read

Beginner 3.2k stars 327 forks TypeScript NOASSERTION Updated 2026-10-10

The Monaco editor with an ESP32 blink sketch on the left, the circuit canvas on the right, and the Serial Monitor open at the bottom.

TL;DR Velxio is a browser-based multi-board emulator that lets you write Arduino C++, MicroPython, or ESP-IDF code, compile it, and run it on real CPU emulation — no hardware required. It supports 40 boards across five CPU families and over 150 interactive components, with an optional Docker image for self-hosting.
What you need
  • Arduino Uno
  • Arduino Nano
  • Arduino Mega 2560
  • ATtiny85
  • Raspberry Pi Pico
  • Raspberry Pi Pico W
  • ESP32 DevKit V1
  • ESP32-CAM
  • ESP32-S3 DevKit
  • ESP32-C3 DevKit
  • ESP32-C6 DevKit
  • XIAO ESP32-S3
  • XIAO ESP32-C3
  • Arduino Nano ESP32
  • STM32 Blue Pill
  • STM32 Black Pill
  • STM32F4 Discovery
  • M5Stack Cardputer ADV
  • M5Stack Core
  • Pimoroni Badger 2350
  • DFRobot UNIHIKER M10
  • Raspberry Pi 3
  • Raspberry Pi 5
Boards40 boards across 5 CPU families
LanguagesArduino C++, MicroPython, ESP-IDF, Python
Components150+ interactive parts
LanguageTypeScript
LicenseAGPL v3 (commercial license available)
Latest Releasev3.0.5

What You Will Build

Velxio is an open-source multi-board emulator and circuit simulator that runs entirely in your browser. Instead of buying hardware, installing SDKs, and wiring components on a physical bench, you open a webpage, pick a board, drop components onto a canvas, write your sketch, and press Play.

The result is a fully interactive simulation: LEDs blink, serial output scrolls in the monitor, potentiometers inject analog voltages, and an oscilloscope traces signals on any pin — all without touching a soldering iron or waiting for shipping. Because the emulation runs real compiled firmware against cycle-accurate CPU models, the code you test here is the same code you would flash to real silicon.

This makes Velxio especially practical for three situations: learning embedded programming before buying hardware, rapidly prototyping firmware logic you will later deploy to physical boards, and sharing reproducible circuit + code examples with a team or a class.

The component picker showing boards and modules with search and category filters across a catalog of 150+ parts.\2
The component picker showing boards and modules with search and category filters across a catalog of 150+ parts.
The examples gallery with more than 400 ready-to-run projects filterable by board, difficulty, and topic.\2
The examples gallery with more than 400 ready-to-run projects filterable by board, difficulty, and topic.
MicroPython running on an ESP32 with the REPL live in the terminal panel.\2
MicroPython running on an ESP32 with the REPL live in the terminal panel.
Emulated WiFi on ESP32 — the board joins a virtual access point and publishes messages through a public MQTT broker.\2
Emulated WiFi on ESP32 — the board joins a virtual access point and publishes messages through a public MQTT broker.

What You Need

To use the hosted version: nothing beyond a modern web browser. Navigate to velxio.dev, create a free account, and you have access to the full editor immediately. No installation, no drivers, no toolchain setup.

To self-host: a machine with Docker installed. The official image is published to GitHub Container Registry and bundles the compiler toolchain, the QEMU backend, and the web frontend in a single container.

The self-hosted image covers the first five board families out of the box:

STM32, Raspberry Pi Linux boards, and branded partner boards (M5Stack, Pimoroni, DFRobot, Seeed) are only available at velxio.dev.

Typical use cases

Prototype Without Hardware

Wire up sensors, displays, and logic ICs on the virtual canvas and test firmware logic before ordering a single component.

Learn Embedded Programming

Work through the 400+ built-in examples or write your own sketches in Arduino C++, MicroPython, or ESP-IDF with instant feedback from the Serial Monitor.

Debug with Real Instruments

Use the built-in oscilloscope and SPICE electrical layer to trace GPIO signals, measure voltages, and catch wiring faults the same way you would on a physical bench.

Share Reproducible Circuits

Share a project link so teammates or students open an identical board-and-code setup in their own browser — no environment setup required on their end.

How It Works

Velxio splits boards into two execution paths depending on the CPU family.

Browser boards — AVR (Arduino Uno, Nano, Mega, ATtiny85) and RP2040 (Raspberry Pi Pico, Pico W) — are emulated entirely inside the browser tab using avr8js and rp2040js respectively. Your sketch is compiled on the backend to a .hex or .bin file, then downloaded and executed locally at native clock speed. Nothing beyond the compiled binary leaves the backend; the simulation loop runs at roughly 60 FPS via requestAnimationFrame.

Server boards — the ESP32 family and STM32 — boot a real QEMU machine on the backend. QEMU streams GPIO state and serial data back to the canvas in real time, which is why ESP32 simulations can do things that are genuinely hard to emulate in a browser alone: emulated WiFi that actually joins a virtual access point and round-trips messages through a public MQTT broker, I2C and SPI buses talking to display drivers, and full ESP-IDF projects alongside Arduino sketches and MicroPython.

The Monaco editor (the same editor used in VS Code) handles code with syntax highlighting and autocomplete. arduino-cli on the backend handles compilation and produces the binary that feeds into either path. A SPICE-based electrical layer runs in parallel and shows currents, voltages, and shorts on the wires you draw.

Get Started in the Browser

The fastest path to a running simulation is the hosted editor:

  1. Open velxio.dev in a browser.
  2. Click New Project and choose a board — for a first experiment, pick ESP32 DevKit V1.
  3. Open the Component Picker (the icon in the toolbar) and drag an LED and a resistor onto the canvas. Connect them to a GPIO pin and GND.
  4. Write or paste a blink sketch in the Monaco editor on the left.
  5. Click Compile, wait for the compilation console to show success, then click Run.

The LED on the canvas starts toggling. Open the Serial Monitor at the bottom to see any Serial.println() output.

To try MicroPython instead, switch the language selector to MicroPython, rename your file to main.py, and click Run. The REPL appears in the terminal panel and accepts live input.

The Examples Gallery contains more than 400 ready-to-run projects filtered by board, difficulty, and topic — a good starting point if you want to see a specific peripheral or protocol in action before writing code from scratch.

Self-Host with Docker

If you want to run Velxio on your own infrastructure — a local machine, a home server, or a private cloud instance — one Docker command brings up the full stack:

docker run -d \
  --name velxio \
  -p 3080:80 \
  -v velxio-data:/app/data \
  -v velxio-arduino-libs:/root/.arduino15 \
  -v velxio-arduino-user-libs:/root/Arduino \
  -v velxio-ccache:/var/cache/ccache \
  -v velxio-build:/var/lib/velxio-build \
  ghcr.io/davidmonterocrespo24/velxio:master

Then open http://localhost:3080.

The five named volumes are important — do not skip them. Without them, every container restart wipes the ESP-IDF build cache, and the first compile after each restart takes 5–7 minutes instead of 5–30 seconds. With the volumes in place, subsequent compiles are fast because the toolchain cache persists across restarts.

To watch the container logs at any time:

docker logs -f velxio

The self-hosted instance does not require a license for personal or open-source use (AGPL v3). A commercial license is available separately for commercial deployments.

Ideas to Extend It — and Limitations to Know

Custom chips: Velxio includes a custom chip editor that lets you write your own IC in C, compile it to WebAssembly, and drop it on the canvas alongside standard boards. This is useful for modeling proprietary sensors or peripherals that are not yet in the catalog.

Instruments: The built-in oscilloscope can trace any GPIO pin. The SPICE-based electrical layer shows current flow, voltage levels, and short-circuit detection on the wires you draw between components, which helps debug wiring mistakes the same way a multimeter would on a real bench.

Multi-file projects: The editor supports multiple .ino, .h, .cpp, and .py files in a single workspace, so you can structure larger projects the same way you would for a physical deployment.

Limitations to keep in mind:

Verdict

Velxio removes the hardware barrier from embedded development entirely: a browser tab replaces a dev board, a USB cable, and a toolchain installation, while still compiling and running your actual firmware rather than interpreting it. The self-hosted Docker image makes it straightforward to run on private infrastructure for teams or classrooms, and the 400-example gallery gives newcomers a practical on-ramp to ESP32, Arduino, and Pico development. The main constraint to plan around is that STM32, Raspberry Pi Linux, and partner boards are hosted-only features — the self-hosted image is firmly focused on the AVR and ESP32 families.

Sources

github.comdavidmonterocrespo24/velxio — repository & README velxio.devOfficial website

Facts in this article come from the project's public README and GitHub metadata at the time of writing. Images belong to their respective owners and link back to the original source.