
2026/03/28 5:44
**Velxio 2.0 – ブラウザ上で Arduino・ESP32・Raspberry Pi 3 をエミュレート**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Velxio は、完全にローカルでオープンソースのブラウザベースのマルチボードエミュレータです。インストール不要で Web ブラウザ内だけで動作します。19 のボードをサポートし、5 つの CPU アーキテクチャに対応しています:AVR8(ATmega/ATtiny)、ARM Cortex‑M0+(RP2040)、RISC‑V RV32IMC/EC(ESP32‑C3 / CH32V003)、Xtensa LX6/LX7(QEMU 経由で ESP32 / ESP32‑S3)、そして ARM Cortex‑A53(QEMU を介した Raspberry Pi 3 Linux)。シミュレーションエンジンは、
avr8js、rp2040js、TypeScript 版 RISC‑V コア、および Xtensa と ARM‑A53 ターゲット用の QEMU フォーク(lcgamboa/qemu)を含みます。
プラットフォームは統合された Monaco Editor IDE を提供し、マルチファイルワークスペースをサポート。
arduino-cli で Arduino/C++ や Python コードのコンパイルが可能です。ライブ コンパイル/実行インターフェイスにより即時フィードバックが得られ、Serial Monitor は自動ボーレート検出とスケッチとの双方向通信を提供します。Velxio には 48 個以上のドラッグ&ドロップコンポーネント(Wokwi‑Elements から)とコンポーネントピッカー、プロパティダイアログ、ライブラリマネージャが付属しており、必要に応じてフル Arduino ライブラリインデックスをロードします。
ユーザーは単一の Docker コンテナまたは Docker Compose を使用して Velxio を自前でホストできます。データは SQLite に永続化され、認証には JWT トークンとオプションで Google OAuth が使用されます。プロジェクトは URL 経由で共有でき、共同作業が可能です。プロジェクトは David Monterocrespo によって管理されており、二重ライセンスモデルを採用しています:AGPLv3(オープンソース利用)と商用デプロイメント向けの有料商用ライセンス。GitHub Sponsors または PayPal でスポンサーシップを受け付けており、ホビイスト、教育者、および組み込みシステム開発者に広く採用されることを促進しています。
本文
Velxio: Arduino & Embedded Board Emulator
Live at velxio.dev
完全ローカルでオープンソースのマルチボードエミュレーターです。Arduino C++ もしくは Python を書き、コンパイルし、リアルCPUエミュレーションと48+インタラクティブな電子部品をブラウザ上でシミュレートします。
- 19種類のボード
- 5つのCPUアーキテクチャ
| ボード | CPU アーキテクチャ |
|---|---|
| AVR8 (ATmega / ATtiny) | |
| ARM Cortex‑M0+ (RP2040) | |
| RISC‑V RV32IMC/EC (ESP32‑C3 / CH32V003) | |
| Xtensa LX6/LX7 (ESP32 / ESP32‑S3 via QEMU) | |
| ARM Cortex‑A53 (Raspberry Pi 3 Linux via QEMU) |
プロジェクトを応援する
Velxio は無料でオープンソースです。フルマルチボードエミュレーターの構築と保守には多大な時間が必要です――もしこのプロジェクトに時間や喜びを得られるなら、直接スポンサーシップしていただくことで開発を継続できます。
- GitHub Sponsors(推奨) – https://github.com/sponsors/davidmonterocrespo24
- PayPal – https://paypal.me/odoonext
ご支援はサーバー費用、ライブラリ保守、そして新しいボード・部品・機能追加の時間を確保します。ありがとうございます!
今すぐ試してみる
https://velxio.dev – インストール不要です。エディタを開きスケッチを書いて、ブラウザ上で直接シミュレーションできます。
Docker でセルフホスト(1コマンド)
docker run -d -p 3080:80 ghcr.io/davidmonterocrespo24/velxio:master
その後 http://localhost:3080 を開きます。
スクリーンショット
- Raspberry Pi Pico シミュレーション – ADC 読み取りテスト(2つのポテンショメータ)と Serial Monitor のライブ出力、下部にコンパイルコンソール。
- Arduino Uno が ILI9341 240×320 TFT ディスプレイを SPI 経由で制御 – Adafruit_GFX + Adafruit_ILI9341 を使ったリアルタイムグラフィックスデモ。
- ライブラリマネージャーはオープン時に完全な Arduino ライブラリインデックスをロードし、検索・インストールが可能。
- コンポーネントピッカーで 48 個以上の部品を視覚プレビュー付きで表示、検索とカテゴリフィルタ。
- マルチボードシミュレーション – Raspberry Pi 3 と Arduino が同一キャンバス上で同時に動作し、Serial 経由で接続。異なるアーキテクチャを1つの回路に混在可能。
- ESP32 シミュレーションで HC‑SR04 超音波距離センサ – QEMU を使った実際の Xtensa エミュレーション、トリガ/エコ GPIO タイミング付き。
対応ボード
- Raspberry Pi Pico / Pico W
- ESP32 DevKit C / ESP32‑S3
- ESP32‑C3, Seeed XIAO ESP32‑C3, ESP32‑C3 SuperMini, ESP32‑CAM
- Seeed XIAO ESP32‑S3, Arduino Nano ESP32
- Raspberry Pi 3B
- Arduino Uno / Nano / Mega 2560 / ATtiny85 / Leonardo / Pro Mini (AVR8 / ATmega)
| ボード | CPU | エンジン | 言語 |
|---|---|---|---|
| Arduino Uno | ATmega328p @ 16 MHz | avr8js (ブラウザ) | C++ (Arduino) |
| Arduino Nano | ATmega328p @ 16 MHz | avr8js (ブラウザ) | C++ (Arduino) |
| Arduino Mega 2560 | ATmega2560 @ 16 MHz | avr8js (ブラウザ) | C++ (Arduino) |
| ATtiny85 | ATtiny85 @ 8 MHz (int) / 16 MHz (ext) | avr8js (ブラウザ) | C++ (Arduino) |
| Arduino Leonardo | ATmega32u4 @ 16 MHz | avr8js (ブラウザ) | C++ (Arduino) |
| Arduino Pro Mini | ATmega328p @ 8/16 MHz | avr8js (ブラウザ) | C++ (Arduino) |
| Raspberry Pi Pico / Pico W | RP2040 @ 133 MHz | rp2040js (ブラウザ) | C++ (Arduino) |
| ESP32 DevKit V1, C V4, S3, CAM | Xtensa LX6/LX7 @ 240 MHz | QEMU lcgamboa (バックエンド) | C++ (Arduino) |
| Seeed XIAO ESP32‑S3 | Xtensa LX7 @ 240 MHz | QEMU lcgamboa (バックエンド) | C++ (Arduino) |
| Arduino Nano ESP32 | Xtensa LX6 @ 240 MHz | QEMU lcgamboa (バックエンド) | C++ (Arduino) |
| ESP32‑C3 DevKit, XIAO, SuperMini | RISC‑V RV32IMC @ 160 MHz | RiscVCore.ts (ブラウザ) | C++ (Arduino) |
| CH32V003 | RISC‑V RV32EC @ 48 MHz | RiscVCore.ts (ブラウザ) | C++ (Arduino) |
| Raspberry Pi 3B | ARM Cortex‑A53 @ 1.2 GHz | QEMU raspi3b (バックエンド) | Python |
主な機能
コード編集
- Monaco Editor – 完全な C++ / Python エディタ。構文ハイライト、オートコンプリート、ミニマップ、ダークテーマを備える。
- マルチファイルワークスペース:
・.ino
・.h
・.cpp
の作成・名前変更・削除・切替が可能。.py
バックエンドで Arduino コンパイル。スケッチをarduino-cli
/.hex
にコンパイル。.bin- Compile / Run / Stop / Reset ボタンとステータスメッセージ。
- 可変サイズのコンパイルコンソール:全出力、警告・エラー表示。
マルチボードシミュレーション
- AVR8(Uno/Nano/Mega/ATtiny85/Leonardo/Pro Mini) –
によるネイティブクロック速度での実際のエミュレーション。GPIO、タイマー、USART、ADC、SPI、I2C、60 FPS ループをサポート。avr8js - RP2040(Pico/Pico W) –
による133 MHz エミュレーション。30 GPIO ピン、UART、ADC、I2C、SPI、PWM、WFI 最適化、オシロスコープ。rp2040js - ESP32 / ESP32‑S3 – QEMU (
) でのデュアルコア Xtensa LX6/LX7 エミュレーション。GPIO、UART、ADC、I2C、SPI、RMT/NeoPixel、LEDC/PWM、WiFi (SLIRP NAT)。lcgamboa/qemu - ESP32‑C3 / XIAO‑C3 / SuperMini / CH32V003 – ブラウザ内で動作する RISC‑V RV32IMC/EC エミュレーション (
)。低レイテンシ、バックエンド不要。RiscVCore.ts - Raspberry Pi 3B – QEMU での BCM2837 エミュレーション。実際の Raspberry Pi OS Trixie を起動し、Python スクリプトと GPIO シムを使用可能。
Serial Monitor
自動ボーレート検出付きライブシリアル出力。UI から RX ピンへデータ送信、オートスクロール切替機能。
コンポーネントシステム(48+部品)
- ドラッグ&ドロップで再配置、90° 回転、ピン役割・Arduino 割り当てを設定するプロパティダイアログ。
- 配線システム:直交ルーティング、8 種類の信号色、セグメント編集。
ライブラリマネージャー
UI から直接完全な Arduino ライブラリインデックスを閲覧・インストール。ライブ検索、インストール済みタブ、バージョン表示。
認証 & プロジェクト永続化
メール/パスワードまたは Google OAuth によるサインイン。プロジェクトは名前、説明、公開/非公開可視性で保存され、
/project/:id で永続 URL を取得。ユーザープロファイル (/:username) では公開プロジェクトを閲覧可能。
サンプルプロジェクト
組み込みサンプル:Blink, Traffic Light, Button Control, Fade LED, Serial Hello World, RGB LED, Simon Says, LCD 20×4, Pi + Arduino serial control。エディタへワンクリックでロードできます。
セルフホスティング
オプション A – Docker(推奨、単一コンテナ)
docker run -d \ --name velxio \ -p 3080:80 \ -v $(pwd)/data:/app/data \ ghcr.io/davidmonterocrespo24/velxio:master
/app/data に格納されるファイル:
– SQLite データベース(ユーザー、プロジェクトメタデータ)velxio.db
– プロジェクトごとのスケッチファイルprojects/{id}/
オプション B – Docker Compose
git clone https://github.com/davidmonterocrespo24/velxio.git cd velxio cp backend/.env.example backend/.env # 必要に応じて編集 docker compose -f docker-compose.prod.yml up -d
環境変数 (
backend/.env):
| 変数 | デフォルト | 説明 |
|---|---|---|
| (必須) | JWT シグネチャ秘密鍵 |
| | SQLite パス |
| | プロジェクトファイル用ディレクトリ |
| | OAuth リダイレクト |
| — | Google OAuth クライアント ID |
| — | Google OAuth クライアントシークレット |
| | Google コンソールと一致 |
| | HTTPS 上で配布する場合は true に |
オプション C – 手動セットアップ
前提:Node.js 18+、Python 3.12+、
arduino-cli
git clone https://github.com/davidmonterocrespo24/velxio.git cd velxio
バックエンド
cd backend python -m venv venv && source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt uvicorn app.main:app --reload --port 8001
フロントエンド(別ターミナル)
cd frontend npm install npm run dev
http://localhost:5173 を開きます。
Arduino‑CLI 設定
arduino-cli core update-index arduino-cli core install arduino:avr # Raspberry Pi Pico / Pico W arduino-cli config add board_manager.additional_urls \ https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json arduino-cli core install rp2040:rp2040 # ESP32 / ESP32‑S3 / ESP32‑C3 arduino-cli config add board_manager.additional_urls \ https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json arduino-cli core install esp32:esp32@2.0.17
プロジェクト構成
velxio/ ├── frontend/ # React + Vite + TypeScript │ └── src/ │ ├── pages/ │ ├── components/ │ ├── simulation/ │ ├── store/ │ └── services/ ├── backend/ # FastAPI + Python │ └── app/ │ ├── api/routes/ │ ├── models/ │ ├── services/ │ └── core/ ├── wokwi-libs/ │ ├── wokwi-elements/ │ ├── avr8js/ │ ├── rp2040js/ │ └── qemu-lcgamboa/ ├── img/ # Raspberry Pi 3 boot images ├── deploy/ ├── docs/ ├── Dockerfile.standalone ├── docker-compose.yml └── docker-compose.prod.yml
テクノロジースタック
| レイヤー | スタック |
|---|---|
| フロントエンド | React 19, Vite 7, TypeScript 5.9, Monaco Editor, Zustand, React Router 7 |
| バックエンド | FastAPI, SQLAlchemy 2.0 async, aiosqlite, uvicorn |
| AVR シミュレーション | (ATmega328p / ATmega2560) |
| RP2040 シミュレーション | (ARM Cortex‑M0+) |
| RISC‑V シミュレーション | (RV32IMC, TypeScript 実装) |
| ESP32 シミュレーション | QEMU 8.1.3 lcgamboa fork (Xtensa LX6/LX7) |
| Raspberry Pi 3 シミュレーション | QEMU 8.1.3 + Raspberry Pi OS Trixie |
| UI コンポーネント | (Web Components) |
| コンパイラ | サブプロセス |
| 認証 | JWT (httpOnly cookie)、Google OAuth 2.0 |
| 永続化 | SQLite + ディスクボリューム () |
| デプロイ | Docker, nginx, GitHub Actions → GHCR + Docker Hub |
ドキュメント
- Getting Started –
docs/getting-started.md - Architecture Overview –
docs/ARCHITECTURE.md - Emulator Architecture –
docs/emulator.md - Wokwi Libraries Integration –
docs/WOKWI_LIBS.md - RP2040 Emulation (Pico) –
docs/RP2040_EMULATION.md - Raspberry Pi 3 Emulation –
docs/RASPBERRYPI3_EMULATION.md - ESP32 Emulation (Xtensa) –
docs/ESP32_EMULATION.md - RISC‑V Emulation (ESP32‑C3) –
docs/RISCV_EMULATION.md - Components Reference –
docs/components.md - MCP Server –
docs/MCP.md - Roadmap –
docs/roadmap.md
トラブルシューティング
| 症状 | 対処 |
|---|---|
| をインストールし、PATH に追加。 |
| LED が点滅しない | ブラウザコンソールでポートリスナーを確認し、部品プロパティダイアログでピン割り当てを検証。 |
| Serial Monitor 何も表示されない | を呼び出した後に を実行。 |
| ESP32 が起動しない | Windows は 、Linux は がバックエンド/app/services/ にあるか確認。 |
| Pi 3 の起動が遅い | QEMU は 2–5 秒の初期化時間が必要。UI 上の「booting」ステータスは正常。 |
| コンパイルエラー | コンパイルコンソールを確認し、選択したボードに対して正しい core がインストールされているか検証。 |
コミュニティ
- Discord: https://discord.gg/rCScB9cG
- 貢献:pull request は https://github.com/davidmonterocrespo24/velxio で歓迎です。
- 商用ライセンス問い合わせ:
davidmonterocrespo24@gmail.com
ライセンス
Velxio はデュアルライセンシングモデルを採用しています。
| 利用ケース | ライセンス |
|---|---|
| 個人・教育・オープンソース(AGPLv3 対応) | AGPLv3 – 無料 |
| プロプライエタリ/閉源製品または SaaS | 商用ライセンス – 有料 |
AGPLv3 は認定されたオープンソースライセンスです。商用利用も無料ですが、変更やネットワーク経由の展開時にソースコードを同一ライセンスで公開する必要があります。要件を満たせない企業は商用ライセンスを購入できます。
LICENSE と COMMERCIAL_LICENSE.md に完全な条項が記載されています。