ESP32-H2 Development Boards
The ESP32-H2 is built for Thread and Zigbee applications with support for 802.15.4 mesh networking and Bluetooth 5 LE. Unlike other ESP chips, it omits Wi-Fi, focusing on ultra-low power and long battery life.
It uses a single-core RISC-V CPU and integrates advanced security features. It's tailored for smart lighting, sensor hubs, and low-power mesh nodes in the Matter ecosystem.
Specifications
Datasheet ↗Compute
Connectivity
Peripherals
Strapping & reserved pins
13 pins to knowSome pins are reserved for boot strapping, JTAG, USB and flash - misusing them can cause boot failures or programming issues. The category colours below match the table.
| Pin | Label | Why avoid | Category |
|---|---|---|---|
| IO0 | GPIO0 | Connected to the external (or in-package) flash memory as a data line; cannot be repurposed without interfering with program storage. | Flash |
| IO1 | GPIO1 | Used to select the SPI flash chip (not brought out on modules with in-package flash); needed for flash access, so it should not be used as a general IO. | Flash |
| IO2 | MTMS | Serves as the flash memory’s write-protect pin and the JTAG TMS line; using it as GPIO can disrupt flash operation or JTAG debugging. | Flash |
| IO3 | MTDO | Serves as the flash HOLD (D3) line and the JTAG TDO output; repurposing it can interfere with flash reads/writes or JTAG debugging. | Flash |
| IO4 | MTCK | Acts as the SPI flash clock line and the JTAG clock; cannot be used as GPIO without halting flash operation or debug capability. | Flash |
| IO5 | MTDI | Functions as the flash data input (D0) line and JTAG TDI input; using it as GPIO will interfere with the flash data bus and JTAG functionality. | Flash |
| IO8 | GPIO8 | Must be held at the proper logic level on reset to select the correct boot mode and enable/disable bootloader log output. | Strapping |
| IO9 | GPIO9 | Must be pulled high on reset for normal SPI flash boot (pulling it low while GPIO8 is high forces the chip into download/programming mode). | Strapping |
| IO23 | U0RXD | Often used for the serial console and bootloader input; repurposing it may conflict with UART communication for programming or debugging. | UART |
| IO24 | U0TXD | Often used for boot log output and serial debugging; repurposing it can disable serial output of boot messages and interfere with console debugging. | UART |
| IO25 | GPIO25 | Used during boot to determine the JTAG interface source; this pin has no internal pull-up/down, so it must not be left floating (an external resistor drives it high/low to avoid unintended JTAG mode selection). | Strapping |
| IO26 | USB_D- | By default, this pin is connected to the chip’s internal USB Serial/JTAG peripheral; using it as a general-purpose IO requires disabling or reconfiguring that USB interface. | USB |
| IO27 | USB_D+ | By default, this pin is connected to the internal USB Serial/JTAG controller; using it as a general-purpose IO would disable the USB functionality used for debugging/programming. | USB |
ESP32-H2 modules & revisions
3 variants




