velxio/docs/intro.md

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)