Velxio — Free Multi-Board Emulator | Arduino · ESP32 · RP2040 · RISC-V · Raspberry Pi

Editor Examples Arduino Simulator Arduino Emulator ATmega328P Simulator Arduino Mega Simulator GitHub Discord Documentation

Free multi-board emulator running in your browser — 19 boards, 5 CPU architectures

Simulate Arduino, ESP32, Raspberry Pi Pico, RISC-V, and Raspberry Pi 3 code in your browser with real CPU emulation. 48+ interactive electronic components, Monaco Editor, Serial Monitor, arduino-cli compiler, and Library Manager — no cloud, no latency, no account required.

Features

  • Real AVR8 emulation: Arduino Uno (ATmega328p), Nano, Mega 2560, ATtiny85, Leonardo, Pro Mini at 16 MHz via avr8js
  • Raspberry Pi Pico & Pico W (RP2040, ARM Cortex-M0+ at 133 MHz) via rp2040js
  • ESP32-C3 / XIAO ESP32-C3 / SuperMini / CH32V003 (RISC-V RV32IMC/EC) — browser-native, no backend needed
  • ESP32 / ESP32-S3 / ESP32-CAM / Arduino Nano ESP32 (Xtensa LX6/LX7 at 240 MHz) via QEMU lcgamboa
  • Raspberry Pi 3B (ARM Cortex-A53, full Linux) via QEMU raspi3b — runs Python scripts with RPi.GPIO
  • 48+ wokwi interactive electronic components (LEDs, resistors, buttons, sensors, TFT displays, NeoPixel…)
  • Monaco Code Editor with full C++ / Python syntax highlighting
  • arduino-cli compilation backend — produces real .hex / .uf2 / .bin files
  • Serial Monitor with auto baud-rate detection and send
  • Library Manager for Arduino libraries
  • Multi-file workspace (.ino, .h, .cpp, .py)
  • Wire system with orthogonal routing
  • ILI9341 TFT display simulation
  • I2C, SPI, USART, ADC, PWM support
  • Multi-board canvas: mix Arduino + ESP32 + Raspberry Pi in one simulation
  • arduino-cli compilation backend — produces real .hex / .uf2 files
  • Serial Monitor with auto baud-rate detection and send
  • Library Manager for Arduino libraries
  • Multi-file workspace (.ino, .h, .cpp)
  • Wire system with orthogonal routing
  • ILI9341 TFT display simulation
  • I2C, SPI, USART, ADC, PWM support
  • Docker standalone image — deploy anywhere with one command
  • Supported Boards

    • Arduino Uno (ATmega328P) — full AVR8 emulation at 16 MHz
    • Arduino Nano (ATmega328P) — full AVR8 emulation at 16 MHz
    • Arduino Mega 2560 (ATmega2560) — 256 KB flash, 54 digital pins, 4 serial ports
    • ATtiny85 — AVR, 8 KB flash, DIP-8, all 6 I/O pins emulated
    • Arduino Leonardo (ATmega32u4) — USB HID capable AVR
    • Arduino Pro Mini (ATmega328P) — 3.3 V / 5 V variants
    • Raspberry Pi Pico (RP2040) — ARM Cortex-M0+ at 133 MHz
    • Raspberry Pi Pico W (RP2040) — ARM Cortex-M0+ + WiFi
    • ESP32-C3 DevKit (RISC-V RV32IMC) — 160 MHz, browser-native
    • Seeed XIAO ESP32-C3 (RISC-V RV32IMC) — compact, browser-native
    • ESP32-C3 SuperMini (RISC-V RV32IMC) — mini form factor
    • CH32V003 (RISC-V RV32EC) — 48 MHz, ultra-compact DIP-8
    • ESP32 DevKit V1 / C V4 (Xtensa LX6) — 240 MHz, WiFi, QEMU
    • ESP32-S3 (Xtensa LX7) — 240 MHz, dual-core, QEMU
    • ESP32-CAM (Xtensa LX6) — camera module, QEMU
    • Seeed XIAO ESP32-S3 (Xtensa LX7) — compact, QEMU
    • Arduino Nano ESP32 (Xtensa LX6) — Arduino form factor, QEMU
    • Raspberry Pi 3B (ARM Cortex-A53) — full Linux OS via QEMU raspi3b, runs Python

    Get Started

    Open the Editor — no installation needed.
    Self-host with Docker: docker run -d -p 3080:80 ghcr.io/davidmonterocrespo24/velxio:master

    Documentation

    Browse the full Velxio documentation to learn how to set up, configure, and extend the emulator:

    • Introduction — What is Velxio and why use it?
    • Getting Started — Hosted editor, Docker, and manual setup
    • Emulator Architecture — AVR8 and RP2040 CPU emulation internals
    • Components Reference — All 48+ interactive electronic components
    • Project Architecture — System design, data flows, and stores
    • Wokwi Libraries — avr8js, wokwi-elements, rp2040js integration
    • MCP Server — AI agent integration via Model Context Protocol
    • Project Status — All implemented features and troubleshooting
    • Roadmap — Implemented, in-progress, and planned features

    Frequently Asked Questions

    Is Velxio free?
    Yes. Velxio is free and open-source under the GNU AGPLv3 license. A commercial license is available for proprietary integrations.
    Does Velxio work offline?
    The simulation engine runs entirely in the browser. Compilation requires the local arduino-cli backend. Self-hosted deployments work fully offline once running.
    Is Velxio a Wokwi alternative?
    Yes. Velxio is a free, self-hosted alternative to Wokwi. It uses the same avr8js and wokwi-elements open-source libraries but runs on your own machine.
    What boards are supported?
    Arduino Uno (ATmega328p / AVR8), Arduino Nano, Arduino Mega 2560, Raspberry Pi Pico (RP2040), ESP32-C3 (RISC-V), and more. 17 boards in total.

    Free Online Arduino Simulator

    Velxio is a free online Arduino simulator with real AVR8 emulation at 16 MHz. Simulate Arduino code with 48+ interactive electronic components directly in your browser — no install, no account required. Open Arduino Simulator →

    • Arduino Uno (ATmega328P) simulation at 16 MHz
    • 48+ visual components: LEDs, sensors, displays, servos
    • Serial Monitor with auto baud-rate detection
    • Multi-file sketch support (.ino, .h, .cpp)
    • Free and open-source (GNU AGPLv3)

    Arduino Emulator — Real AVR8 & RP2040 Emulation

    Velxio is a cycle-accurate Arduino emulator built on avr8js and rp2040js. Every AVR opcode is faithfully emulated at 16 MHz — the same silicon behavior as real hardware. Open Arduino Emulator →

    • All 135 AVR8 instructions emulated
    • Hardware timers (Timer0/1/2) with PWM, CTC, and overflow interrupts
    • 10-bit ADC, full USART0 (TX/RX), SPI, I2C
    • RP2040 dual-core ARM Cortex-M0+ via rp2040js
    • RISC-V RV32IMC (ESP32-C3) emulation in browser

    ATmega328P Simulator

    Simulate ATmega328P firmware exactly as it runs on Arduino Uno and Nano. Full AVR8 emulation: PORTB, PORTC, PORTD, Timer0/1/2, ADC, USART0, and all interrupt vectors. Open ATmega328P Simulator →

    • ATmega328P: 32 KB flash, 2 KB SRAM, 16 MHz
    • GPIO: PORTB (pins 8–13), PORTC (A0–A5), PORTD (0–7)
    • Timer0 (8-bit), Timer1 (16-bit), Timer2 (8-bit) — all PWM modes
    • 10-bit ADC, 6 analog channels (A0–A5)
    • USART0 with configurable baud rate

    Arduino Mega 2560 Simulator

    Simulate Arduino Mega 2560 (ATmega2560) code for free. 256 KB flash, 54 digital pins, 16 analog inputs, 4 hardware serial ports (Serial, Serial1, Serial2, Serial3), and 6 hardware timers. Open Mega 2560 Simulator →

    • ATmega2560: 256 KB flash, 8 KB SRAM, 16 MHz
    • 54 digital I/O pins (PORTA through PORTL)
    • 16 analog input channels (A0–A15), 10-bit ADC
    • 4 hardware USART channels: Serial0–3
    • 6 hardware timers: Timer0–5 (including three 16-bit)
    • 15 PWM output pins