From 6d1edd82dd795d39f9b2e30da74519df735e5f34 Mon Sep 17 00:00:00 2001 From: lkasso Date: Sat, 13 Jun 2026 14:45:59 -0700 Subject: [PATCH] Add Battery Life section with worked examples Prompted by a customer question about MMS runtime for full IMU + sensor fusion logging. Expands the power section into an explicit Battery Life treatment: - Clarifies the Sensor Fusion current figure is MCU overhead ADDED to the underlying sensors the mode drives (was a double-counting trap) - Notes a logging session ends when EITHER the battery or the on-board flash runs out, whichever is first, and how to estimate both - Worked-examples table for the MMS covering accel-only, full IMU, NDoF->Euler logging, and the same streamed over BLE The headline result for the common "fusion -> Euler, 100 Hz, logging" configuration: ~2 days on the MMS, with battery and 512 MB flash running out at nearly the same time. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/api-specification.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/docs/api-specification.md b/docs/api-specification.md index 75b6fb9..3167325 100644 --- a/docs/api-specification.md +++ b/docs/api-specification.md @@ -2723,11 +2723,33 @@ Approximate current draw per sensor when active (excluding BLE overhead): | Humidity | 0.0018 | | Ambient Light | 0.22 | | Color / Proximity | 0.065 | -| Sensor Fusion (any) | 0.925 | +| Sensor Fusion (MCU overhead) | 0.925 | -**BLE streaming overhead**: ~7.5 mA when actively streaming data over Bluetooth. When logging without a BLE connection, this overhead is zero. +The **Sensor Fusion** figure is the extra draw of running the fusion algorithm on the MCU — it is **added on top of** the underlying sensors the fusion mode drives, not instead of them. Don't double-count: a fusion mode already implies its sensors are running (NDoF = accel + gyro + mag; IMUPlus = accel + gyro; Compass/M4G = accel + mag — see [0x19 - Sensor Fusion Module](#0x19-sensor-fusion-module)). -**Battery life estimate**: Battery capacity (mAh) / (BLE overhead + sum of active sensor currents) = hours of operation. For example, an MMS (100 mAh) streaming accelerometer BMI270 (0.21 mA) over BLE: 100 / (7.5 + 0.21) ≈ 13 hours. The same configuration logging (no BLE): 100 / 0.21 ≈ 476 hours ≈ 19.8 days. +### Battery Life + +Two things drain on a logging session, and **whichever runs out first** ends it: the battery, and the on-board flash. Estimate both. + +**Battery.** Average current ≈ BLE overhead + sum of active sensor currents (+ fusion MCU overhead if a fusion mode is active). Battery life (hours) = battery capacity (mAh) ÷ average current (mA). + +* **BLE streaming overhead**: ~7.5 mA while a connection is streaming. Logging with no connection adds **zero** — this is why logging lasts far longer than streaming. +* Flash writes during logging average well under 0.05 mA (writes are brief bursts), so they're negligible against the sensor draw. + +**Flash.** Time to fill (seconds) = log capacity (entries) ÷ (entries-per-sample × sample rate). See [Logging Memory Capacity](#logging-memory-capacity) for entries-per-sample and per-board capacity. + +#### Worked examples — MetaMotion S (100 mAh, 67.1M log entries) + +| Scenario (100 Hz) | Avg current | Battery life | Flash fills | Practical limit | +| :-------------------------------------------------- | :---------- | :----------- | :---------- | :-------------- | +| Accelerometer only — **logging** | ~0.21 mA | ~19 days | ~3.9 days | **~3.9 days** (flash) | +| Full IMU (accel + gyro + mag) — **logging** | ~1.2 mA | ~3.4 days | ~1.3 days | **~1.3 days** (flash) | +| NDoF fusion → Euler angles — **logging** | ~2.1 mA | ~47 hours | ~47 hours | **~2 days** (both at once) | +| NDoF fusion → Euler angles — **streaming over BLE** | ~9.6 mA | ~10 hours | n/a | **~10 hours** (battery) | + +The fusion-logging row is the common "wear it and capture orientation" configuration: full IMU feeding sensor fusion, Euler output to flash at 100 Hz, disconnected. On the MMS that's **roughly two days** between charges — and notably the battery and the 512 MB flash run out at nearly the same time, so neither is obviously the thing to upgrade first. Logging the *raw* IMU alongside Euler (rather than fusion output alone) fills flash about 2.5× faster (~18 hours) while battery life is unchanged. + +These are approximations: real life varies with temperature, battery age, BLE connection interval, and exact sensor settings. Treat them as ballpark, not spec. ## Data Processor Filter Configuration