Ada’s Calculation Audit: ACK Wait Energy
Ada re-derives this chapter’s own numbers step by step, at full precision
ADA · CALCULATION AUDIT
Ada's Calculation Audit: ACK Wait Energy
The chapter claims a Confirmable (CON) CoAP message costs about 16× more energy than a Non-Confirmable (NON) one on an 802.15.4 radio, because CON must keep the receiver awake while it waits for the ACK. That one multiplier decides whether a cold-chain sensor's 1,000 mAh cell lasts ~8 years or ~5 years. This audit rebuilds the per-message energy ledger one step at a time to check the 16× claim.
Companion to the chapter CoAP Message Exchanges — every number here comes from that chapter.
Keep the byte count, the time, and the current in separate columns. CON costs more than NON here because the sender must keep its receiver awake while it waits for the ACK, not because the payload bytes changed.
1. Datagram size
Every CoAP message on this link carries the same header stack, so the byte count is fixed before any energy math starts.
| Component | Bytes |
|---|---|
| Sensor payload | 20 |
| CoAP header | 4 |
| UDP header | 8 |
| IPv6 header | 20 |
| Total datagram | 52 |
2. Energy per transmission
At 250,000 bits/s, 8 mA TX and 5 mA RX (3.0 V, 802.15.4). Each row is one operation, so the ledger stays checkable line by line.
| Step | Arithmetic | Result |
|---|---|---|
| TX time | 52 × 8 ÷ 250,000 | 1.66 ms |
| NON transmit energy | 8 mA × 1.66 ms ÷ 1000 | 0.013 mAs |
| Radio startup energy | 8 mA × 0.5 ms ÷ 1000 | 0.004 mAs |
| NON total | 0.013 + 0.004 | 0.017 mAs |
| ACK wait energy | 5 mA × 50 ms ÷ 1000 | 0.250 mAs |
| ACK receive time | 32 × 8 ÷ 250,000 | 1.024 ms |
| ACK receive energy | 5 mA × 1.024 ms ÷ 1000 | 0.005 mAs |
| CON total | 0.017 + 0.250 + 0.005 | 0.272 mAs |
| CON ÷ NON ratio | 0.272 ÷ 0.017 | 16.0× |
Round only after the ledger is complete: the 16× statement comes from the full CON total divided by the full NON total, not from rounding the ACK-receive term first.
3. Battery lifetime, 30-second reporting
| Metric | NON | CON |
|---|---|---|
| Energy per message | 0.017 mAs | 0.272 mAs |
| Messages per day | 2,880 | 2,880 |
| Daily consumption | 0.0136 mAh | 0.218 mAh |
| Battery lifetime (1,000 mAh) | 73,529 days | 4,587 days |
| Practical lifetime | ~8 years | ~5 years |
What the audit buys you: the 16× multiplier holds up — CON's extra cost is entirely the ACK-wait term (0.250 of the 0.272 mAs total), not the payload. That is why a hybrid policy works: use NON for routine readings that are replaced within seconds, and reserve CON for the rare alert that must be acknowledged, which keeps most of NON's ~8-year battery life while still guaranteeing delivery of the messages that matter.
Every number above is taken from the chapter’s own material and re-derived step by step.