LoRa Link Budget Calculator — Range, RSSI & Margin

Calculate LoRa link margin, max range, and receiver sensitivity for SX1276 and SX1262. Enter TX power, spreading factor, bandwidth, and path distance. Supports 433, 868, and 915 MHz.

Scenario presets

TX side

LoRa parameters

Spreading factor

Bandwidth

RX side & margin

Result

Link status at 5 km (free-space model)

LINK FAIL

Net margin: -33.4 dB

Max range (free-space, 10 dB fade margin)

107 m

RX sensitivity

-124.5 dBm

SF7 / 125 kHz

EIRP

15.6 dBm

TX + ant − loss

Path loss

-165.2 dB

868 MHz, 5 km

Received power

-147.9 dBm

at RX input

Link margin (Prx − sensitivity)-23.4 dB
Fade margin budget10 dB
Net margin-33.4 dB

SF7 SNR threshold: -7.5 dB · NF: 6 dB · BW: 125 kHz

Link budget components

EIRP
15.6 dBm
Path loss
-165.2 dB
RX gain
+2.1 dB

SX127x / SX126x receiver sensitivity (125 kHz BW, NF = 6 dB)

SFSNR thresholdSensitivity (calc)SX1276 datasheetSX1262 datasheetAir time (10 B)
SF7-7.5 dB-124.5 dBm-124 dBm-125 dBm56 ms
SF8-10.0 dB-127.0 dBm-127 dBm-128 dBm103 ms
SF9-12.5 dB-129.5 dBm-129 dBm-131 dBm185 ms
SF10-15.0 dB-132.0 dBm-132 dBm-133 dBm370 ms
SF11-17.5 dB-134.5 dBm-134 dBm-136 dBm741 ms
SF12-20.0 dB-137.0 dBm-137 dBm-139 dBm1319 ms

Air time assumes 10-byte payload, CR 4/5, explicit header, no CRC disabled. SX1276 sensitivity from DS §2.1 table, SX1262 from DS §2.2 table. Free-space path loss is a lower bound — urban, suburban, and indoor deployments add 10–30 dB of additional loss.

How it works

A link budget is an accounting of every gain and loss in the RF path from transmitter to receiver. If the received signal power exceeds the receiver’s sensitivity by at least your fade margin, the link works. The full chain:

Received power = TX_power + TX_ant_gain − TX_cable_loss
                 − path_loss
                 + RX_ant_gain − RX_cable_loss

The link survives if: Received_power − RX_sensitivity ≥ fade_margin

Receiver sensitivity

LoRa sensitivity is derived from the thermal noise floor plus the SNR threshold the correlator needs to lock onto the chirp:

Thermal noise = −174 dBm/Hz + 10·log10(BW_Hz) + NF_dB
Sensitivity   = Thermal_noise + SNR_threshold(SF)

For SF12 at 125 kHz with a 6 dB noise figure:

= −174 + 51.0 + 6 − 20.0
= −137 dBm

This matches the SX1276 datasheet exactly. The SX1262 does ~2 dB better due to an improved LNA front-end.

Free-space path loss

The Friis transmission equation gives the path loss in free space:

FSPL (dB) = 20·log10(d_km) + 20·log10(f_MHz) + 92.45

At 868 MHz and 5 km:

FSPL = 20·log10(5) + 20·log10(868) + 92.45
     = 14.0 + 58.8 + 92.45
     = 165.2 dB

Free-space is the best case. Real deployments add 10–30 dB of excess path loss from terrain, buildings, and vegetation. Budget your fade margin accordingly: 10 dB minimum outdoors, 20+ dB if you have any indoor segments.

EIRP and regulatory limits

EIRP (Effective Isotropic Radiated Power) combines TX output power and antenna gain:

EIRP = TX_power_dBm + antenna_gain_dBi − cable_loss_dB

In the EU (ETSI EN 300 220), the maximum EIRP on 868 MHz is +14 dBm (25 mW) with a 1% duty cycle limit on most sub-bands. The SX1276 can output up to 20 dBm, but that exceeds the EU limit unless you’re on a specific high-power sub-band (868.7–869.2 MHz, 27 dBm, 10% duty cycle).

In the US (FCC Part 15.247), the limit is +30 dBm (1 W) EIRP on 902–928 MHz with frequency hopping. LoRaWAN in the US uses US915 band plan.

Spreading factor trade-offs

Higher SF means longer time-on-air and lower throughput, but better sensitivity:

SFSensitivity (125 kHz)vs SF710-byte payload ToA
SF7−124 dBmbaseline~56 ms
SF9−129 dBm+5 dB~185 ms
SF12−137 dBm+13 dB~1319 ms

Each step up in SF roughly doubles the time-on-air and costs 2.5 dB of sensitivity. For duty-cycle-limited deployments (EU868), increasing SF means fewer packets per hour. Do the math: at SF12 on a 1% duty cycle sub-band you can send one packet roughly every 131 seconds.

Real-world deployment notes

The free-space model is optimistic. In practice:

  • LOS rural: add 5–10 dB excess loss
  • Suburban: add 10–20 dB
  • Urban canyon / rooftop: add 15–30 dB
  • Indoor to outdoor: add another 10–20 dB per wall

A LoRaWAN gateway at 868 MHz mounted 10 m above rooftop level in a suburban environment typically covers 3–5 km to ground-level nodes at SF7, and 8–15 km at SF12.

Antenna placement dominates. A λ/4 monopole (2.15 dBi) installed horizontally instead of vertically loses 3–6 dB immediately. Always mount the antenna with the radiating element vertical. Coax runs over 30 cm add measurable loss at 868 MHz — use RG316 or better, keep it short.

The SX1262 advantage is real but small. The ~2 dB better sensitivity over SX1276 is offset in real deployments by installation variables. What matters more: antenna quality, mounting height, and whether you’re hitting a duty-cycle wall.

Common mistakes

Confusing sensitivity with RSSI floor. The sensitivity figure in the datasheet is the minimum detectable signal at a specified packet error rate (typically 1%). Your gateway RSSI reading will be 5–10 dB higher than sensitivity on a working link — that headroom is your margin.

Ignoring the duty cycle limit. Cranking SF12 to maximize range is useless if you exceed the 1% EU duty cycle. Calculate your time-on-air first. Tools like the The Things Network LoRa airtime calculator are useful for this.

Using +20 dBm TX in the EU without checking the sub-band. Most SX1276 boards default to maximum power. Set setTxPower(14) explicitly in your firmware unless you’ve verified you’re operating on the 869.4–869.65 MHz high-power channel.

Assuming free-space range in a real deployment. The calculator gives you a theoretical ceiling. Halve the free-space range estimate for a realistic outdoor suburban deployment. For indoor or mixed environments, divide by four.

Not accounting for connector and cable loss. A cheap SMA connector adds 0.2–0.5 dB. Two connectors plus 50 cm of RG174 at 868 MHz: roughly 1.5 dB total. Doesn’t sound like much until you realize 1.5 dB is the difference between SF9 and SF10 sensitivity.

Frequently asked questions

Why does my LoRa link work in bench testing but fail in the field? +

The free-space path loss model used in calculators is optimistic — it assumes a direct line-of-sight path with no obstacles. Real deployments add 10–30 dB of excess path loss from terrain, buildings, and vegetation. In suburban outdoor environments add at least 10–20 dB margin beyond the free-space calculation. For mixed indoor/outdoor paths, budget an additional 10–20 dB per wall. Halve the free-space range estimate for a realistic outdoor suburban deployment.

Should I use SF12 to maximize LoRa range? +

Only if your duty cycle allows it. At EU868 with a 1% duty cycle limit, an SF12 packet with a 10-byte payload takes about 1319 ms time-on-air. You can send roughly one packet every 131 seconds on that sub-band. SF12 also requires 12.5 dB more link margin than SF7 and uses approximately 23× more air time. For most IoT applications SF7 or SF9 with better antenna placement is preferable to SF12.

What is the sensitivity difference between SX1276 and SX1262? +

The SX1262 has approximately 2 dB better receiver sensitivity than the SX1276 due to an improved LNA front-end. At SF12, 125 kHz bandwidth: SX1276 achieves around −137 dBm sensitivity while SX1262 reaches approximately −139 dBm. In practice, installation variables (antenna quality, mounting height, cable losses) have a larger impact than this 2 dB difference.

Newsletter

The embedded engineer's weekly cheat sheet

Register tricks, timing gotchas, and tool updates. One email per week. No fluff.

No spam. Unsubscribe anytime.