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
When I try to visit velxio.dev, a CrowdSec page shows up and says I am not allowed to view it. I am a pretty normal android user on firefox mobile, so that is surprising.
I look forward to trying this out though, great project!
Quick update: this should be fixed now. It was an overly aggressive CrowdSec rule blocking some legitimate traffic.
If anyone still has issues accessing velxio.dev, let me know
Nice one! I can access it now.
Really awesome project, it runs well on my old android phone, the fact that I can use a tool like this on my phone is pretty wild, you have done well with the UI in that regard. The oscilloscope is a really nice feature too.
Mobile support is something I’ve been paying a lot of attention to, so it's really good to know it runs well even on older devices.
And glad you liked the oscilloscope, that was a fun one to build.You can select the motherboard and ping you want to monitor.
Oh, thanks for reporting this.that definitely shouldn’t happen. It’s likely an overly aggressive CrowdSec rule blocking some legitimate traffic. I’ll look into it and adjust the configuration
Hi, adding WS2812B LED strips of arbitrary length would be awesome! Scrolling the canvas is sometimes problematic. Otherwise very interesting.
Thanks! That’s a great suggestion, supporting WS2812B strips with arbitrary length is definitely something I’d like to add. I also have in mind adding many more LED based components. I’ll take a look at improving the canvas scrolling too