Scenario: You’re designing a battery-powered parking space occupancy sensor that reports status changes. Management wants to know the battery life difference between using CON (reliable) vs NON (efficient) messages.
Given:
- Sensor: CR2032 coin cell battery (225 mAh capacity, 3V nominal)
- Reporting: Status change every 2 hours on average (12 messages/day)
- Radio: 20 mA transmit current, 15 mA receive current at 3V
- Message transmission time: 10 ms (CoAP message at 250 kbps)
- ACK wait time: 40 ms (typical RTT on local network)
Step 1: Calculate NON message energy
Energy per NON message (P × t, expressed in mJ):
- Transmit (10 ms @ 20 mA @ 3V): 60 mW × 10 ms = 0.60 mJ
- No ACK wait (radio off immediately)
- Total per message = 0.60 mJ
Daily energy (12 messages):
12 × 0.60 mJ = 7.2 mJ/day
Battery life (225 mAh × 3V = 675 mWh = 2,430,000 mJ):
2,430,000 mJ / 7.2 mJ/day = 337,500 days
Note: At this low duty cycle, idle (sleep) current dominates.
With a realistic 10 µA sleep current:
Idle energy: 10 µA × 3V × 24 hr = 0.72 mWh/day = 2,592 mJ/day
Total daily ≈ 2,600 mJ/day → battery life ≈ 935 days ≈ 3.1 months (sleep-limited)
Step 2: Calculate CON message energy
Energy per CON message (P × t, in mJ):
- Transmit (10 ms @ 20 mA @ 3V): 60 mW × 10 ms = 0.60 mJ
- Wait for ACK (40 ms @ 15 mA @ 3V): 45 mW × 40 ms = 1.80 mJ
- Receive ACK (10 ms @ 15 mA @ 3V): 45 mW × 10 ms = 0.45 mJ
- Total per message = 2.85 mJ
Daily energy (12 messages):
12 × 2.85 mJ = 34.2 mJ/day
With sleep current (same 2,592 mJ/day idle): total ≈ 2,626 mJ/day
Battery life: 2,430,000 / 2,626 ≈ 925 days ≈ 3.1 months (sleep-limited)
For clarity on the CON overhead ratio (ignoring identical idle component):
Transmit energy ratio CON/NON = 2.85 / 0.60 = 4.75×
Step 3: Account for 10% packet loss and retransmissions
NON with loss (no retry):
- 10% messages lost but not retried
- Radio energy unchanged; delivery rate: 90%
CON with loss (single retry):
- 10% of messages require retransmission (+2.85 mJ extra)
- Average radio energy per message:
(0.9 × 2.85) + (0.1 × 5.70) = 2.565 + 0.570 = 3.135 mJ
- Delivery rate: 99%
- Radio energy increase vs no-loss CON: 3.135 / 2.85 = 1.10× (10% overhead)
Result (radio energy comparison — sleep current excluded for clarity):
- NON radio energy: 0.60 mJ/message
- CON radio energy (no loss): 2.85 mJ/message → 4.75× higher than NON
- CON radio energy (10% loss): 3.14 mJ/message → 5.2× higher than NON
- Trade-off: 10% message loss (NON) vs 5.2× more radio energy per message (CON)
Recommendation for parking sensor: Use NON messages. Missing 1 occupancy update every 10 changes is acceptable (next update arrives in ~2 hours). The 5× radio-energy reduction per message significantly extends battery life for infrequent-reporting sensors where idle current dominates. Reserve CON messages for critical configuration commands (update rate, calibration).