Machines › Computers › Espressif › ESP32-H2
ESP32-H2
2023
The ESP32-H2 (Espressif, 2023) is a low-power connected microcontroller: a 96MHz single-core RISC-V RV32IMAC system-on-chip with Bluetooth LE 5 and an 802.15.4 radio for Thread and Zigbee, and, unlike its ESP32-C6 sibling, no WiFi. The DevKitM-1 exposes an addressable WS2812 RGB LED on GPIO8 and a UART0 serial console. Here it boots real bare-metal firmware on a from-scratch RISC-V interpreter, with the radios stubbed out. On-board only, and the bare devkit has no on-board audio, so it is silent.
ESP32-H2 Online Emulator
Play ESP32-H2 using JavaScript directly in your browser.
Controls
Boots real bare-metal ESP32-H2 firmware on a from-scratch RISC-V RV32IMAC interpreter (the RV32I base plus M multiply/divide, A atomics and C compressed, the machine-mode CSRs, traps and a functional interrupt controller) wired to an ESP32-H2 SoC model at the real hardware addresses: 320 KB unified HP SRAM (0x40800000), XIP flash at 0x42000000, the GPIO block (0x60091000, with the on-board WS2812 RGB LED on GPIO8), UART0 (0x60000000) and the systimer. The default cycles the DevKitM-1 WS2812 RGB LED as a real 800 kHz one-wire waveform, decoded from the GPIO edge timing. Also in the picker: a Rainbow hue wheel, an interactive UART mini-REPL (type print(2+2) to get 4, 6*7 for 42, or led red / led green / led blue / led off to drive the LED) and Hello UART. Open the debugger to single-step the RISC-V core, read/write x0-x31 + pc + the machine CSRs, disassemble HP SRAM and flash with the shared RISC-V decoder, and set breakpoints and write-watchpoints over the real ESP32-H2 memory map. Bluetooth LE and 802.15.4 (Thread / Zigbee) have no radio here — their register windows are HLE stubs so firmware that probes them keeps running; the H2 has no WiFi. On-board only, and the devkit is silent.
Boots real bare-metal ESP32-H2 firmware on a from-scratch RISC-V RV32IMAC interpreter (the RV32I base plus M multiply/divide, A atomics and C compressed, the machine-mode CSRs, traps and a functional interrupt controller) wired to an ESP32-H2 SoC model at the real hardware addresses: 320 KB unified HP SRAM (0x40800000), XIP flash at 0x42000000, the GPIO block (0x60091000, with the on-board WS2812 RGB LED on GPIO8), UART0 (0x60000000) and the systimer. The default cycles the DevKitM-1 WS2812 RGB LED as a real 800 kHz one-wire waveform, decoded from the GPIO edge timing. Also in the picker: a Rainbow hue wheel, an interactive UART mini-REPL (type print(2+2) to get 4, 6*7 for 42, or led red / led green / led blue / led off to drive the LED) and Hello UART. Open the debugger to single-step the RISC-V core, read/write x0-x31 + pc + the machine CSRs, disassemble HP SRAM and flash with the shared RISC-V decoder, and set breakpoints and write-watchpoints over the real ESP32-H2 memory map. Bluetooth LE and 802.15.4 (Thread / Zigbee) have no radio here — their register windows are HLE stubs so firmware that probes them keeps running; the H2 has no WiFi. On-board only, and the devkit is silent.
Boots real bare-metal ESP32-H2 firmware on a from-scratch RISC-V RV32IMAC interpreter (the RV32I base plus M multiply/divide, A atomics and C compressed, the machine-mode CSRs, traps and a functional interrupt controller) wired to an ESP32-H2 SoC model at the real hardware addresses: 320 KB unified HP SRAM (0x40800000), XIP flash at 0x42000000, the GPIO block (0x60091000, with the on-board WS2812 RGB LED on GPIO8), UART0 (0x60000000) and the systimer. The default cycles the DevKitM-1 WS2812 RGB LED as a real 800 kHz one-wire waveform, decoded from the GPIO edge timing. Also in the picker: a Rainbow hue wheel, an interactive UART mini-REPL (type print(2+2) to get 4, 6*7 for 42, or led red / led green / led blue / led off to drive the LED) and Hello UART. Open the debugger to single-step the RISC-V core, read/write x0-x31 + pc + the machine CSRs, disassemble HP SRAM and flash with the shared RISC-V decoder, and set breakpoints and write-watchpoints over the real ESP32-H2 memory map. Bluetooth LE and 802.15.4 (Thread / Zigbee) have no radio here — their register windows are HLE stubs so firmware that probes them keeps running; the H2 has no WiFi. On-board only, and the devkit is silent.
Boots real bare-metal ESP32-H2 firmware on a from-scratch RISC-V RV32IMAC interpreter (the RV32I base plus M multiply/divide, A atomics and C compressed, the machine-mode CSRs, traps and a functional interrupt controller) wired to an ESP32-H2 SoC model at the real hardware addresses: 320 KB unified HP SRAM (0x40800000), XIP flash at 0x42000000, the GPIO block (0x60091000, with the on-board WS2812 RGB LED on GPIO8), UART0 (0x60000000) and the systimer. The default cycles the DevKitM-1 WS2812 RGB LED as a real 800 kHz one-wire waveform, decoded from the GPIO edge timing. Also in the picker: a Rainbow hue wheel, an interactive UART mini-REPL (type print(2+2) to get 4, 6*7 for 42, or led red / led green / led blue / led off to drive the LED) and Hello UART. Open the debugger to single-step the RISC-V core, read/write x0-x31 + pc + the machine CSRs, disassemble HP SRAM and flash with the shared RISC-V decoder, and set breakpoints and write-watchpoints over the real ESP32-H2 memory map. Bluetooth LE and 802.15.4 (Thread / Zigbee) have no radio here — their register windows are HLE stubs so firmware that probes them keeps running; the H2 has no WiFi. On-board only, and the devkit is silent.
Configurations
| Configuration | Emulator | Machine | OS | Legal | |
|---|---|---|---|---|---|
| RGB cycle (WS2812) | ESP32-H2 | ESP32-H2 | open | Open ⛶ | |
| Rainbow (WS2812 hue wheel) | ESP32-H2 | ESP32-H2 | open | Open ⛶ | |
| Mini-REPL (UART0) | ESP32-H2 | ESP32-H2 | open | Open ⛶ | |
| Hello UART (serial) | ESP32-H2 | ESP32-H2 | open | Open ⛶ |
Downloads — ROMs & software
| Title | Type | Size (bytes) | Legal | |
|---|---|---|---|---|
| Hello UART (serial) | demo | 0 | open | Download ↓ |
| Rainbow (WS2812 hue wheel) | demo | 0 | open | Download ↓ |
| Mini-REPL (UART0) | demo | 0 | open | Download ↓ |
| RGB cycle (WS2812) | demo | 0 | open | Download ↓ |
Chips
Emulators
| Emulator | Type | License | Site |
|---|---|---|---|
| ESP32-H2 | online | CC0 firmware · from-scratch core | Website ↗ |