121 lines
6.9 KiB
Markdown
121 lines
6.9 KiB
Markdown
# Velxio — Introduction
|
|
|
|
**Velxio** is a fully local, open-source **multi-board emulator and electronics simulator** that runs entirely in your browser.
|
|
|
|
Write Arduino C++ or MicroPython, compile it with a real `arduino-cli` / ESP-IDF backend, and simulate it with **true CPU emulation** — AVR8, RP2040, Xtensa, RISC-V, and ARM — plus a full **ngspice analog circuit engine** for op-amps, transistors, diodes, and passive components.
|
|
|
|
19+ boards, 5 CPU architectures, **590+ electronic components**, custom-chip SDK, and a desktop app — without installing anything on your machine.
|
|
|
|
---
|
|
|
|
## Why Velxio?
|
|
|
|
- **No installation required** — runs in the browser, or as a native desktop app for offline work.
|
|
- **Real CPU emulation** — avr8js, rp2040js, QEMU (Xtensa LX6/LX7, RISC-V RV32IMC, ARM Cortex-A53/A72/A76). Not toy simulators.
|
|
- **Digital + analog** — every digital pin is fed into a co-simulated SPICE netlist, so you get true voltages, currents, and waveforms (not just HIGH/LOW).
|
|
- **590+ interactive components** — LEDs, displays, sensors, transistors, op-amps, logic gates, motors, e-paper panels, instruments, and more.
|
|
- **Custom chips** — write your own chip in C, compile to WebAssembly, drop on the canvas, wire it up.
|
|
- **Multi-board canvases** — mix an Arduino, an ESP32, and a Raspberry Pi 3 on the same canvas and bridge them over UART.
|
|
- **Open-source (AGPLv3)** — inspect, modify, and self-host with Docker.
|
|
|
|
---
|
|
|
|
## Supported Boards
|
|
|
|
19 boards across 5 CPU architectures:
|
|
|
|
| Family | Boards | Engine |
|
|
|--------|--------|--------|
|
|
| **AVR8** (browser) | Arduino Uno, Nano, Mega 2560, ATtiny85 | avr8js |
|
|
| **RP2040** (browser) | Raspberry Pi Pico, Pico W | rp2040js |
|
|
| **Xtensa LX6/LX7** (QEMU backend) | ESP32 DevKit V1, ESP32 DevKit C V4, ESP32-CAM, Wemos Lolin32 Lite, ESP32-S3 DevKit, XIAO ESP32-S3, Arduino Nano ESP32 | QEMU lcgamboa fork |
|
|
| **RISC-V RV32IMC** (QEMU backend) | ESP32-C3 DevKit, XIAO ESP32-C3, ESP32-C3 SuperMini | QEMU lcgamboa fork |
|
|
| **ARM Cortex-A** (QEMU backend) | Raspberry Pi Zero, Pi 1B+, Pi 2B, Pi 3B, Pi 4B, Pi 5 | QEMU `virt` / `raspi3b` |
|
|
|
|
Languages supported: **Arduino C++** on every board, **MicroPython** on Pico / Pico W / all ESP32 / ESP32-S3 / ESP32-C3 variants, **Python 3** on every Raspberry Pi.
|
|
|
|
See [Supported Boards](../README.md#supported-boards) for the full table with CPU clock speeds and FQBNs.
|
|
|
|
---
|
|
|
|
## What you can build
|
|
|
|
- **Digital sketches** — blink an LED, read a button, talk over Serial, drive an LCD, run a servo. The classic Arduino workflow, faster than flashing a real board.
|
|
- **Analog circuits** — 5V/GND rails, voltage dividers, op-amp filters, RC networks, transistor amplifiers. Probe with the on-canvas **voltmeter**, **ammeter**, and **oscilloscope**, or inject signals with the **function generator**.
|
|
- **Mixed-signal designs** — an ATmega reading a sensor through an op-amp buffer, an ESP32 driving a NeoPixel ring, a Pi 3 over UART to an Arduino acting as a slave. All co-simulated in one canvas.
|
|
- **Custom silicon** — model a 4-bit Intel 4004, a Z80, a 74HC595 shift register, or a 24LC256 EEPROM as a custom chip in C.
|
|
- **IoT prototypes** — ESP32 WiFi (SLIRP NAT), HTTP servers, MQTT, BLE advertising — all without a real radio.
|
|
|
|
---
|
|
|
|
## Documentation
|
|
|
|
### Getting Started
|
|
|
|
- [Getting Started](./getting-started.md) — Hosted, Docker, manual setup, desktop app
|
|
- [Roadmap](./roadmap.md) — What's implemented, in progress, planned
|
|
|
|
### Architecture & Internals
|
|
|
|
- [Architecture](./ARCHITECTURE.md) — Project-wide architecture (frontend, backend, simulation, QEMU bridge)
|
|
- [Emulator Architecture](./emulator.md) — How each CPU backend (AVR / RP2040 / Xtensa / RISC-V / ARM) works
|
|
- [Electrical Simulation](./wiki/electrical-simulation-user-guide.md) — Analog circuits, ngspice integration, instruments
|
|
- [Custom Chips — Developer Guide](./CUSTOM_CHIPS.md) — Write chips in C, compile to WebAssembly
|
|
|
|
### Boards & Emulation
|
|
|
|
- [RP2040 Emulation](./RP2040_EMULATION.md) — Pico / Pico W (ARM Cortex-M0+)
|
|
- [Pi Pico W WiFi Emulation](./PICO_W_WIFI_EMULATION.md) — CYW43 simulated radio
|
|
- [ESP32 Emulation](./ESP32_EMULATION.md) — Full Xtensa QEMU (GPIO, ADC, PWM, WiFi, I2C, SPI, RMT)
|
|
- [ESP32 WiFi/Bluetooth](./ESP32_WIFI_BLUETOOTH.md) — WiFi/BLE under QEMU
|
|
- [ESP32-C3 WiFi/Bluetooth](./ESP32C3_WIFI_BLUETOOTH.md) — RISC-V variant
|
|
- [RISC-V Emulation](./RISCV_EMULATION.md) — ESP32-C3 family
|
|
- [Raspberry Pi 3 Emulation](./RASPBERRYPI3_EMULATION.md) — BCM2837 / Pi OS / Python + GPIO shim
|
|
- [MicroPython Implementation](./MICROPYTHON_IMPLEMENTATION.md) — How `.py` runs on Pico and ESP32
|
|
|
|
### Components & Examples
|
|
|
|
- [Components Reference](./components.md) — 590+ components across 10 categories
|
|
- [Example Projects](./examples/README.md) — 380+ built-in projects (digital, analog, mixed, retro CPUs)
|
|
|
|
### Custom Chips Deep-Dive
|
|
|
|
- [Custom Chips Overview](./CUSTOM_CHIPS.md) — Quick start, design philosophy
|
|
- [API Reference](./wiki/custom-chips-api-reference.md) — Every `vx_*` function
|
|
- [Examples Walkthrough](./wiki/custom-chips-examples.md) — Gallery chips explained
|
|
- [Build & Test](./wiki/custom-chips-build-and-test.md) — Toolchain, sandbox
|
|
- [ESP32 Backend Runtime](./wiki/custom-chips-esp32-backend-runtime.md) — How chips load under QEMU
|
|
|
|
### Electrical Simulation Deep-Dive
|
|
|
|
- [Overview](./wiki/circuit-emulation-overview.md) — High-level pitch and design
|
|
- [Architecture](./wiki/circuit-emulation-architecture.md) — Engine + bridges
|
|
- [Components](./wiki/circuit-emulation-components.md) — Analog/passive model coverage
|
|
- [MNA Solver](./wiki/circuit-emulation-mna-solver.md) — Modified Nodal Analysis details
|
|
- [ngspice Bridge](./wiki/circuit-emulation-ngspice.md) — WASM integration
|
|
- [AVR Bridge](./wiki/circuit-emulation-avr-bridge.md) — How digital pins drive SPICE nodes
|
|
- [ESP32 QEMU Bridge](./wiki/circuit-emulation-esp32-qemu.md) — Same for QEMU backends
|
|
- [Performance](./wiki/circuit-emulation-performance.md), [Gotchas](./wiki/circuit-emulation-gotchas.md), [Tests](./wiki/circuit-emulation-tests.md), [API](./wiki/circuit-emulation-api.md)
|
|
|
|
### Apps & Integrations
|
|
|
|
- [Desktop App](./desktop-app.md) — Tauri-based offline desktop build (Pro)
|
|
- [MCP Server](./MCP.md) — Model Context Protocol — drive Velxio from Claude / Cursor
|
|
- [Analytics](./analytics.md) — Self-hosted plausible / GA bridge
|
|
|
|
### Infrastructure
|
|
|
|
- [Build QEMU](./BUILD-QEMU.md) — Rebuild the lcgamboa QEMU fork from source
|
|
- [Boot Images](./BOOT_IMAGES.md) — Raspberry Pi kernel / DTB / SD assets
|
|
- [Third-Party Credits](./THIRD_PARTY.md)
|
|
- [Docker Infrastructure](./wiki/docker-infrastructure.md)
|
|
|
|
---
|
|
|
|
## Community & Links
|
|
|
|
- **Live demo:** [velxio.dev](https://velxio.dev)
|
|
- **GitHub:** [github.com/davidmonterocrespo24/velxio](https://github.com/davidmonterocrespo24/velxio)
|
|
- **Discord:** [discord.gg/3mARjJrh4E](https://discord.gg/3mARjJrh4E)
|
|
- **Sponsor:** [github.com/sponsors/davidmonterocrespo24](https://github.com/sponsors/davidmonterocrespo24)
|