Official esp-emu shell · engine v0.49.0

ESP32 firmware, in the tab you already have open.

ESP Emulator is a browser shell around Espressif’s official esp-emu. Pick a chip, load a real IDF merged .bin (or compile an allowlisted sample), and press Run. UART is the main stage; GPIO and registers sit beside it. The hosted page has no real network — same as official. The file is not uploaded.

How a merged image works

  • Firmware stays in this tab
  • Seven chips in the 0.49.0 engine
  • Apache-2.0 engine. Not an Espressif site.
A still of the lab console, not a live session

An official shell you can open

The engine is Espressif’s official esp-emu WASM. This site is the lab shell: edit → build → serial, with GPIO and registers on the side.

In the browser

You can try a merged image without installing a toolchain first. The page loads Espressif’s esp-emulator build.

Private by default

The .bin is read in this tab. The site does not store firmware.

Chips this engine knows

ESP32-C3, C5, C6, H2, P4, S3, and S31. Match the part you compiled for.

UART first

The UART console is the primary stage. Live speed, cores, a clickable DevKit LED board, registers, and a hex dump sit beside it — not a wiring canvas.

Sign-in is optional

The emulator runs signed out. GitHub sign-in remembers you and starts a short tour the first time you open the lab.

Compile an IDF sample

Signed in, you can compile a whitelist of ESP-IDF examples for ESP32-C3 or C6 and load the image here. Other firmware you still compile yourself.

Three steps to a boot log

The same sequence as flashing a board, except the last step is Run.

  1. 1

    Pick the chip

    Use the target you passed to idf.py set-target.

  2. 2

    Bring a merged image

    idf.py merge-bin writes build/merged-binary.bin: bootloader, partition table, and app. Or sign in and compile a whitelist sample for C3 or C6.

  3. 3

    Press Run

    UART0 prints the boot log. Pause and Step walk one instruction. Click an input pin to drive it.

Who it’s for

Learning ESP-IDF

Read a hello_world boot log before the board arrives.

Debugging without hardware

Check that a merged image reaches the app, and see which GPIO the firmware drives.

Networking limits

This hosted page has no real outbound internet (same as official browser builds). SoftAP can associate and hand out DHCP inside the tab. Carrying frames to the public network needs a local tools/ws-net-proxy.py plus TAP. An HTTPS page cannot open ws:// to your machine — serve this site (or local esp-emu) over HTTP on localhost when you need the proxy.

This site and a local esp-emu

Use the lab to run real IDF firmware and watch UART. This hosted page has no real network (same as official). Use a local install when you need the proxy.

This site Local esp-emu
Open a merged image Yes, in the lab Yes
UART, GPIO, registers Yes Yes
Real network No. An HTTPS page cannot open ws:// to your machine. Yes, with tools/ws-net-proxy.py
Install None A local build of the emulator