TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 38 READS

같은 ESP32-C6, SDK 하나로 배터리 수명이 갈린다

같은 ESP32-C6, SDK 하나로 배터리 수명이 갈린다
SOURCE IMAGE · HACKER NEWS

사물인터넷(IoT) 설계의 무게중심이 '연결'에서 '전력 지속성'으로 옮겨가면서, 어떤 마이크로컨트롤러를 쓰느냐만큼이나 그 위에 어떤 소프트웨어 계층을 올리느냐가 중요해지고 있다. Qoitech가 공개한 벤치마크는 바로 이 지점을 실측으로 파고든다. 대상은 RISC-V 아키텍처와 Wi-Fi 6·Thread·BLE를 갖춘 Espressif의 ESP32-C6이며, 동일한 하드웨어를 Arduino, Zephyr RTOS, ESP-IDF 세 가지 프레임워크에서 각각 구동해 소비 전류를 비교했다. 결론부터 말하면, 같은 칩이라도 SDK의 기본 동작만으로 전력 프로파일이 눈에 띄게 갈렸다.

측정 방법의 엄밀함

이 실험의 신뢰도는 측정 파이프라인에서 나온다. 시험 대상 보드는 Otii Ace 전력 프로파일러로 3.6V 정전압을 공급받았고, 주 전류·주 전력·주 전압·UART RX 네 채널을 동기화해 기록했다. Python과 Otii TCP API로 자동화 프레임워크를 구성해 각 워크로드를 60초씩 5회 반복 실행하고, 사이마다 20초의 전원 차단 냉각 구간을 둬 열 드리프트를 배제했다. 부팅 시 발생하는 전류 스파이크는 정상상태(steady-state) 구간만 잘라내는 마진 크로핑으로 제거했으며, 부동소수점 정밀도를 지키기 위해 샘플을 NumPy 바이너리(.npy)로 저장하고 로그를 전력 타임라인과 시각 동기화했다.

한 가지 반드시 짚어야 할 전제는 'Out-of-The-Box(OOTB)' 정책이다. 컴파일러 플래그, 링커 스크립트, 전력 관리 설정을 표준 템플릿 이상으로 손대지 않았고, 그 결과 라이트 슬립·딥 슬립·RTC 웨이크 같은 저전력 모드는 전혀 활성화되지 않았다. 또한 Wi-Fi와 BLE 라디오도 초기화하지 않았다. 즉 여기서 보고된 20mA대 수치는 ESP32-C6의 최저 전력 상태가 아니라 각 SDK의 기본 '깨어 있는 유휴' 동작을 반영한다. 마이크로암페어 수준을 노리는 실제 제품이라면 별도의 절전 최적화가 필수라는 점을 잊어선 안 된다.

SDK별로 갈린 성적

ESP-IDF는 가장 일관된 전력 프로파일을 보였다. CRC8과 부동소수점 연산 워크로드에서 약 24.77mA로 안정적이었는데, 네이티브 FreeRTOS의 vTaskDelay, 우수한 주변장치 클럭 게이팅, 그리고 GCC 14.2.0에 -O3 최적화가 맞물려 코어가 명령을 빠르게 처리하고 유휴 상태로 신속히 복귀한 결과로 분석됐다. Zephyr는 활성 테스트 전반에서 IDF보다 2~3mA 높은 기준선을 유지했다. 이는 하드웨어 추상화와 고도로 모듈화된 스케줄러가 치르는 비용으로, 단일 작업 기준 배터리 수명이 약 10~12% 줄어드는 대가를 감수하는 대신 다양한 실리콘 벤더를 아우르는 이식성을 얻는 구조다.

흥미로운 반전은 Arduino에서 나왔다. Arduino는 활성 워크로드에서 오히려 -Os 최적화가 단순 GPIO 래퍼의 명령 루프를 촘촘하게 만들어 준수한 효율을 보였지만, 아무 일도 하지 않는 Empty 시나리오에서 33.57mA를 기록해 활성 상태(약 25.3mA)보다 35% 더 많은 전류를 소모했다. 이는 init() 시퀀스가 라디오 스택이나 고속 클럭 같은 백그라운드 서비스를 명시적으로 끄지 않는 한 대기 상태로 남겨둔다는 뜻이다. 실무자 입장에서는 'Arduino에서 유휴 루프가 곧 절전'이라는 통념이 오히려 독이 될 수 있음을 시사한다.

버그도 전력 이벤트다

부동소수점 테스트에서 Arduino는 5회 반복 모두 49.38~49.41초 사이에 일관되게 스택 오버플로로 시스템 실패를 일으켰다. 근본 원인 분석 결과 코드상의 개발자 실수 두 건이 지목됐고, 크래시 직전 UART 타임스탬프와 전력 프로파일을 대조하자 전류 스파이크가 포착됐다. 예외 처리 루틴이 SoC를 정상 실행 전류로 유지하지 못한 것인데, 이는 코드 안정성이 '그린 컴퓨팅'의 전제 조건임을 보여준다. 나아가 저자들은 전력 프로파일링이 소프트웨어 불안정을 탐지하는 부채널(side-channel)로 기능할 수 있다는 가능성을 제시한다. 에너지 분석과 보안 분석이 만나는 지점이다.

다만 이 벤치마크를 읽을 때는 범위를 분명히 해야 한다. 저전력 모드와 무선 스택을 배제한 OOTB 조건이므로, 실제 배터리 구동 제품의 소비를 그대로 예측하는 자료는 아니다. 그럼에도 '기본값만 놓고 봤을 때'라는 조건에서 프레임워크 선택이 만들어내는 격차를 정량적으로 드러냈다는 점에서 실무적 가치가 있다. 네이티브 전력 안정성이 최우선이라면 ESP-IDF, 멀티 플랫폼 이식성을 위해 밀리암페어를 내줄 수 있다면 Zephyr, 빠른 개발과 활성 효율을 원하되 백그라운드 소비와 스택 안정성을 세심히 관리할 자신이 있다면 Arduino가 각각의 자리에 놓인다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://www.qoitech.com/blog/esp32-c6-power-consumption-comp...
SHARE
처리 중...