Problem: Initial firmware had all peripherals running continuously. PPG sensor, MCU idle current, BLE advertising, and LCD backlight together produced 3.1-day battery life against a 14-day clinical requirement.
Solution: PPK2 current profiler at 100 µs resolution identified the four largest consumers. MCU moved to tickless RTOS deep sleep (28 µA between samples). PPG sensor used burst-mode sampling: 4 s active, 56 s shutdown, gated on motion-based wear detection. BLE advertising interval: 200 ms → 2,000 ms when idle. LCD backlight gated on user interaction only.
Technology: FreeRTOS · STM32 · PPK2 profiler · BLE 5
Optimisation pattern: continuous-peripheral-to-gated-power-management
Outcomes:
Battery life: 3.1 → 14.2 days. Average current: 2.8 mA → 195 µA (93% reduction). Heart rate accuracy: unaffected. Included in FDA 510(k) power consumption profile.