Category (Click)
개발보드 덕질하기

[ESP32-H2] 아기다리고기다리던..ESP32-H2-DevKitM-1 핸즈온

 차완기 - @6/27/2023, 11:16:00 PM

그래도 애정이 있었으니까…

지난 2021년 8월 ESPRESSIF에서 IEEE802.15.4, 즉 ZigBee를 지원하는 MCU를 공개했었습니다. 그 당시 아두이노 프레임워크를 이용해 ESP32를 자주 사용하던 때여서 ZigBee를 지원하는 MCU가 출시된다는 소식에 상당한 기대감을 가지게 되었습니다.
하지만 그것도 잠시, 오랜 시간동안 기다리다 보니 잊혀지기도 하였고 그동안 HomeAssistant를 활용해 Wi-Fi 위주 IoT 환경을 꾸리다 보니 관심이 줄어들게 되었습니다.
결정적으로 최근 기습적으로(?) ZigBee를 달고 출시된 ESP32-C6로 인해 H2에 대한 기다림은 사라지게 되었죠 ㅋㅋ
그러던 중 커뮤니티를 통해 ESP32-H2가 출시되었다는 소식을 듣게 되어 “그래도 애정이 있었으니까..” 하며 개발보드를 구매하기로 하였습니다.
개발자 키트는 10달러로 판매가가 선정되어 있었습니다. 뒤에서 알아보겠지만 H2는 보조 프로세서 용도의 라인업이라 보다 저렴할 것으로 예상했는데, C6때보다 더 비싼 가격으로 선정된 것을 알 수 있었습니다. 아무래도 출시 초기라 그런게 아닐까 싶네요.

ESP32-H2-DevKitM-1 도착

구매한 제품은 정식 출시 전의 개발자 샘플으로, 정식 버전과 차이가 있을 수 있습니다.
구매한 시점 기준으로 ESP32-H2-DevKitM-1-N4 모델만이 구매가 가능하였는데요, 후술하겠지만 메인 MCU보다는 통신용 모듈이 주 목적인 MCU라 작은 크기의 ESP-32-MINI-1 모듈이 박혀있는것을 확인할 수 있습니다.
MINI 모듈은 처음 보는것 같습니다. 엄청 작네요
개발자 샘플이다 보니 아직 테스트중인 부분이 있나봅니다. 동봉된 종이의 한 면에는 펌웨어의 주의사항이, 반댓면에는 하드웨어의 주의사항이 기록되어 있었습니다.
펌웨어
현재 ESP-IDF git 리포지토리의 master 브랜치에서 개발자 샘플인 ESP32-H2 v0.1를 미리보기로 지원하고 있음. 버그픽스가 주기적으로 이루어지니 자주 pull할 것.
개발중인 ESP-IDF v5.1에서 ESP32-H2를 정식 지원할 예정임. 기여할거면 11038 이슈로 ㄱ
하드웨어
실제 양산 제품과 다를 수 있음.
ADC는 캘리브레이션이 되지 않음
저전력 기능(Light-sleep, Deep-sleep)은 펌웨어 코드가 아직 구현되지 않음. 조만간 업데이트될 예정.
ESP RainMaker Cloud 플렛폼에서 ESP32-H2를 지원할 예정이며, 자세한 내용은 지원에 문의.

데이터시트 살펴보기

일단 데이터시트를 먼저 살펴보기로 하였습니다. 글 작성 당시 기준 아직 정식 버전이 아닌지 “PRELIMINARY” 워터마크가 붙어있었습니다.
표지에는 굵직굵직한 내용만 있네요. BLE와 IEEE802.15.4를 지원하는 MCU라 합니다. 그런데.. 모델 구분에 In-Package Flash….? 세상에.. 이미 ESP32-H2-MINI 모듈 자체도 작기 때문에 SoC를 직접 사용할 일은 적어보이지만 굳이 설계할 일이 있다면 편리할 것 같습니다.
개요를 살펴보면 다음과 같습니다.
연결성
Bluetooth 5(LE), Blutooth mesh
Thread, ZigBee
일반
32-bit RISC-V @ 96 MHz
32 KB SRAM
128 KB ROM
4 KB LP memory
2 MB or 4 MB SoC 내장 Flash
초-저전력이라는 문구가 있어 동일하게 ZigBee와 BLE를 지원하는 ESP32-C6과 전류 소비를 비교해보았습니다. RF 동작 시에는 2배, 절전 상태에서는 대략 3배까지 소비 전류가 낮습니다.
.
ESP32-C6
ESP32-H2
CPU
RISC-V 32-bit @ 160 MHz (HP) RISC-V 32-bit @ 20 MHz (LP)
RISC-V 32-bit @ 96 MHz
CPU Clocks
외장 메인 클럭 필수 내장 RC 오실레이터 20 MHz
외장 메인 클럭 필수 내장 RC 오실레이터 17.5 MHz
Memory
512 KB HP SRAM 16 KB LP SRAM
32 KB SRAM 4 KB LP SRAM
Flash
최대 16 MB (외장, SPI, DSPI, QSPI, QPI) 4 MB (in-package 모델 한정, QSPI)
2, 4 MB (in-package, QSPI)
Wi-Fi
IEEE 802.11ax (2.4 GHz, non-AP) IEEE 802.11.b/g/n
-
Bluetooth
Bluetooth LE 5.3
Bluetooth LE 5.3
ZigBee
지원
지원
GPIO
QFN40: 30 - 6 (외장 Flash 필수) QFN32: 22 - (6) (Flash 내장)
19
ADC
12-bit SAR, 7 채널 내장 온도센서
12-bit SAR, 5 채널 내장 온도센서
etc
USB Serial/JTAG Controller
USB Serial/JTAG Controller
끝으로 ZigBee를 지원하는 두 MCU를 비교해보았습니다. C6는 성능이 높고 기능이 많은 반면, H2는 성능이 낮은 대신 아마도(?) 저렴할 것으로 예상되어 IoT 디바이스 제작에는 H2쪽을 사용하게 될 것 같습니다.
C6는 디스플레이가 사용되는 디바이스에 적절할 것 같네요.

개발보드 살펴보기

이제 하드웨어를 살펴보겠습니다.
USB x2
C타입 USB 포트가 2개 존재합니다. 제품 구매 당시 썸네일에 Micro-B가 사용된 이미지가 올라와 있어 조금 실망했었는데, 실제 받아보니 C타입이네요. 행복합니다.
2개의 포트 중 윗쪽은 USB-UART 칩을 거쳐 MCU에 연결되는 전통적인 업로딩 포트이고 아랫쪽 포트는 CDC와 JTAG를 지원하는 USB 포트입니다. 참고로 DFU 기능은 포함되지 않았습니다.
버튼 x2
리셋 버튼과 부팅 모드 선택을 위한 버튼입니다. 특이하게도 H2는 기존 ESP32와 다르게 9번 GPIO가 부팅 모드 선택으로 묶여있었습니다.
WS2812B (a.k.a. NeoPixel)
네오픽셀이라고도 부르는 WS2812B RGB LED가 하나 붙어있습니다. 이건 이제 ESPRESSIF DevKit의 전통이 된 것 같네요.
전류 측정용 헤더 핀
ESP32-H2 모듈에 공급되는 3.3 V 전원 라인과 직렬로 연결된 헤더 핀입니다. ESP32-H2의 전류 측정 목적으로 사용할 수 있으며, 평상시에는 점퍼로 꽂아 사용하면 됩니다.
32 kHz 크리스탈
RTC를 위한 32 Khz 외장 크리스탈을 연결할 수 있는 자리가 마련되어 있습니다. 무슨 이유에서인지 자리는 나와있지만 부품은 붙어있지 않고 대신 0옴 저항으로 GPIO13, 14에 점프되어 있습니다. 필요하면 알아서 붙여라.. 인 것 같습니다.
가지고 있던 ESP32-S3-DevKitC-1, ESP32-C6-DevKitC와 같이 비교해보았습니다. 혼자 MINI타입 모듈이라 모듈이 엄청 작아 보이네요 ㅋㅋㅋ

간단한 테스트

이미 ESP32-C6에서 ZigBee는 충분하게 맛을 보았기 때문에 온보드 LED를 켜는 예제만 올려보고 마치도록 하겠습니다.
Master Branch의 최신 ESP-IDF(v5.1.0)를 다운받아야 ESP32-H2를 사용할 수 있습니다.
잘 업로드되고 잘 작동하네요.
요건 부품함 구석에 잘 모셔두었다가 프로젝트를 진행할 일이 있을 때 다시 꺼내서 사용해봐야겠습니다.