피드로 돌아가기
Hacker NewsFrontend
원문 읽기
Velxio가 브라우저 기반 다중 보드 에뮬레이터로 Arduino, ESP32, Raspberry Pi 3을 실시간 CPU 에뮬레이션 및 48개 이상의 전자부품 시뮬레이션 제공
Velxio 2.0 – Emulate Arduino, ESP32, and Raspberry Pi 3 in the Browser
AI 요약
Context
Arduino 및 임베디드 보드 개발 시 물리적 하드웨어 없이도 코드 검증이 필요했으며, 로컬 설치 없이 즉시 사용 가능한 환경의 부재가 개발 진입장벽을 높였다.
Technical Solution
- AVR8(ATmega/ATtiny), ARM Cortex-M0+(RP2040), RISC-V RV32IMC/EC(ESP32-C3/CH32V003), Xtensa LX6/LX7(ESP32 계열), ARM Cortex-A53(Raspberry Pi 3)의 5개 CPU 아키텍처를 별도의 JavaScript/TypeScript 기반 에뮬레이터(avr8js, rp2040js, RiscVCore.ts) 또는 QEMU 백엔드로 구현
- Arduino C++ 및 Python 코드를 arduino-cli 백엔드로 컴파일하여 .hex/.bin 파일 생성 후 해당 보드 에뮬레이터에 로드
- GPIO, UART, ADC, SPI, I2C, PWM, Timer 등 주요 하드웨어 주변장치(Peripheral)를 JavaScript 또는 QEMU에서 시뮬레이션하고 캔버스 상의 전자부품과 실시간 연결
- 48개 이상의 전자부품(LED, 버튼, 센서, 디스플레이, HC-SR04 초음파 센서 등)을 비주얼 미리보기, 검색, 카테고리 필터 기능이 있는 Component Picker로 제공
- Arduino 라이브러리 인덱스를 Library Manager에 로드하여 브라우저 내에서 라이브러리 검색 및 설치 가능하게 구성
- velxio.dev 웹 인터페이스 또는 Docker 단일 명령어(
docker run -d -p 3080:80 ghcr.io/davidmonterocrespo24/velxio:master)로 자체 호스팅 옵션 제공 - 여러 보드를 동일 캔버스에서 동시 시뮬레이션하고 Serial 연결로 상호 통신 가능하게 지원
Impact
AVR8 에뮬레이션은 네이티브 클록 속도로 ~60 FPS 시뮬레이션 루프를 requestAnimationFrame 기반으로 달성했으며, RP2040 GPIO 전환은 약 8나노초 해상도의 Oscilloscope로 추적 가능하다.
Key Takeaway
브라우저 기반 에뮬레이션을 여러 CPU 아키텍처로 확장할 때 JavaScript 구현(avr8js, rp2040js, RiscVCore.ts)과 QEMU 백엔드 혼용 전략으로 개발 복잡도와 성능 트레이드오프를 관리할 수 있으며, 하드웨어 추상화 계층과 컴포넌트 비주얼 모델을 분리하면 다양한 보드를 단일 UI에서 운영 가능하다.
실천 포인트
Arduino 또는 임베디드 개발 팀이 Velxio를 도입하면 프로토타입 검증 및 교육 단계에서 물리적 보드 구매 없이 브라우저 내에서 C++ 코드를 실시간 컴파일하고 GPIO/센서/디스플레이 동작을 시뮬레이션할 수 있으며, 다중 보드 간 Serial 연결 테스트로 통신 로직을 미리 검증할 수 있다.