📈 GH Trending Explorer 🎲 Surprise me

← all repos

mikroverk / esp32sim

git clone https://github.com/mikroverk/esp32sim.git v0.3.0 · 2d ago

Open-source ESP32 emulator. Run real firmware locally or in your browser — no hardware, no cloud, no subscription.

+13
stars, 24h · #1,081
+~91
stars, 7 days · #1,381
+~390
stars, 30 days · #1,319
606
★ total · +19% this week
36
forks · 18 open issues

Star history (as recorded here)

2026-10-20 · 546 ★ 2026-10-22 · 606 ★
LanguageRust
LicenseMIT
Created2026-08-25 (1mo ago)
Last push1d ago
Watchers4
OwnerOrganization

Links

README excerpt
# esp32sim
esp32sim is an ESP32 emulator written in Rust. It runs real ESP32 firmware on your computer or in
a browser tab, without the hardware.
It boots the chip's own mask ROM, the real second-stage bootloader and your unmodified application.
It also models the board around the chip: displays, touch, LEDs, buttons, audio, camera and WiFi.
Try it in your browser, nothing to install: https://mikroverk.github.io/esp32sim/
## Supported chips
| Chip | CPU | Status | Boards |
| --- | --- | --- | --- |
| ESP32-S3 | 2 x Xtensa LX7 | mature | Atech 14-port kit, Waveshare Touch-LCD-4B, Touch-AMOLED-1.8, ESP32-S3-CAM |
| ESP32-C3 | RISC-V RV32IMC | draft | console only |
| ESP32-C6 | RISC-V RV32IMAC | draft | Waveshare ESP32-C6-LCD-1.47, with the 802.15.4 radio |
| ESP32 (classic) | 2 x Xtensa LX6 | early | LilyGO TTGO T-Display |
## Features
- The full boot chain: mask ROM, bootloader, FreeRTOS, then your app. No patched firmware.
- WiFi with the unmodified Espressif WiFi library. Firmware joins a virtual access point, gets
 DHCP, DNS and NTP, and can reach the real network, HTTPS included.
- Board models, so firmware can draw on a display, read touch, light LEDs and play sound.
- Speed: the S3 has a block cache and a JIT, and runs hello_world about 30 times faster than real
 time.
- A WebAssembly build of the same emulator for the browser.
- Comparisons with real chips: the S3 in JTAG lock-step, the C3 and C6 by console diff. See
 hardware testing.
## Demos
These run on the demo site:
- Linux 6.11 on the ESP32-S3 (svermigo/Linux-on-esp32-S3), with a login shell.
- The Atech kit's Pocket Synth and its C64 SID jukebox (atech-firmware).
- An LVGL touch panel at 480x480 with a SID player.
- pocket-tank, where a small transformer model steers the fish.
- An 802.15.4 energy scanner, and two Contiki-NG motes running RPL/IPv6, on the ESP32-C6.
- MicroPython on a classic ESP32 T-Display.
You can also load your own firmware for any of the chips.
## Quick start
 [code] 
This boots the Atech synth firmware, plays a short script, and saves the audio to `out.wav` and
the display to `tft.png`. Use `esp32sim-c3`, `esp32sim-c6` or `--chip esp32` for the other chips.
Getting started covers the rest: your own ESP-IDF builds, each chip,
WiFi, scripts, the browser build and debugging.
## Documentation
- Getting started: running firmware on each chip, WiFi, scripts, the browser build
- CLI reference: every flag, environment variable and output file
- Boards: what each board models, and how to add one
- Architecture: how the emulator is put together
- Peripherals: which hardware blocks are modelled, and how completely
- Hardware testing: how the emulator is compared with real chips
- All documents: chip notes, design decisions and plans
## Contributing
Bug fixes, peripherals, boards and new chips are welcome. CONTRIBUTING.md lists
what a pull request needs; these are the same checks CI runs.
## Credits and license
esp32sim is released under the MIT License.
Authors: Joakim E