피드로 돌아가기
I Made a Battery Admit It Was Only 73% Healthy — On-Device, End to End
Dev.toDev.to
Infrastructure

Integer-only 연산 기반 200B Flash 점유의 On-Device SoH 측정 시스템 구현

I Made a Battery Admit It Was Only 73% Healthy — On-Device, End to End

Aliaksandr Liapin2026년 6월 4일6advanced

Context

전압 기반의 단순 측정 방식은 Load 상황에서 Voltage Sag로 인해 배터리 노화 상태(SoH)를 정확히 판별하지 못하는 한계 존재. 클라우드 모델이나 Floating-point 연산 없이 제한된 MCU 리소스 내에서 실제 가용 용량(Usable Capacity)을 실시간 측정하는 온디바이스 솔루션 필요.

Technical Solution

  • Full/Empty Voltage Anchor 설정을 통한 실제 충·방전 구간 내 Coulomb Counting으로 가용 용량 산출
  • Integer-only 연산을 통한 Floating-point 제거로 RAM 사용량 제로화 및 Flash 점유 200 Bytes 최적화
  • 단일 측정치 노이즈 제거를 위한 Integer EMA 적용 및 30~120% 범위의 Plausibility Guard로 이상치 필터링
  • Nordic PPK2를 Cell Emulator로 활용하여 수개월의 배터리 노화 과정을 수분 내로 단축시킨 하드웨어 검증 파이프라인 구축
  • Zephyr NVS를 통한 학습 데이터 Persistence 계층 설계로 재부팅 후에도 SoH 상태 유지
  • Firmware $\rightarrow$ BLE $\rightarrow$ Python Gateway $\rightarrow$ InfluxDB $\rightarrow$ Grafana로 이어지는 End-to-End 텔레메트리 파이프라인 구성

- 하드웨어 검증 시 실제 노화 시간을 단축할 수 있는 Programmable Emulator(예: PPK2) 도입 검토 - 정밀한 전압 기반 Anchor 설정 시 ADC Gain 및 분압 저항에 따른 Voltage Offset 보정 필수 - 런타임 데이터의 일시적 손실 방지를 위해 NVS(Non-Volatile Storage) 기반의 Persistence 레이어 설계

원문 읽기