Electronics & IoT

LoRa Link Budget and Range Estimator

Calculate LoRa link budget, fade margin, theoretical free-space range, receiver sensitivity, airtime, and duty-cycle packet capacity.

LoRaLoRaWANlink budgettime on airRF range

LoRa link budget and range estimator

Estimate LoRa link margin, free-space range, receiver sensitivity, and time-on-air from radio, antenna, and packet settings.

Positive is less sensitive; negative is better than table.
CRC enabled?
Explicit header?
Fade margin remaining
24.4 dB
After required fade margin
Max free-space range
82.52 km
51.28 miles theoretical
Received power
-94.6 dBm
At checked distance
Receiver sensitivity
-129 dBm
From SF/BW table + offset
Time on air
185.34 ms
33 payload symbols
Packets/hour
194
At selected duty cycle
EIRP
15.5 dBm
TX power + TX gain - TX loss
FSPL at distance
105.6 dB
Free-space path loss
This is a free-space planning estimate. Real LoRa range requires field testing.

What this estimate does and does not do

This calculator estimates a LoRa link budget, theoretical free-space range, and packet time-on-air. It is useful for early planning of LoRa, LoRaWAN, Meshtastic-style, and point-to-point sub-GHz links.

It does not guarantee real-world range. Free-space calculations assume ideal line of sight with no obstructions, reflections, foliage, terrain, body loss, antenna mismatch, or interference. Real deployments require field testing with the actual antennas, radio modules, heights, terrain, and regional radio settings.

The received power at a checked distance is:

received power = TX power + TX antenna gain - TX cable loss + RX antenna gain - RX cable loss - other losses - FSPL

The link margin is:

link margin = received power - receiver sensitivity
fade margin remaining = link margin - required fade margin

Maximum allowable free-space path loss is:

max path loss = TX power + gains - losses - receiver sensitivity - required fade margin

Free-space path loss formula

FSPL dB = 32.44 + 20 log10(frequency MHz) + 20 log10(distance km)

Solving for distance:

distance km = 10 ^ ((max path loss - 32.44 - 20 log10(frequency MHz)) / 20)

Time-on-air formula

The calculator uses the standard Semtech-style LoRa time-on-air model:

symbol time = 2^SF / bandwidth
preamble time = (preamble symbols + 4.25) × symbol time
payload symbols = 8 + max(ceil((8PL - 4SF + 28 + 16CRC - 20IH) / (4(SF - 2DE))) × (CR + 4), 0)
time on air = preamble time + payload symbols × symbol time

Where:

  • PL is payload bytes
  • SF is spreading factor
  • CR is 1–4 for coding rates 4/5 to 4/8
  • CRC is 1 if CRC is enabled
  • IH is 1 for implicit header, 0 for explicit header
  • DE is low-data-rate optimisation, automatically enabled here when symbol time is at least 16 ms

Worked example

For a 915 MHz LoRa link at 5 km, with 14 dBm TX power, 2 dBi antennas at each end, 0.5 dB cable loss at each end, 6 dB other losses, SF9 / 125 kHz, and 10 dB required fade margin:

FSPL at 5 km ≈ 105.7 dB
receiver sensitivity at SF9 / 125 kHz ≈ -129 dBm
received power ≈ 14 + 2 - 0.5 + 2 - 0.5 - 6 - 105.7 = -94.7 dBm
link margin ≈ -94.7 - (-129) = 34.3 dB
fade margin remaining ≈ 34.3 - 10 = 24.3 dB

That link closes in a free-space model with a good margin, but buildings, terrain, vegetation, antenna height, and interference can consume that margin quickly.

How to use the result

  • Use fade margin remaining to see whether the checked distance is plausible.
  • Use max free-space range only as a theoretical upper bound.
  • Increase SF to improve sensitivity, but watch time-on-air and duty-cycle limits.
  • Improve antenna placement and height before assuming more transmit power is the solution.
  • Add realistic other losses for vegetation, indoor placement, body loss, cable loss, and antenna mismatch.
  • Check local EIRP, duty-cycle, dwell-time, and band-plan regulations before deployment.

Assumptions and limitations

  • Receiver sensitivity is estimated from typical SF/BW values and may differ by module, PCB, noise figure, temperature, and interference.
  • The range model is free-space only.
  • It does not model earth curvature, antenna height, Fresnel zone clearance, terrain diffraction, or indoor path loss.
  • Time-on-air is raw LoRa PHY airtime for the entered payload bytes. LoRaWAN MAC overhead may add bytes.
  • Regional duty-cycle and dwell-time rules vary.

Frequently asked questions

How do you calculate LoRa link budget?

Add transmit power and antenna gains, subtract cable and other losses, subtract receiver sensitivity and required fade margin. The remaining allowable path loss can be converted into free-space range.

How is LoRa free-space range calculated?

The calculator solves the free-space path loss formula FSPL = 32.44 + 20 log10(frequency MHz) + 20 log10(distance km) for distance.

Why is theoretical LoRa range so large?

LoRa can have a very large link budget, especially at high spreading factors. Real terrestrial range is usually limited by terrain, antenna height, line of sight, Fresnel clearance, foliage, buildings, interference, and regulations.

What is LoRa time-on-air?

Time-on-air is how long a packet occupies the radio channel. It depends on spreading factor, bandwidth, coding rate, preamble length, payload size, CRC, and header mode.

What spreading factor should I use?

Lower spreading factors have shorter airtime and better battery life. Higher spreading factors improve sensitivity and range, but greatly increase airtime and duty-cycle pressure.