LoRaWAN Spreading Factor Explorer
LoRaWAN Spreading Factor Explorer
AnimationLoRaWANAirtime and energy
Explore how Spreading Factor affects range, data rate, power consumption, and airtime.
Symbol duration
Time on air
Packet energy at 26 mA
Approximate bit rate
TryCalculate airtime for a 20 B payload at Spreading factor SF7, then repeat at SF12 with Bandwidth unchanged.
ObserveCompare Symbol duration, Time on air and Packet energy; the higher spreading factor occupies the channel much longer for the same payload.
ExplainSymbol duration is 2 raised to SF divided by bandwidth. Increasing SF therefore trades a lower symbol rate and longer airtime for additional processing gain.
Technical boundariesAirtime is computed for one LoRa packet configuration; regional dwell-time and duty-cycle rules, interference, capture, oscillator error, coding implementation, antenna gain, gateway diversity and retransmissions are outside the calculation.
Colour keyLoRaWAN identitycurrent selectioncomparison datawithin targetairtime caution
Transmission Characteristics
1.024 msSymbol duration
43 symbolsPayload symbols
56.58 msTime on air
4.85 mJPacket energy
5.47 kb/sApproximate bit rate
1.0× baselineProcessing-gain range index
Spreading Factor Comparison Chart
SF7 keeps this 20 B packet brief.Use the comparison bars to see the channel and energy cost of extra processing gain.
Model reference and interpretation
From symbols to packet airtime
The calculator first derives one symbol's duration from the selected spreading factor and bandwidth. It then applies the configured preamble, header mode, CRC choice, coding rate, and payload length to determine how many symbols the radio must transmit.
That order matters. A payload is not converted straight from bytes to seconds: header and error-protection choices change the symbol count, while spreading factor and bandwidth change the duration of every one of those symbols.
Tsymbol = 2^SF / BW
Tpreamble = (Npreamble + 4.25) × Tsymbol
Tpacket = Tpreamble + Npayload × Tsymbol
Reading range and energy honestly
The range index is a processing-gain teaching indicator, not a kilometre prediction. Higher spreading factors can make a weaker signal decodable, but terrain, antenna height, obstruction loss, gateway placement, interference, and receiver implementation determine the field result.
Packet energy is the configured supply voltage multiplied by transmit current and time on air. It prices one successful transmission only. A deployment budget must add wake-up, sensing, processing, receive windows, retries, leakage, and regulator losses.
Epacket (mJ) = Vsupply × Itx (A) × Tpacket (s) × 1000
Why SF12 is not automatically “better”
Extra link robustness is useful only when the path needs it. For the same 20 B payload and 125 kHz bandwidth, moving from SF7 to SF12 makes each symbol thirty-two times longer before symbol-count effects are considered. The channel stays occupied longer and the transmitter consumes energy for that entire interval.
LoRaWAN capacity is shared. Unnecessarily slow packets raise collision exposure and duty-cycle pressure for the device and its neighbours. ADR therefore tries to retain enough margin while selecting a faster data rate and, when possible, a lower transmit power.
Low data-rate optimisation
Long symbols are more exposed to clock drift. The Automatic setting enables low data-rate optimisation when the calculated symbol duration reaches 16 ms. In this model that typically affects SF11 and SF12 at 125 kHz, and its altered denominator changes the payload-symbol calculation.
Use the explicit On and Off choices to inspect that mechanism, but follow the radio and regional stack's mandated configuration in real firmware. A teaching override is not permission to create a non-compliant packet.
Field checklist before fixing a spreading factor
Measure the path: collect repeated uplinks at the intended antenna position, across representative weather and occupancy conditions. Record received signal strength, signal-to-noise ratio, gateway diversity, retries, and packet loss rather than treating one successful packet as a link budget.
Test the fastest credible rate: begin with the lowest spreading factor supported by the measured margin, then repeat the difficult parts of the route. Increase robustness only when the evidence shows that the faster setting cannot meet the reliability target.
Budget the whole device: combine the packet-energy result with sensing, computation, receive windows, acknowledgements, retries, sleep current, regulator efficiency, and the expected reporting interval. Confirm regional channel, duty-cycle, dwell-time, and transmit-power rules in the deployed LoRaWAN regional parameters.
Revisit the choice: installations change as foliage, buildings, antenna placement, gateway availability, and interference change. Where the network supports it, ADR should use a sufficiently long observation window; mobile or rapidly changing links may need a deliberately different strategy.
| SF7 |
1.024 ms |
baseline |
fastest / least packet energy |
Does measured margin support the shortest airtime? |
| SF8 |
2.048 ms |
+2.5 dB class |
airtime roughly doubles |
Is one robustness step enough for the path? |
| SF9 |
4.096 ms |
+5 dB class |
middle-rate compromise |
Can ADR move down after stable gateway evidence? |
| SF10 |
8.192 ms |
+7.5 dB class |
longer occupancy |
Are obstruction and fade margin measured or assumed? |
| SF11 |
16.384 ms |
+10 dB class |
low-rate optimisation relevant |
Will duty-cycle and battery budgets tolerate the packet? |
| SF12 |
32.768 ms |
+12.5 dB class |
longest / most packet energy |
Is the extra processing gain genuinely required? |
Worked check
Use symbol duration 2^SF divided by bandwidth, then apply the preamble and payload symbol counts. The same payload at SF12 occupies substantially more symbols-in-time than at SF7.