← All tools

LoRa / Meshtastic range calculator

This calculator estimates how far a LoRa or Meshtastic link can reach. It turns your radio preset, power, antenna gains and antenna heights into a link budget, then reads three distances off it: the free-space limit, the ground-reflection limit that low nodes really hit, and the radio horizon. The shortest one wins.

A selection, not the full set. LoRa allows any spreading factor with any bandwidth, so this list carries the nine rows of the Meshtastic preset table (read 18 August 2026) plus the plain 125 kHz ladder that matches the LoRaWAN EU868 data rates. Each row carries an SX1262 receiver sensitivity: a datasheet value at SF7 and SF12, interpolated in between.

dBm

What the radio puts out. Most Meshtastic boards run 20–22 dBm.

dBi

A stock rubber-duck antenna is roughly 2 dBi, a decent vertical 5–8 dBi.

dBi
dB

Both ends together. A short pigtail and one connector cost about 0.5 dB.

Above the ground under the node, not above sea level. This input moves the answer more than any other.

Height moves the answer more than power does. Antenna height vs transmit power works the comparison through in full.

dB

Headroom held back for fading, foliage, rain and a hand near the antenna. 10 dB is a common starting point.

Practical range
8.39 km
set by the ground reflection · 5.21 mi
Maximum path loss
144.9 dB
what the link can absorb before it drops
Ground-limited range
8.39 km
breakpoint at 46.3 m
Radio horizon
11.7 km
geometry over a 4/3 earth
Free-space limit
483 km
optimistic ceiling, vacuum only
Receiver sensitivity
−131.4 dBm
SF11 · 250 kHz · CR 4/5 · 1.07 kbit/s · interpolated
link budget · dBmS = −131.4 dBm−120−100−80−60−40−20020TX power20.0 dBmAntenna A+2.0 dBAntenna B+2.0 dBCable−0.5 dBPath loss−144.9 dBFade margin−10.0 dBthree ceilings · km, log scaleFree space483 kmGround reflection ◂ practical8.39 kmRadio horizon11.7 km100 m1 km10 km100 km

Above, the link budget line by line on one dB axis: it starts at the transmitter power on the left and falls to the right through both antenna gains, the cable loss, the path loss the link can afford and the fade margin, landing exactly on the receiver sensitivity. Below, the three range ceilings on a logarithmic distance scale, the shortest one — your practical range — in amber.

Flat, obstruction-free ground and a clear line of sight are assumed. The radio configurations are a selection rather than a complete list, because LoRa allows any spreading factor with any bandwidth. The SX1262 datasheet tabulates sensitivity at boosted gain for SF7 and SF12 only, so every spreading factor in between is linearly interpolated, and each reading says which it is. First-generation SX127x radios differ by about a decibel, and a real module behind a compromise antenna in a plastic case does a few dB worse again. Terrain, trees and buildings are not modelled here. Meshtastic® is a registered trademark of Meshtastic LLC. This calculator is neither affiliated with nor endorsed by the Meshtastic project.

How it works

  1. 01

    Add up the link budget

    Every gain adds and every loss subtracts: Lmax = Ptx + G1 + G2 − Lc − Srx − M. The sensitivity arrives with the modem preset, because a higher spreading factor lets the receiver dig further below the noise. Meshtastic counts roughly 2.5 dB per SF step, and about 3 dB for each halving of the bandwidth.

  2. 02

    Read the free-space distance

    Solving free-space loss for distance gives hundreds of kilometres at LoRa budgets. That figure is only real in a vacuum with the whole first Fresnel zone clear, which two nodes standing on the ground never have. Treat it as the ceiling nothing can beat, not as a forecast.

  3. 03

    Let the ground take its cut

    With both antennas low, the ray bouncing off the ground arrives almost antiphase with the direct one and cancels most of it. Past the breakpoint d = 4·h1·h2 / λ the received power falls with the fourth power of distance, so range grows only as 10L/40. This is the number handheld nodes actually see.

  4. 04

    Check the horizon

    Radio bends slightly around the earth, so link planning works with an effective earth radius 4/3 of the real one. That buys about 15% more distance than pure geometry allows. Two antennas reach each other out to d = 4.12 · (h1 + h2) km with heights in metres. Two nodes at 2 m run out of geometry at 11.7 km, whatever the budget says.

  5. 05

    Take the smallest, then open a map

    The practical estimate is the lowest of the three. On flat open ground that is usually the ground-reflection figure. From a summit the horizon takes over. Real terrain changes both. One ridge in the way cuts the range to a fraction, and height above the surroundings buys far more than any antenna upgrade.

Formulas

Link budget
Lmax = Ptx + G1 + G2 − Lc − Srx − M
  • Lmax — path loss the link can absorb, dB
  • Ptx — transmitter power, dBm
  • G1, G2 — antenna gains at both ends, dBi
  • Lc — cable and connector loss, both ends, dB
  • Srx — receiver sensitivity, dBm (negative)
  • M — fade margin, dB
Free-space range (ITU-R P.525)
dfs = λ · 10Lmax20
  • dfs — free-space range, m
  • λ — wavelength, m (λ = c / f)
Two-ray ground-reflection range
d2ray = 10Lmax + 20·log10 h1 + 20·log10 h240
  • d2ray — ground-limited range, m
  • h1, h2 — antenna heights above ground, m
  • valid past the breakpoint d = 4·h1·h2 / λ; below it, use the free-space value

Worked example

LongFast at 868 MHz, two nodes at 2 m
  1. Preset LongFast is SF11 at 250 kHz, where the SX1262 datasheet prints −121 dBm at SF7 and −134 dBm at SF12, so SF11 interpolates to Srx = −131.4 dBm
  2. Lmax = 20 + 2 + 2 − 0.5 − (−131.4) − 10 = 144.9 dB
  3. Free space: d = (0.3454 / 4π) · 10144.9/20 = 483 km (a vacuum number, unreachable on the ground)
  4. Two-ray, h1 = h2 = 2 m: d = 10(144.9 + 6.02 + 6.02) / 40 = 8.39 km
  5. Radio horizon: 4.12 · (2 + 2) = 11.7 km
  6. → practical range ≈ 8.4 km, set by the ground reflection

FAQ

Why doesn’t SF12 give ten times the range of SF7?
Because it only buys 13 dB. At 125 kHz the SX1262 datasheet quotes −124 dBm at SF7 and −137 dBm at SF12, and near the ground range grows as 10ΔL/40. Those 13 dB work out at about 2.1 times the distance, and roughly 4.5 times in free space. The airtime cost is far steeper. SF12 takes about 23 times as long per packet, which eats the duty-cycle allowance and the battery.
Why does antenna height help more than transmit power?
Because the two-ray range scales with both heights while power only enters through the budget. Going from 20 to 30 dBm, ten times the power, multiplies the ground-limited range by 1.8. Lifting one node from 2 m to 10 m multiplies it by 2.2, and it raises the radio horizon at the same time. Get above the surroundings before reaching for a bigger amplifier.
What does a Meshtastic mesh hop need?
Every hop is its own link, so each one has to clear its own budget with its own margin. This calculator sizes a single hop. A mesh covers ground by chaining hops, which means one well-placed relay on a hill usually beats two extra dB at either end. Each retransmission also costs airtime for everybody on the channel.
How much power may I use on 868 MHz in Europe?
The 869.400–869.650 MHz sub-band that Meshtastic uses in the EU allows 500 mW ERP (27 dBm) with a duty cycle of 10% or polite spectrum access, under ETSI EN 300 220-2. Below it, 865–868 MHz is capped at 25 mW ERP (14 dBm) and 1%. The limit is on radiated power, so antenna gain counts against it. Always check the rules that apply where you are.
How do I get real terrain into the answer?
You model it. These formulas assume flat, empty ground, so they cannot know about the ridge between two nodes or the valley one of them sits in. Waveshed runs line-of-sight and RF coverage over real elevation data in your browser, which turns the single distance here into a map of where the link actually holds.

These three ceilings assume flat, empty ground. One ridge between two nodes removes the link at a fraction of the distance, and a summit can more than double it. Waveshed draws line-of-sight and RF coverage over real elevation data, free in your browser.

Check the path on the map →

Related guides

Sources & further reading

Related tools