Skip to content

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.

Released under the MIT License.