LoRa Airtime Calculator

Find how long a LoRa packet occupies the radio channel, which drives both battery use and how often a device may legally transmit.

Time on air
Symbol time
Payload symbols
Max messages/hour at 1%

Runs entirely in your browser. Nothing you enter is sent anywhere.

How it works

This uses the time-on-air formula from Semtech's LoRa modem documentation. Each step up in spreading factor roughly doubles the airtime, which buys range and sensitivity at the cost of more energy and fewer messages per hour.

Low data rate optimisation is switched on automatically when a symbol lasts longer than 16 ms (SF11 and SF12 at 125 kHz), as LoRaWAN requires. The duty-cycle figure assumes a 1% limit like many EU868 sub-bands; check the rules for your region and channel plan.

T_sym = 2^SF / BW
T_preamble = (n_preamble + 4.25) × T_sym
n_payload = 8 + max(ceil((8PL − 4SF + 28 + 16CRC − 20IH) / (4(SF − 2DE))) × (CR + 4), 0)
T_air = T_preamble + n_payload × T_sym

Worked example

A 20-byte payload at SF7, 125 kHz, coding rate 4/5 with an 8-symbol preamble, explicit header and CRC takes 56.6 ms on air. Under a 1% duty cycle that allows about 636 transmissions per hour. The same packet at SF12 takes about 1.3 seconds.

Frequently asked questions

Does the payload include LoRaWAN headers?

Enter the full PHY payload. LoRaWAN adds 13 bytes of overhead (MAC header, frame header, port and MIC) to your application data, so a 7-byte sensor reading becomes a 20-byte PHY payload.

Why does airtime matter for battery life?

The radio's transmit current is usually the largest load in a LoRa sensor, so doubling the airtime nearly doubles the energy per message.

Related tools