The Profile Energy Budget
Ada audits the profile energy budget — payload rate, packets, duty cycle, and battery life
ADA · CALCULATION AUDIT
Bluetooth · optional mathematics and physics
The Profile Energy Budget
A 100 Hz, three-axis sensor packing 16 bits per axis produces 6 bytes a sample and a 4,800 bps stream that both Classic Bluetooth SPP and BLE GATT can carry. Yet their battery lives split hard: SPP’s always-active link lasts 3.1 days while duty-cycled BLE reaches 46.8 days. This audit rebuilds the packing, packet, and current ledgers and asks whether that gap is magic, or simply the radio sleep time BLE wins between connection events.
Companion to the chapter Profiles for Interoperability — every number here comes from that chapter.
Payload rate, packets, duty cycle, and battery life, ~4 minutes
A profile choice is a physics choice once the radio has to wake, send bytes, and return to sleep. Keep the payload arithmetic visible before comparing Classic Bluetooth SPP with BLE GATT.
Ada audits the profile energy budget
| Audit step | Arithmetic from the scenario | Design implication |
|---|---|---|
| Sensor payload rate | 3 axes x 16 bits = 48 bits = 6 bytes/sample; 6 bytes x 100 Hz = 600 bytes/s = 4,800 bps | Both SPP and BLE GATT have enough throughput for this 100 Hz stream. |
| SPP packing | 990-byte MTU / 6 bytes = 165 samples/packet; 100 / 165 = 0.606 packets/s; 990 / (990 + 27) = 97.3% | Classic Bluetooth has large throughput margin, but the connection stays comparatively active. |
| BLE default MTU | 23 - 3 = 20 bytes payload; floor(20 / 6) = 3 samples; 100 / 3 = 33.4 notifications/s; 1 / 0.0075 s = 133 events/s | The default MTU can carry the stream, but it spends many connection events. |
| BLE negotiated MTU | 185 - 3 = 182 bytes payload; floor(182 / 6) = 30 samples; 100 / 30 = 3.34 notifications/s | A larger MTU reduces notification count and leaves more scheduling margin. |
| Battery comparison | SPP: 40 mA x 8 h = 320 mAh/day; 1000 / 320 = 3.125 days. BLE: 2 / 7.5 = 0.267 duty; 10 mA x 0.267 + 0.002 mA x 0.733 = 2.671 mA; 2.671 x 8 = 21.37 mAh/day; 1000 / 21.37 = 46.8 days. | The chapter's BLE result is not magic; it follows from radio sleep time between connection events. |
Use this audit before generalizing the verdict. If the sample rate, MTU, active current, sleep current, or connection interval changes, rerun the same ledger with measured values.
Every number above is taken from the chapter's own profile energy-budget example and re-derived step by step.