A free, open-source emulator for 19 embedded boards: Arduino, ESP32, Raspberry Pi, RISC-V , running real compiled code in your browser.
The best part: it's fully local.
No cloud dependency. No student accounts. No data leaving your network. Self-hostable with a single Docker container.
Universities and bootcamps can deploy it on their own servers and give every student access to a complete embedded development environment, for free.
I've been working on this for over a year, and just shipped v2.0 with ESP32 emulation (via QEMU), a custom RISC-V core, and Raspberry Pi 3 support that runs real Python
show comments
dmcrespo
Hey HN, I posted Velxio here a while back and got great feedback. Since then I've shipped a major update
What's new in v2:
- 19 boards across 5 CPU architectures (AVR8, Xtensa, RISC-V, ARM Cortex-M0+, ARM Cortex-A53)
- ESP32 emulation via QEMU (lcgamboa fork) — real flash images, ROM function emulation, GPIO/ADC/timers
- ESP32-C3 and CH32V003 run on a custom RISC-V core written in TypeScript, entirely in the browser
- Raspberry Pi 3B via QEMU raspi3b — boots real Pi OS, runs Python
- Realistic sensor simulation: DHT22 (40-bit protocol timing), HC-SR04 (trigger/echo), WS2812B NeoPixel (GRB decoding)
- 48+ electronic components from wokwi-elements
Architecture:
- AVR, RP2040, and RISC-V emulation runs client-side (avr8js, rp2040js, custom TS core)
- ESP32 Xtensa and Pi 3 run on backend QEMU
- Compilation via real arduino-cli
- React + Vite frontend, FastAPI backend
- Self-hostable via Docker, no account needed
Happy to discuss the emulation architecture — particularly the trade-offs between in-browser vs. backend QEMU emulation
show comments
sourdoughtronic
That looks awesome, thank you for your hard work! I would love tinker with it, but I'm not sure how to abstract things connected to those supported u_controller boards? Example, 7x16 Pico unicorn hat is driven by RP2040 PIO.
radicality
I often write a bunch of Esphome ‘code’ , which I then use with various esp32 based devices (mostly from M5stack) via esphome/HomeAssistant.
Can this project help me in any way during dev stage before uploading the code to device just to see it doesn’t work ? Eg could I use this to somehow compile&run those esphome yamls via this emulator?
show comments
dmcrespo
Quick update: traffic is still coming in waves, had to scale up compilation workers to keep up with demand
Things are more stable now, but still tuning performance under load
One suggestion: The main splash screen image is nearly 8MB big. It takes a noticeable time to download on my connection. I'm not sure what bandwidth costs these days, but seems like that could be something to optimize.
show comments
kaycebasques
Can someone who has used both wokwi and this do a compare/contrast? The footer suggests that it's built on top of wokwi-elements
show comments
wumms
Nice work! One minor point for me: it wasn’t immediately clear that you need to press Compile before Play gets enabled (e.g. Arduino IDE let's you upload right away and compiles if needed)
show comments
noahnathan25
Pretty cool project! if you're checking it out, try one of the built-in examples and hit "Compile + Play". It runs immediately, no setup required
show comments
GCUMstlyHarmls
The container instructions has `-d` in it, but note that after booting the container it downloads another, I don't know, 300+mb more (its still downloading as I write), so if you can't connect that's why.
Might be better to not include `-d` in the instructions?
show comments
urbandw311er
This is a great idea. It’s always been inconvenient requiring access to the physical board just to be able to test these sort of projects.
show comments
xyrox1
Good job
mvkel
This is fantastic. I am doing my first-ever consumer electronics product and this would save a lot of soldering time
show comments
flymasterv
Awesome. Is there any chance of getting MicroPython or CircuitPython support?
show comments
triilman
I like this Idea but I don't want to use this.
I know what kind of prompt U using to create this one:
"Create something like Wokwi and make it local"
show comments
orangmisterius
Abang
suwsixect
Great project! Now all there is left to do is a VS Code plugin. Also make it play nice with platform io.
Surac
Nice Project. One of the benefits of such small boards is the ability to provide a "Hands on" experience. Use your hands to wire, press buttons and turn knobs. Emulating all this is a big thing but it takes away the learning in my eyes. It's like flying drones. It looks cool but gets boring after 10 minutes.
Velxio 2.0 is live.
A free, open-source emulator for 19 embedded boards: Arduino, ESP32, Raspberry Pi, RISC-V , running real compiled code in your browser.
The best part: it's fully local.
No cloud dependency. No student accounts. No data leaving your network. Self-hostable with a single Docker container.
Universities and bootcamps can deploy it on their own servers and give every student access to a complete embedded development environment, for free.
I've been working on this for over a year, and just shipped v2.0 with ESP32 emulation (via QEMU), a custom RISC-V core, and Raspberry Pi 3 support that runs real Python
Hey HN, I posted Velxio here a while back and got great feedback. Since then I've shipped a major update
What's new in v2:
- 19 boards across 5 CPU architectures (AVR8, Xtensa, RISC-V, ARM Cortex-M0+, ARM Cortex-A53) - ESP32 emulation via QEMU (lcgamboa fork) — real flash images, ROM function emulation, GPIO/ADC/timers - ESP32-C3 and CH32V003 run on a custom RISC-V core written in TypeScript, entirely in the browser - Raspberry Pi 3B via QEMU raspi3b — boots real Pi OS, runs Python - Realistic sensor simulation: DHT22 (40-bit protocol timing), HC-SR04 (trigger/echo), WS2812B NeoPixel (GRB decoding) - 48+ electronic components from wokwi-elements
Architecture:
- AVR, RP2040, and RISC-V emulation runs client-side (avr8js, rp2040js, custom TS core) - ESP32 Xtensa and Pi 3 run on backend QEMU - Compilation via real arduino-cli - React + Vite frontend, FastAPI backend - Self-hostable via Docker, no account needed
Source: https://github.com/davidmonterocrespo24/velxio (AGPLv3)
Happy to discuss the emulation architecture — particularly the trade-offs between in-browser vs. backend QEMU emulation
That looks awesome, thank you for your hard work! I would love tinker with it, but I'm not sure how to abstract things connected to those supported u_controller boards? Example, 7x16 Pico unicorn hat is driven by RP2040 PIO.
I often write a bunch of Esphome ‘code’ , which I then use with various esp32 based devices (mostly from M5stack) via esphome/HomeAssistant.
Can this project help me in any way during dev stage before uploading the code to device just to see it doesn’t work ? Eg could I use this to somehow compile&run those esphome yamls via this emulator?
Quick update: traffic is still coming in waves, had to scale up compilation workers to keep up with demand
Things are more stable now, but still tuning performance under load
If anyone finds it useful, the source is here: https://github.com/davidmonterocrespo24/velxio
Always happy to get feedback or contributions.
First of all: Awesome work! Playing with it now.
One suggestion: The main splash screen image is nearly 8MB big. It takes a noticeable time to download on my connection. I'm not sure what bandwidth costs these days, but seems like that could be something to optimize.
Can someone who has used both wokwi and this do a compare/contrast? The footer suggests that it's built on top of wokwi-elements
Nice work! One minor point for me: it wasn’t immediately clear that you need to press Compile before Play gets enabled (e.g. Arduino IDE let's you upload right away and compiles if needed)
Pretty cool project! if you're checking it out, try one of the built-in examples and hit "Compile + Play". It runs immediately, no setup required
The container instructions has `-d` in it, but note that after booting the container it downloads another, I don't know, 300+mb more (its still downloading as I write), so if you can't connect that's why.
Might be better to not include `-d` in the instructions?
This is a great idea. It’s always been inconvenient requiring access to the physical board just to be able to test these sort of projects.
Good job
This is fantastic. I am doing my first-ever consumer electronics product and this would save a lot of soldering time
Awesome. Is there any chance of getting MicroPython or CircuitPython support?
I like this Idea but I don't want to use this. I know what kind of prompt U using to create this one: "Create something like Wokwi and make it local"
Abang
Great project! Now all there is left to do is a VS Code plugin. Also make it play nice with platform io.
Nice Project. One of the benefits of such small boards is the ability to provide a "Hands on" experience. Use your hands to wire, press buttons and turn knobs. Emulating all this is a big thing but it takes away the learning in my eyes. It's like flying drones. It looks cool but gets boring after 10 minutes.