sim_run
Boot and simulate ESP32 firmware in a local emulator without hardware. Capture UART logs, FreeRTOS asserts, memory faults, and stop reasons to debug embedded code.
Instructions
Boots and simulates ESP32 firmware in a local emulator without hardware. Captures UART logs, FreeRTOS asserts, memory faults, and stop reason.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| chip | No | Target chip family. Default is s3 (ESP32-S3). | |
| wifi | No | Attach a virtual access point with DHCP/DNS/NAT. Spec like 'ssid=demo,psk=secret' (keys: ssid, psk, chan, bssid), or a bare SSID for an open network. Station gets 10.0.2.15. | |
| board | No | Board model: S3 'atech14' (default), 'waveshare-lcd4b', 'waveshare-amoled18-v2', 'waveshare-cam'; C6 'waveshare-c6-lcd147'; ESP32 'ttgo-tdisplay', 'esp32dev-loopback'; 'none' for a bare module. Omit on the C3, which has no boards. See sim_list_boards. | |
| appBin | No | Direct path to the application binary (.bin). | |
| console | No | Console source to capture (default: both = UART0 + USB-Serial/JTAG). Lines ESP-IDF mirrors on both consoles are shown once. | |
| ptableBin | No | Direct path to partition-table.bin (needed with appBin for a real ROM boot). | |
| maxSeconds | No | Maximum emulated time in seconds (default: 10s). Emulation usually runs faster than real time. | |
| projectDir | No | Path to the ESP-IDF project root or build folder. If omitted, uses current working directory. | |
| bootloaderBin | No | Direct path to bootloader.bin (needed with appBin for a real ROM boot). | |
| stopAfterExceptions | No | Stop after N CPU exceptions (unset by default). Counts every exception, including the window overflow/underflow ones Xtensa firmware takes constantly, so it is a debugging aid, not a crash detector. Panics are detected from the log regardless. |