Velxio
Emulate Arduino, ESP32 & Raspberry Pi. in your browser. Write code, compile, and run on 19 real boards — Arduino Uno, ESP32, ESP32-C3, Raspberry Pi Pico, Raspberry Pi 3, and more. No hardware, no cloud, no limits.. Discord: https://discord.gg/3mARjJrh4E
Install / Use
/learn @davidmonterocrespo24/VelxioREADME
Velxio: Arduino & Embedded Board Emulator
Live at velxio.dev
A fully local, open-source multi-board emulator. Write Arduino C++ or Python, compile it, and simulate it with real CPU emulation and 48+ interactive electronic components — all running in your browser.
19 boards · 5 CPU architectures: AVR8 (ATmega / ATtiny), ARM Cortex-M0+ (RP2040), RISC-V RV32IMC/EC (ESP32-C3 / CH32V003), Xtensa LX6/LX7 (ESP32 / ESP32-S3 via QEMU), and ARM Cortex-A53 (Raspberry Pi 3 Linux via QEMU).
Support the Project
Velxio is free and open-source. Building and maintaining a full multi-board emulator takes a lot of time — if it saves you time or you enjoy the project, sponsoring me directly helps keep development going.
| Platform | Link | | --- | --- | | GitHub Sponsors (preferred) | github.com/sponsors/davidmonterocrespo24 | | PayPal | paypal.me/odoonext |
Your support helps cover server costs, library maintenance, and frees up time to add new boards, components, and features. Thank you!
Try it now
https://velxio.dev — no installation needed. Open the editor, write your sketch, and simulate directly in the browser.
To self-host with Docker (single command):
docker run -d -p 3080:80 ghcr.io/davidmonterocrespo24/velxio:master
Then open http://localhost:3080.
Screenshots

Raspberry Pi Pico simulation — ADC read test with two potentiometers, Serial Monitor showing live output, and compilation console at the bottom.

Arduino Uno driving an ILI9341 240×320 TFT display via SPI — rendering a real-time graphics demo using Adafruit_GFX + Adafruit_ILI9341.

Library Manager loads the full Arduino library index on open — browse and install libraries without typing first.

Component Picker showing 48 available components with visual previews, search, and category filters.

Multi-board simulation — Raspberry Pi 3 and Arduino running simultaneously on the same canvas, connected via serial. Mix different architectures in a single circuit.

ESP32 simulation with an HC-SR04 ultrasonic distance sensor — real Xtensa emulation via QEMU with trigger/echo GPIO timing.
Supported Boards
<table> <tr> <td align="center"><img src="docs/img/boards/pi-pico.png" width="140" alt="Raspberry Pi Pico"/><br/><b>Raspberry Pi Pico</b></td> <td align="center"><img src="docs/img/boards/pi-pico-w.png" width="140" alt="Raspberry Pi Pico W"/><br/><b>Raspberry Pi Pico W</b></td> <td align="center"><img src="docs/img/boards/esp32-devkit-c-v4.png" width="140" alt="ESP32 DevKit C"/><br/><b>ESP32 DevKit C</b></td> <td align="center"><img src="docs/img/boards/esp32-s3.png" width="140" alt="ESP32-S3"/><br/><b>ESP32-S3</b></td> </tr> <tr> <td align="center"><img src="docs/img/boards/esp32-c3.png" width="140" alt="ESP32-C3"/><br/><b>ESP32-C3</b></td> <td align="center"><img src="docs/img/boards/xiao-esp32-c3.png" width="140" alt="Seeed XIAO ESP32-C3"/><br/><b>Seeed XIAO ESP32-C3</b></td> <td align="center"><img src="docs/img/boards/esp32c3-supermini.png" width="140" alt="ESP32-C3 SuperMini"/><br/><b>ESP32-C3 SuperMini</b></td> <td align="center"><img src="docs/img/boards/esp32-cam.png" width="140" alt="ESP32-CAM"/><br/><b>ESP32-CAM</b></td> </tr> <tr> <td align="center"><img src="docs/img/boards/xiao-esp32-s3.png" width="140" alt="Seeed XIAO ESP32-S3"/><br/><b>Seeed XIAO ESP32-S3</b></td> <td align="center"><img src="docs/img/boards/arduino-nano-esp32.png" width="140" alt="Arduino Nano ESP32"/><br/><b>Arduino Nano ESP32</b></td> <td align="center"><img src="docs/img/boards/Raspberry_Pi_3.png" width="140" alt="Raspberry Pi 3B"/><br/><b>Raspberry Pi 3B</b></td> <td align="center">Arduino Uno · Nano · Mega 2560<br/>ATtiny85 · Leonardo · Pro Mini<br/>(AVR8 / ATmega)</td> </tr> </table>| Board | CPU | Engine | Language | | ----- | --- | ------ | -------- | | Arduino Uno | ATmega328p @ 16 MHz | avr8js (browser) | C++ (Arduino) | | Arduino Nano | ATmega328p @ 16 MHz | avr8js (browser) | C++ (Arduino) | | Arduino Mega 2560 | ATmega2560 @ 16 MHz | avr8js (browser) | C++ (Arduino) | | ATtiny85 | ATtiny85 @ 8 MHz (int) / 16 MHz (ext) | avr8js (browser) | C++ (Arduino) | | Arduino Leonardo | ATmega32u4 @ 16 MHz | avr8js (browser) | C++ (Arduino) | | Arduino Pro Mini | ATmega328p @ 8/16 MHz | avr8js (browser) | C++ (Arduino) | | Raspberry Pi Pico | RP2040 @ 133 MHz | rp2040js (browser) | C++ (Arduino) | | Raspberry Pi Pico W | RP2040 @ 133 MHz | rp2040js (browser) | C++ (Arduino) | | ESP32 DevKit V1 | Xtensa LX6 @ 240 MHz | QEMU lcgamboa (backend) | C++ (Arduino) | | ESP32 DevKit C V4 | Xtensa LX6 @ 240 MHz | QEMU lcgamboa (backend) | C++ (Arduino) | | ESP32-S3 | Xtensa LX7 @ 240 MHz | QEMU lcgamboa (backend) | C++ (Arduino) | | ESP32-CAM | Xtensa LX6 @ 240 MHz | QEMU lcgamboa (backend) | C++ (Arduino) | | Seeed XIAO ESP32-S3 | Xtensa LX7 @ 240 MHz | QEMU lcgamboa (backend) | C++ (Arduino) | | Arduino Nano ESP32 | Xtensa LX6 @ 240 MHz | QEMU lcgamboa (backend) | C++ (Arduino) | | ESP32-C3 DevKit | RISC-V RV32IMC @ 160 MHz | RiscVCore.ts (browser) | C++ (Arduino) | | Seeed XIAO ESP32-C3 | RISC-V RV32IMC @ 160 MHz | RiscVCore.ts (browser) | C++ (Arduino) | | ESP32-C3 SuperMini | RISC-V RV32IMC @ 160 MHz | RiscVCore.ts (browser) | C++ (Arduino) | | CH32V003 | RISC-V RV32EC @ 48 MHz | RiscVCore.ts (browser) | C++ (Arduino) | | Raspberry Pi 3B | ARM Cortex-A53 @ 1.2 GHz | QEMU raspi3b (backend) | Python |
Features
Code Editing
- Monaco Editor — Full C++ / Python editor with syntax highlighting, autocomplete, minimap, and dark theme
- Multi-file workspace — create, rename, delete, and switch between multiple
.ino/.h/.cpp/.pyfiles - Arduino compilation via
arduino-clibackend — compile sketches to.hex/.binfiles - Compile / Run / Stop / Reset toolbar buttons with status messages
- Compilation console — resizable output panel showing full compiler output, warnings, and errors
Multi-Board Simulation
AVR8 (Arduino Uno / Nano / Mega / ATtiny85 / Leonardo / Pro Mini)
- Real ATmega328p / ATmega2560 / ATmega32u4 / ATtiny85 emulation at native clock speed via avr8js
- Full GPIO — PORTB, PORTC, PORTD (Uno/Nano/Mega); all ATtiny85 ports (PB0–PB5)
- Timer0/Timer1/Timer2 —
millis(),delay(), PWM viaanalogWrite() - USART — full transmit and receive, auto baud-rate detection
- ADC —
analogRead(), voltage injection from potentiometers on canvas - SPI — hardware SPI peripheral (ILI9341, SD card, etc.)
- I2C (TWI) — hardware I2C with virtual device bus
- ATtiny85 — all 6 I/O pins, USI (Wire), Timer0/Timer1, 10-bit ADC; uses
AttinyCore - ~60 FPS simulation loop via
requestAnimationFrame
RP2040 (Raspberry Pi Pico / Pico W)
- Real RP2040 emulation at 133 MHz via rp2040js — ARM Cortex-M0+
- All 30 GPIO pins — input/output, event listeners, pin state injection
- UART0 + UART1 — serial output in Serial Monitor; Serial input from UI
- ADC — 12-bit on GPIO 26–29 (A0–A3) + internal temperature sensor (ch4)
- I2C0 + I2C1 — master mode with virtual device bus (DS1307, TMP102, EEPROM)
- SPI0 + SPI1 — loopback default; custom handler supported
- PWM — available on any GPIO pin
- WFI optimization —
delay()skips ahead in simulation time instead of busy-waiting - Oscilloscope — GPIO transition timestamps at ~8 ns resolution
- Compiled with the earlephilhower arduino-pico core
See docs/RP2040_EMULATION.md for full technical details.
ESP32 / ESP32-S3 (Xtensa QEMU)
- Real Xtensa LX6/LX7 dual-core emulation via lcgamboa/qemu
- Full GPIO — all 40 GPIO pins, direction tracking, state callbacks, GPIO32–39 fix
- UART0/1/2 — multi-UART serial, baud-rate detection
- ADC — 12-bit on all ADC-capable pins (0–3300 mV injection from potentiometers)
- I2C — synchronous bus with virtual device response
- SPI — full-duplex with configurable MISO byte injection
- RMT / NeoPixel — hardware RMT decoder, WS2812 24-bit GRB frame decoding
- LEDC/PWM — 16-channel duty cycle readout, LEDC→GPIO mapping,
Related Skills
node-connect
348.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
348.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
348.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
