# Link Budget Calculations

A link budget calculation estimates whether a radio path between two nodes will work reliably before you deploy hardware. It's the single most useful tool for avoiding wasted installation trips and surprised failures.

## The link budget equation

```
Received Power (dBm) = TX Power (dBm)
 + TX Antenna Gain (dBi)
 − TX Cable Loss (dB)
 − Free Space Path Loss (dB)
 − Obstruction Loss (dB)
 + RX Antenna Gain (dBi)
 − RX Cable Loss (dB)

Link Margin (dB) = Received Power (dBm) − Receiver Sensitivity (dBm)

```

A positive link margin means the link should work. As a common rule of thumb, a margin of 10 dB or more is treated as reliable (longer or mission-critical links often target a 15 - 20 dB fade margin). The author's recommended minimum is about 3 dB - below that a link is borderline and not recommended for permanent infrastructure. These are engineering conventions, not hard standards.

## Key values for LoRa at 915 MHz

### Receiver sensitivity by MeshCore preset

Figures below are SX1262 datasheet values with Rx Boosted gain (standard gain is roughly 3 - 4 dB worse). They assume the bandwidth listed for each preset.

<table id="bkmrk-preset-equivalent-%28s"><thead><tr><th>Preset equivalent (SF / BW)</th><th>Receiver sensitivity</th></tr></thead><tbody><tr><td>USA/Canada (SF7 / 62.5 kHz)</td><td>~−125 dBm</td></tr><tr><td>Long Fast (SF11 / 250 kHz)</td><td>~−131 dBm</td></tr><tr><td>Long Slow (SF12 / 125 kHz)</td><td>~−137 dBm</td></tr><tr><td>Medium Slow (SF10 / 250 kHz)</td><td>~−129 dBm</td></tr></tbody></table>

Lower sensitivity number = can receive weaker signals = more range potential. Long Slow gives the best sensitivity but at the cost of extremely low data rate. (Sensitivity figures near −141/−148 dBm only occur at very narrow bandwidths around 10.4 kHz, not at the 125 - 250 kHz bandwidths these presets use.)

### Free Space Path Loss at 915 MHz

Practical form (distance in km, frequency in GHz): FSPL (dB) = 20×log10(d\_km) + 20×log10(f\_GHz) + 92.45. The 92.45 constant already folds in the 4π/c term for kilometres and gigahertz.

In practical terms for 915 MHz:

<table id="bkmrk-distancefree-space-p"><thead><tr><th>Distance</th><th>Free Space Path Loss</th></tr></thead><tbody><tr><td>1 km (0.62 mi)</td><td>91.6 dB</td></tr><tr><td>5 km (3.1 mi)</td><td>105.6 dB</td></tr><tr><td>10 km (6.2 mi)</td><td>111.6 dB</td></tr><tr><td>20 km (12.4 mi)</td><td>117.6 dB</td></tr><tr><td>50 km (31 mi)</td><td>125.6 dB</td></tr></tbody></table>

Note: Free space path loss assumes clear line of sight with no obstructions. Real-world losses are always higher.

## Worked example: Rooftop repeater to ground-level node

Scenario: 5 km path, rooftop repeater at 30m height, portable node at 2m height.

<table id="bkmrk-parametervalue-tx-po"><thead><tr><th>Parameter</th><th>Value</th></tr></thead><tbody><tr><td>TX Power (repeater)</td><td>27 dBm (requires external PA - see note)</td></tr><tr><td>TX Antenna Gain</td><td>+5 dBi</td></tr><tr><td>TX Cable Loss (1m LMR-200)</td><td>−0.4 dB</td></tr><tr><td>Free Space Path Loss (5 km, 915 MHz)</td><td>−105.6 dB</td></tr><tr><td>Obstruction/Fresnel loss estimate</td><td>−10 dB (mixed urban)</td></tr><tr><td>RX Antenna Gain (portable node, 2 dBi)</td><td>+2 dBi</td></tr><tr><td>RX Cable Loss (none for portable)</td><td>0 dB</td></tr><tr><td>**Received Power**</td><td>**27 + 5 − 0.4 − 105.6 − 10 + 2 = −82.0 dBm**</td></tr><tr><td>Receiver Sensitivity (USA/Canada SF7)</td><td>−125 dBm</td></tr><tr><td>**Link Margin**</td><td>**−82.0 − (−125) = +43.0 dB**</td></tr></tbody></table>

Power note: common LoRa modules built on the SX1262 top out at +22 dBm conducted, so a 27 dBm example implies an external power amplifier - state it explicitly when planning. FCC Part 15.247 (902 - 928 MHz) caps conducted power at 1 W (30 dBm) and derives a 36 dBm EIRP ceiling, and requires a 1 dB reduction in conducted power for every dB of antenna gain above 6 dBi. At the +5 dBi gain used here no reduction is required, but higher-gain antennas would force the conducted power down.

A 43 dB margin is very comfortable - this link will work reliably even with additional obstruction losses not captured in the estimate. (Because this example uses the SF7 sensitivity of −125 dBm, it is unaffected by the higher-SF sensitivity corrections above; a Long Slow / SF12 link at −137 dBm would have an even larger margin.)

## Fresnel zone clearance

The Fresnel zone is an elliptical (football-shaped) region around the straight-line path between two antennas. Radio energy travels through this whole zone, not just the visual line, so obstacles near - not just directly on - the line still degrade the signal.

Even in "clear" line-of-sight paths, the first Fresnel zone must be about 60% clear of obstructions for reliable communication. The first Fresnel zone radius at the midpoint of a path:

```
r = 8.66 × sqrt(d_km / f_GHz) meters

Where d = path length in km, f = frequency in GHz
(This is the same as the form r = 17.3 × sqrt(d / (4·f)) used elsewhere:
 17.3 / sqrt(4) = 8.66.)

The radius scales with link length. For 915 MHz:
  1 km path:  r ≈ 9 meters
  10 km path: r ≈ 28.6 meters

So an obstruction within ~28.6 m of the direct path midpoint will partially
block the signal on a 10 km link, but on a 1 km link the relevant zone is only
~9 m. Use the formula for your actual path length rather than a fixed radius.

```

This is why hilltop-to-hilltop links work so well: the terrain clears the Fresnel zone naturally. For rooftop-to-rooftop links in cities, trees and building facades at path midpoints can add 10 - 20 dB of loss even when the antennas themselves have direct line of sight.

## When to use a link budget

- Before installing a repeater at a new site, calculate whether it can reach your intended coverage area
- When planning a point-to-point relay link between two specific nodes
- When a deployed link is underperforming - work backwards from measured RSSI to identify where the losses are
- When comparing two candidate repeater sites - small differences in height can produce large differences in link budget