ESP32-H2-DevKitC-1: Your Gateway to Low-Power IoT and Thread/Zigbee
A compact development board featuring Espressif's RISC-V based ESP32-H2, ideal for energy-efficient wireless applications with Thread and Zigbee support.
The ESP32-H2-DevKitC-1 is a versatile development board designed by Espressif Systems, built around the powerful ESP32-H2 System-on-Chip (SoC). This board serves as an excellent platform for makers, students, and engineers looking to explore low-power wireless communication technologies. Its compact size and comprehensive pinout make it accessible for prototyping and learning, while its advanced features cater to more complex IoT projects.
At the heart of the ESP32-H2-DevKitC-1 is the ESP32-H2 chip, which is based on a single-core 32-bit RISC-V processor. This architecture offers a good balance of performance and power efficiency, making it suitable for battery-powered devices. The ESP32-H2 is Espressif's first RISC-V based chip and is specifically designed for low-power wireless applications, featuring integrated support for IEEE 802.15.4, which is the foundation for protocols like Thread and Zigbee.
Positioned within Espressif's extensive family of IoT solutions, the ESP32-H2 stands out for its focus on the 2.4 GHz wireless band and its robust support for mesh networking protocols. Unlike some of its dual-core Wi-Fi/Bluetooth counterparts, the ESP32-H2 prioritizes energy efficiency and the specific needs of smart home and industrial automation applications. This makes it a compelling choice for projects where battery life and reliable wireless connectivity are paramount, especially those leveraging Thread or Zigbee for interoperability.
Released around 2023, the ESP32-H2-DevKitC-1 is a relatively new offering that brings Espressif's expertise in wireless connectivity to the RISC-V ecosystem. It's an ideal board for those interested in building smart home devices, wireless sensors, or any application requiring reliable, low-power mesh networking. Its straightforward development environment, supported by popular tools like the Arduino IDE and ESP-IDF, ensures a smooth learning curve for beginners while offering the depth required for professional embedded development.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Espressif ESP32-H2 |
| Architecture | 32-bit RISC-V single-core processor |
| Clock speed | Up to 96 MHz |
| Flash / Storage | 4 MB (onboard SPI flash) |
| RAM / SRAM | 512 KB SRAM |
| Operating voltage | 3.3V |
| Digital I/O pins | 19 |
| Analog / ADC | 6 channels (12-bit ADC) |
| PWM | Up to 6 channels (ESP32-H2 supports 16 PWM channels, board exposes some) |
| Connectivity | IEEE 802.15.4 (Thread, Zigbee), Bluetooth 5 (LE) |
| USB | USB-to-UART bridge (CP2102N) for programming and serial communication |
| Power input | USB Type-C (5V), 2-pin JST connector (3.7V LiPo battery), VIN pin (5V) |
| Dimensions | 60.0mm x 25.4mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | 3.3V Power Output |
| GND | Ground |
| VIN | 5V Power Input |
| EN | Enable (High active) |
| IO0 | GPIO0 (Boot mode selection) |
| IO1 | GPIO1 (UART0 TXD) |
| IO2 | GPIO2 (UART0 RXD) |
| IO3 | GPIO3 (ADC1_CH3) |
| IO4 | GPIO4 (ADC1_CH4) |
| IO5 | GPIO5 |
| IO6 | GPIO6 |
| IO7 | GPIO7 |
| IO8 | GPIO8 |
| IO9 | GPIO9 |
| IO10 | GPIO10 |
| IO11 | GPIO11 |
| IO12 | GPIO12 |
| IO13 | GPIO13 |
| IO14 | GPIO14 |
| IO15 | GPIO15 |
| IO16 | GPIO16 |
| IO17 | GPIO17 |
| IO18 | GPIO18 |
| IO19 | GPIO19 |
| IO20 | GPIO20 |
| IO21 | GPIO21 |
| IO22 | GPIO22 |
| IO23 | GPIO23 |
| IO24 | GPIO24 |
| IO25 | GPIO25 |
| IO26 | GPIO26 |
| IO27 | GPIO27 |
| IO28 | GPIO28 |
| IO29 | GPIO29 |
| IO30 | GPIO30 |
| IO31 | GPIO31 |
| IO32 | GPIO32 |
| IO33 | GPIO33 |
| IO34 | GPIO34 |
| IO35 | GPIO35 |
| IO36 | GPIO36 |
| IO37 | GPIO37 |
| IO38 | GPIO38 |
| IO39 | GPIO39 |
| ADC1_CH0 | GPIO36 (ADC1_CH0) |
| ADC1_CH1 | GPIO39 (ADC1_CH1) |
| ADC1_CH2 | GPIO34 (ADC1_CH2) |
| ADC1_CH3 | GPIO35 (ADC1_CH3) |
| ADC1_CH4 | GPIO33 (ADC1_CH4) |
| ADC1_CH5 | GPIO32 (ADC1_CH5) |
| ADC2_CH0 | GPIO0 (ADC2_CH0) |
| ADC2_CH1 | GPIO2 (ADC2_CH1) |
| ADC2_CH2 | GPIO4 (ADC2_CH2) |
| ADC2_CH3 | GPIO15 (ADC2_CH3) |
| ADC2_CH4 | GPIO13 (ADC2_CH4) |
| ADC2_CH5 | GPIO12 (ADC2_CH5) |
| ADC2_CH6 | GPIO14 (ADC2_CH6) |
| ADC2_CH7 | GPIO27 (ADC2_CH7) |
| UART0_TXD | GPIO1 |
| UART0_RXD | GPIO2 |
| UART1_TXD | GPIO17 |
| UART1_RXD | GPIO18 |
| SPI_MOSI | GPIO10 |
| SPI_MISO | GPIO11 |
| SPI_SCK | GPIO12 |
| SPI_CS | GPIO9 |
| I2C0_SDA | GPIO21 |
| I2C0_SCL | GPIO22 |
| I2C1_SDA | GPIO19 |
| I2C1_SCL | GPIO20 |
| PWM0 | GPIO0 |
| PWM1 | GPIO1 |
| PWM2 | GPIO2 |
| PWM3 | GPIO3 |
| PWM4 | GPIO4 |
| PWM5 | GPIO5 |
| PWM6 | GPIO6 |
| PWM7 | GPIO7 |
| PWM8 | GPIO8 |
| PWM9 | GPIO9 |
| PWM10 | GPIO10 |
| PWM11 | GPIO11 |
| PWM12 | GPIO12 |
| PWM13 | GPIO13 |
| PWM14 | GPIO14 |
| PWM15 | GPIO15 |
| BT_EN | Bluetooth Enable |
| BLE_EN | Bluetooth Low Energy Enable |
| RST | Reset Pin |
Wiring & circuit basics
The ESP32-H2-DevKitC-1 operates at a logic level of 3.3V. It is crucial to connect peripherals that also operate at 3.3V. Connecting 5V devices directly to the GPIO pins can damage the ESP32-H2. If you need to interface with 5V logic devices, use a logic level shifter. Powering the board can be done via the USB Type-C port, a 3.7V LiPo battery connected to the JST connector, or the VIN pin which accepts 5V. The onboard voltage regulator will step down the voltage to the required 3.3V for the chip and peripherals connected to the 3V3 pin.
When powering the board, ensure the power source can supply sufficient current. For USB power, a standard 500mA port is usually adequate for basic projects, but for more demanding applications or when powering external components, consider a supply capable of 1A or more. If using a LiPo battery, ensure it is correctly connected to the JST connector, observing polarity. The VIN pin is also a reliable option for 5V power input, often used when the board is part of a larger system. Always double-check polarity before connecting power to avoid damage.
A simple example circuit is connecting an LED. Choose a GPIO pin (e.g., GPIO5) and connect it to a current-limiting resistor (typically 220-330 ohms for a standard LED) and then to the anode of the LED. The cathode of the LED connects to a GND pin. This setup allows you to control the LED by setting the GPIO pin HIGH to turn it on and LOW to turn it off. For an I2C sensor, connect its SDA pin to I2C0_SDA (GPIO21) and its SCL pin to I2C0_SCL (GPIO22). Ensure the sensor also operates at 3.3V or use a level shifter. Both the sensor and the ESP32-H2 need to share a common GND connection.
Programming & getting started
The ESP32-H2-DevKitC-1 can be programmed using several popular toolchains. For beginners and rapid prototyping, the Arduino IDE with the Espressif ESP32 Arduino Core installed is an excellent choice. MicroPython and CircuitPython are also well-supported, offering a Python-based development experience. For more advanced users or those requiring fine-grained control and access to all chip features, Espressif's ESP-IDF (Espressif IoT Development Framework) provides a powerful C/C++ SDK. PlatformIO, an extension for Visual Studio Code, also offers comprehensive support for the ESP32-H2.
To upload your first program using the Arduino IDE: 1. Install the Arduino IDE. 2. Go to File > Preferences and add 'https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json' to the Additional Boards Manager URLs. 3. Go to Tools > Board > Boards Manager, search for 'esp32', and install the esp32 by Espressif Systems package. 4. Select the 'ESP32H2 Dev Module' from the Tools > Board menu. 5. Connect the ESP32-H2-DevKitC-1 to your computer via USB. 6. Select the correct COM port from Tools > Port. 7. Write or upload a sample sketch (e.g., Blink). 8. Click the Upload button.