Scenario: A European university campus deploys 500 environmental sensors using LoRaWAN on the EU868 ISM band (g1 sub-band, 1% duty cycle limit). Each sensor sends 50 bytes every 10 minutes. Determine if the system complies with ETSI regulations and calculate remaining capacity.
Given Parameters:
- Sensors: 500 devices
- Payload: 50 bytes + 13 bytes LoRaWAN overhead = 63 bytes total
- Reporting interval: Every 10 minutes
- Spreading Factor: SF7 (data rate 5.47 kbps, fastest LoRa setting)
- Frequency band: EU868 g1 (868.0-868.6 MHz)
- Duty cycle limit: 1% per device per hour (ETSI EN300.220)
- Available channels: 3 channels in g1 band
Step 1: Calculate Time-on-Air (ToA) per Transmission
Using the simplified LoRa ToA estimate for SF7 (consistent with the scenario above):
Packet size: 63 bytes = 504 bits
Data rate at SF7: 5.47 kbps = 5,470 bps
ToA = 504 / 5470 = 0.092 seconds ≈ 92 milliseconds per packet
Note: Actual LoRa ToA includes preamble, header, and coding rate overhead. For SF7/BW125/CR4/5, a 63-byte payload yields approximately 100-120 ms. We use 92 ms as a conservative lower bound.
Step 2: Calculate Per-Sensor Duty Cycle
Each sensor sends 6 packets per hour (every 10 minutes):
Airtime per hour = 6 packets × 0.092 seconds = 0.552 seconds/hour
Duty cycle = (0.552 / 3600) × 100% = 0.015%
Compliance check: 0.015% < 1% limit – Each sensor is compliant (well under the limit).
Step 3: Calculate Total Network Load
For 500 sensors:
Total packets per hour = 500 sensors × 6 = 3,000 packets/hour
Total airtime = 3,000 × 0.092 sec = 276 seconds/hour
Channel utilization = 276 / 3600 = 7.67% of ONE channel
Step 4: Distribute Load Across 3 Channels
LoRaWAN uses frequency hopping across 3 channels:
Per-channel utilization = 276 sec / (3 channels × 3600 sec)
= 276 / 10,800
= 2.56% per channel
Result: Network uses 2.56% of available airtime per channel.
Step 5: Calculate Remaining Capacity
Maximum packets per hour (1% duty cycle budget across 3 channels):
1% budget per channel = 3600 × 0.01 = 36 seconds/channel/hour
Max packets per channel = 36 / 0.092 = 391 packets/hour
For 3 channels = 391 × 3 = 1,173 packets/hour (duty-cycle limited)
Current load: 3,000 packets/hour across all sensors, but each sensor only uses 0.015% duty cycle.
At 30% utilization (conservative collision threshold), max load per channel:
Max packets/hour/channel = (3600 × 0.30) / 0.092 = 11,739 packets
For 3 channels = 11,739 × 3 = 35,217 packets/hour
Current load = 3,000 packets/hour
Remaining = 35,217 - 3,000 = 32,217 packets/hour
Additional sensors = 32,217 / 6 = ~5,370 more sensors (collision-limited)
Key Findings:
| Per-sensor duty cycle |
0.015% |
Compliant (well under 1%) |
| Channel utilization |
2.56% |
Healthy (well under 30% threshold) |
| Duty-cycle capacity |
1,173 pkts/hr (3 ch) |
Per-device limit, not system limit |
| Collision-limited capacity |
~5,370 add’l sensors |
At 30% utilization threshold |
| Current deployment |
500 sensors |
Room to grow significantly |
Recommendations:
1. Current system is compliant and healthy (20.6% utilization leaves 40% headroom before quality degrades).
2. Can safely add 200+ sensors without major issues.
3. For expansion beyond 700 sensors:
- Deploy second gateway on different channels (g2 or g3 sub-bands)
- Use adaptive data rate (ADR) to optimize close sensors to higher SF (shorter ToA)
- Implement confirmed uplinks only for critical alerts (reduces retransmissions)
4. Emergency alert handling:
- Current system has NO capacity for alert storms (e.g., 50 sensors sending emergency alerts every 30 seconds)
- For alerts: use Class C (downlink-initiated) or hybrid LoRaWAN + cellular backup
Cost Comparison for Expansion (229 sensors):
| LoRaWAN |
229 × $8 = $1,832 |
$0 (no fees) |
$1,832 |
| NB-IoT |
229 × $10 = $2,290 |
229 × $3 × 10 = $6,870 |
$9,160 |
Savings with LoRaWAN: $7,328 (80%) over 10 years, plus no carrier lock-in.
Key Insight: The 1% duty cycle limit is per-device, not per-channel. With proper channel hopping, 500 sensors use only 20% of channel capacity. The real limit is collision probability (packets overlapping in time/frequency), which becomes noticeable above 30% utilization. Always calculate BOTH duty cycle compliance AND channel saturation to determine true network capacity.