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

Cover Image

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

지난 2021년 8월 ESPRESSIF에서 IEEE802.15.4, 즉 ZigBee를 지원하는 MCU를 공개했었습니다. 그 당시 아두이노 프레임워크를 이용해 ESP32를 자주 사용하던 때여서 ZigBee를 지원하는 MCU가 출시된다는 소식에 상당한 기대감을 가지게 되었습니다.

하지만 그것도 잠시, 오랜 시간동안 기다리다 보니 잊혀지기도 하였고 그동안 HomeAssistant를 활용해 Wi-Fi 위주 IoT 환경을 꾸리다 보니 관심이 줄어들게 되었습니다.

https://www.varofla.com/eae70b3f-81d3-4fe2-8667-ee1f28503cf9

www.varofla.com

결정적으로 최근 기습적으로(?) 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-C6ESP32-H2
CPURISC-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
Memory512 KB HP SRAM
16 KB LP SRAM32 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-FiIEEE 802.11ax (2.4 GHz, non-AP)
IEEE 802.11.b/g/n-
BluetoothBluetooth LE 5.3Bluetooth LE 5.3
ZigBee지원지원
GPIOQFN40: 30 - 6 (외장 Flash 필수)
QFN32: 22 - (6) (Flash 내장)19
ADC12-bit SAR, 7 채널
내장 온도센서12-bit SAR, 5 채널
내장 온도센서
etcUSB Serial/JTAG ControllerUSB 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를 사용할 수 있습니다.

잘 업로드되고 잘 작동하네요.

요건 부품함 구석에 잘 모셔두었다가 프로젝트를 진행할 일이 있을 때 다시 꺼내서 사용해봐야겠습니다.