duty cycle budget
duty_cycle_budgetCalculates LoRa duty cycle budget for EU868, US915, AS923, and AU915 regulatory regions. Computes maximum messages per hour, minimum transmission interval, and effective data rate under regional duty cycle constraints. EU868 and AS923 enforce 1% duty cycle (ETSI); US915 has no duty cycle limit but a 400 ms dwell time per channel (FCC); AU915 has no duty cycle limit. Flags dwell-time-limited regions where packet airtime must not exceed the dwell time. Chain from lora_airtime to get airtime_ms input for end-to-end regulatory compliance analysis.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | LoRa regulatory region. EU868: 1% duty cycle (ETSI). US915: no duty cycle but 400 ms dwell time (FCC). AS923: 1% duty cycle (varies by country). AU915: no duty cycle limit. | EU868 |
| airtime_ms | Yes | Packet time-on-air in milliseconds. Obtain from the lora_airtime tool. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| duty_cycle_pct | Yes | Applicable duty cycle limit as a percentage. 100 means no duty cycle restriction. | |
| min_interval_s | Yes | Minimum interval between transmissions in seconds to comply with duty cycle regulation. | |
| dwell_time_limited | Yes | True if the region enforces a per-transmission dwell time limit (e.g., US915 400 ms). | |
| max_messages_per_hour | Yes | Maximum messages per hour allowed under the regional duty cycle constraint. | |
| effective_data_rate_bps | Yes | Effective throughput in bits per second considering duty cycle. For duty-cycle-limited regions, this reflects actual achievable throughput. |