Simulation Engine
OpenHW Studio relies on powerful open-source emulation engines to accurately execute compiled microcontroller firmware in the browser. These engines simulate CPU instructions, registers, and memory space in real time.
avr8js
MIT License avr8js is an AVR 8-bit architecture simulator written in TypeScript. It provides a robust, cycle-accurate execution engine for Arduino Uno and Nano (ATmega328p) compiled firmware natively within the browser context.
Usage in OpenHW Studio: Serves as the core runtime for executing Arduino firmware, simulating instruction cycles, timers, and CPU registers.
rp2040js
MIT License rp2040js is an emulator for the Raspberry Pi RP2040 microcontroller. It supports ARM Cortex-M0+ instruction execution, memory-mapped I/O, and specialized PIO features.
Usage in OpenHW Studio: Used to emulate the Raspberry Pi Pico and other RP2040-based development boards, executing compiled ARM Cortex binaries in the browser.
LittleFS
BSD 3-Clause LittleFS is a little fail-safe filesystem designed for microcontrollers. We use a compiled WASM version to simulate local flash storage for microcontrollers.
Usage in OpenHW Studio: Provides virtual flash file system support (reading and writing files) within the RP2040 and ESP32 simulation runtimes.
