esp32sim is an open-source ESP32 emulator that runs in the browser or locally. It executes real firmware without any physical hardware, cloud service or subscription. The project aims to make ESP32 software easier to experiment with, test and simulate without always needing a connected device. Its developer has shared a short demo video and is asking embedded developers what features an emulator like this would need before they could use it for development, testing or CI.
The emulator is written in Rust and performs instruction-level emulation of four ESP32 chips across both of Espressif's CPU architectures. These are the classic ESP32 and ESP32-S3, which use Xtensa cores, and the ESP32-C3 and ESP32-C6, which use RISC-V cores. Each chip boots its real mask ROM, real second-stage bootloader and an unmodified application image, with no patched firmware or stubs. The classic ESP32 also supports the TTGO T-Display board, adding its ST7789 display and buttons.
Much of the system-on-chip logic is shared between chips. The C3 reuses the S3's UART, timers, GPIO, SPI flash controller, DMA and crypto models, while adding its own memory map, cache controller and interrupt matrix. The C6 reuses the same models with its own memory map and interrupt front-end. Only the CPU cores are genuinely separate. The project is licensed under MIT, and the browser version runs via WebAssembly.
The developer's question remains open: what would make this emulator practical for real embedded workflows?
Source: Hacker News · Summarized by HeadlinesBriefing