Open source SDKs and firmware for building your own Muse gadgets on ESP32 boards and Linux devices like Raspberry Pi.
mikroverk/esp32sim
An open-source ESP32 emulator in Rust that runs real firmware on your computer or in a browser, without hardware.
- Stars
- 395
- Forks
- 20
- Open issues
- 19
- Last commit
- 18 hours ago
What is it?
esp32sim emulates ESP32-family chips so that unmodified firmware can run without a physical board. It boots the chip's mask ROM, the second-stage bootloader and the application, and models board peripherals such as displays, touch input, LEDs, buttons, audio, camera and WiFi.
The project supports the ESP32-S3 (marked mature), ESP32-C3 and ESP32-C6 (draft), and the classic ESP32 (early). Firmware can join a virtual access point with DHCP, DNS and NTP, and reach the real network. A WebAssembly build runs the same emulator in a browser tab, and a demo site hosts several examples.
The project is unofficial and not affiliated with Espressif Systems.
Key features
- 01Boots the full chain: mask ROM, bootloader, FreeRTOS and the application.
- 02Runs WiFi with the unmodified Espressif WiFi library, including HTTPS to the real network.
- 03Models boards with displays, touch, LEDs, buttons, audio and camera.
- 04Includes a block cache and JIT on the ESP32-S3 for faster execution.
- 05Provides a WebAssembly build for running in the browser.
Use cases
- Testing ESP32 firmware in CI or on a laptop without a board attached.
- Trying out ESP32 demos and board support in a browser before buying hardware.
- Developing and debugging board-level UI or audio code against modelled peripherals.
Quick start
- 1
Build the emulator
cargo build --release - 2
Download the mask ROM files (not included in the repo)
tools/fetch-demo-assets.sh --no-linux - 3
Boot the Atech synth demo firmware for 5 seconds
FW=web/wasm/fw/public ./target/release/esp32sim --boot rom --rom web/wasm/fw/esp32s3_rev0_rom.elf --bootloader $FW/atech-bootloader.bin --ptable $FW/atech-ptable.bin --app $FW/atech-firmware.bin --script $FW/atech-script1.txt --wav out.wav --tft-png tft.png --max-seconds 5
Things to know
- Only the ESP32-S3 is marked mature; the C3, C6 and classic ESP32 are draft or early.
- Some demos and boards need extra downloads, such as mask ROMs that are not in the repo.
Topics
FAQ
- What is esp32sim?
- An open-source ESP32 emulator in Rust that runs real firmware on your computer or in a browser, without hardware. esp32sim emulates ESP32-family chips so that unmodified firmware can run without a physical board. It boots the chip's mask ROM, the second-stage bootloader and the application, and models board peripherals such as displays, touch input, LEDs, buttons, audio, camera and WiFi.
- Is esp32sim free to use? What license does it have?
- esp32sim is open source under the MIT license. Check the license terms before using it in commercial products.
- Is esp32sim still maintained?
- Actively maintained. The last commit to esp32sim was on Oct 19, 2026.
- What can I use esp32sim for?
- Testing ESP32 firmware in CI or on a laptop without a board attached. Trying out ESP32 demos and board support in a browser before buying hardware. Developing and debugging board-level UI or audio code against modelled peripherals.
- How do I install esp32sim?
- Build the emulator: cargo build --release Download the mask ROM files (not included in the repo): tools/fetch-demo-assets.sh --no-linux Boot the Atech synth demo firmware for 5 seconds: FW=web/wasm/fw/public ./target/release/esp32sim --boot rom --rom web/wasm/fw/esp32s3_rev0_rom.elf --bootloader $FW/atech-bootloader.bin --ptable $FW/atech-ptable.bin --app $FW/atech-firmware.bin --script $FW/atech-script1.txt --wav out.wav --tft-png tft.png --max-seconds 5
- Where can I get esp32sim?
- The source code and installation instructions are on GitHub: https://github.com/mikroverk/esp32sim
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An ESP32 desk display that shows your Claude Code usage limits, with an animated mascot that reacts to prompts and alerts you when a session needs input.
Open-source WiFi sensing platform that uses ESP32 CSI signals to detect presence, breathing, heart rate and movement without cameras.
Open-source, community-built e-reader firmware for ESP32-based e-ink devices, focused on EPUB reading and easy customization.
Open-source ESP32-based quadcopter flight controller firmware and hardware design, built from general-purpose parts for education and research.
A Rust library and CLI that converts Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV and PDF files into clean GitHub-Flavored Markdown.