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.
What the radio puts out. Most Meshtastic boards run 20–22 dBm.
A stock rubber-duck antenna is roughly 2 dBi, a decent vertical 5–8 dBi.
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.
Headroom held back for fading, foliage, rain and a hand near the antenna. 10 dB is a common starting point.
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
- 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.
- 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.
- 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.
- 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.
- 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
- 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
- dfs — free-space range, m
- λ — wavelength, m (λ = c / f)
- 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
- 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
- Lmax = 20 + 2 + 2 − 0.5 − (−131.4) − 10 = 144.9 dB
- Free space: d = (0.3454 / 4π) · 10144.9/20 = 483 km (a vacuum number, unreachable on the ground)
- Two-ray, h1 = h2 = 2 m: d = 10(144.9 + 6.02 + 6.02) / 40 = 8.39 km
- Radio horizon: 4.12 · (2 + 2) = 11.7 km
- → 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
- Heights: AGL vs AMSL — the two antenna heights here are above the ground under the node, not above sea level
- Plan radio coverage (RF / ITM) — turning one link budget into a coverage map over real terrain
- Antenna height vs transmit power — why a few metres of mast beat a few decibels of amplifier, with the numbers
Sources & further reading
- ITU-R Recommendation P.525 — Calculation of free-space attenuation ↗ — the free-space formula behind the optimistic ceiling
- Semtech SX1261/SX1262 datasheet, Rev 2.2 (December 2024) ↗ — every sensitivity here. Table 3-8, symbol RXS_LB, Rx boosted gain, split RF paths, RF-switch loss excluded: −124 dBm at SF7/125 kHz down to −137 dBm at SF12/125 kHz. Re-read 18 August 2026
- Meshtastic documentation — Radio Settings ↗ — every preset name, spreading factor, bandwidth, coding rate and data rate, plus the regional bands and factory channel slots. Each value re-checked against that page on 18 August 2026
- Meshtastic — Licensing & Trademark ↗ — the attribution statement reproduced above. The documentation repository itself is GPL-3.0 licensed
- LoRa Alliance RP002-1.0.4 — Regional Parameters (17 September 2023) ↗ — the LoRaWAN data rates the generic 125 kHz rows follow, and the regional channel plans and power limits
- Two-ray ground-reflection model — Wikipedia ↗ — derivation of the 40·log₁₀(d) plane-earth loss and where it is valid
Related tools
LoRa airtime calculator
Time on air, duty-cycle limits and data rate from spreading factor, bandwidth and payload.
Link budget calculator
Received power and fade margin from TX power, gains, losses and path loss.
Walkie-talkie range calculator
How far two handhelds really reach (PMR446, FRS, GMRS, ham HTs) from height, power and terrain type.
Free-space path loss calculator
Signal loss over distance for any frequency, from the FSPL formula.