LoRa Airtime Calculator — time on air and duty cycle

Time-on-air from spreading factor, bandwidth and coding rate, with EU and US duty-cycle legality checks.

Example: SF7 at 125 kHz with a 10-byte payload takes 41.22 ms on air, an effective 5.469 kbps.

Formula

T_sym = 2^SF / BW    T_total = T_preamble + n_payload × T_sym

Worked example

SF7 at 125 kHz with a 10-byte payload takes 41.22 ms on air, an effective 5.469 kbps.

  1. T_sym = 2^SF / BW

    T_sym = 2^7 / 125 kHz

    T_sym = 1.024 ms

    Each SF step doubles the symbol time, and so roughly doubles airtime.

  2. T_preamble = (n_preamble + 4.25) × T_sym

    (8 + 4.25) × 1.024 ms

    12.54 ms

  3. n_payload = 8 + max(ceil((8PL − 4SF + 28 + 16) / (4(SF − 2DE))) × (CR + 4), 0)

    8 + max(ceil(96 / 28) × 5, 0)

    28 symbols

  4. T_total = T_preamble + n_payload × T_sym

    12.54 ms + 28 × 1.024 ms

    41.22 ms

Frequently asked questions

How long is a LoRa packet on air?

It depends mostly on spreading factor. A 10-byte payload at SF7/125 kHz takes about 41 ms; the same payload at SF12 takes well over a second. Each SF step roughly doubles airtime, which is the price of the extra range.

What is the EU 1% duty cycle limit?

On EU868 sub-bands you may transmit for at most 1% of the time, so every message must be followed by 99 times its airtime in silence. A 1-second SF12 packet locks the channel for 99 seconds — which is why SF12 is unusable for anything frequent.

Why does higher spreading factor mean longer airtime?

SF sets how many chips encode each symbol. Each step up doubles the symbol duration, so the same data takes twice as long to send. The payoff is roughly 2.5 dB more link budget per step, which is a substantial range gain.

What is low data rate optimisation?

A mode that becomes mandatory when symbol time exceeds 16 ms — SF11 and SF12 at 125 kHz. It sacrifices two bits per symbol to tolerate crystal drift over the long symbol duration. It is already included in the figures above.

Related tools