RF Fundamentals for Mesh Operators

Link budgets, Fresnel zones, interference identification and mitigation at 915 MHz.

Link Budget Explained

Received Signal Strength (dBm) =
 TX Power (dBm)
 + TX Antenna Gain (dBi)
 − TX Feedline Loss (dB)
 − Free-Space Path Loss (dB)
 − RX Feedline Loss (dB)
 + RX Antenna Gain (dBi)

To determine if a link closes, compare the received signal strength to the receiver sensitivity:

These margin thresholds are engineering rules of thumb, not fixed standards. The fade margin you actually need depends on the propagation environment: roughly 10 dB may suffice for a stable urban or line-of-sight path, while non-line-of-sight, foliage, or rain-affected links require more.

Key Parameters Defined

EIRP (Effective Isotropic Radiated Power)

EIRP is the transmitter power plus the antenna gain, minus feedline losses. It represents the effective power that would need to be fed to an isotropic antenna to produce the same field strength in the direction of maximum radiation:

EIRP (dBm) = TX Power (dBm) + Antenna Gain (dBi) − Feedline Loss (dB)

FCC Part 15.247 limits conducted output power to 1 W (30 dBm) in the 902 - 928 MHz band, referenced to an antenna of up to 6 dBi gain. With a 6 dBi antenna this yields up to roughly +36 dBm (4 W) EIRP — so 30 dBm is the conducted-power ceiling, not the EIRP ceiling. For antenna gain above 6 dBi, the conducted output power must be reduced dB-for-dB for each dB of gain over 6 dBi (15.247(b)(4)(i)), holding EIRP at about 36 dBm. Unlike the 2.4 GHz band, the 902 - 928 MHz band has no relaxed point-to-point allowance that lets you add antenna gain in exchange for reduced power — the dB-for-dB reduction applies to point-to-point links too. Always confirm against current FCC rules and your specific module's certification.

Free-Space Path Loss (FSPL)

Free-space path loss is the reduction in signal power due to the spreading of the RF wavefront as it travels through space. It is a fundamental physical loss, not a deficiency of the system:

FSPL (dB) = 20 × log₁₀(d) + 20 × log₁₀(f) + 20 × log₁₀(4π/c)
 = 20 × log₁₀(d) + 20 × log₁₀(f) − 147.55

Where:
 d = distance in meters
 f = frequency in Hz

At 915 MHz, simplified:
 FSPL (dB) = 20 × log₁₀(d_km) + 91.65

Examples:
 100 m: FSPL ≈ 71.7 dB
 1 km: FSPL ≈ 91.7 dB
 5 km: FSPL ≈ 105.6 dB
 20 km: FSPL ≈ 117.7 dB

Receiver Sensitivity

Receiver sensitivity is the minimum received signal power that the radio can successfully decode. It is determined by the modulation type, bandwidth, and noise figure of the receiver. LoRa sensitivity varies dramatically with spreading factor (SF). The figures below are typical values for the SX1262 / community measurements; the SX1276 datasheet lists values about 1 - 1.5 dB less optimistic (e.g. SF11 ≈ −133 dBm, SF12 ≈ −136 dBm):

Spreading FactorBit Rate (approx.)Typical Sensitivity (dBm)Use Case
SF7~5.5 kbps−123 dBmShort range, high throughput
SF9~1.8 kbps−129 dBmMedium range, normal use
SF10~0.98 kbps−132 dBmExtended range
SF11~0.54 kbps−134.5 dBmLong range
SF12~0.29 kbps−137 dBmMaximum range

Noise Floor

The thermal noise floor is the baseline noise level a receiver must overcome, set by thermodynamics:

Noise Floor = −174 dBm/Hz + 10 × log₁₀(BW_Hz) + Noise Figure (dB)

For LoRa with 125 kHz bandwidth and 6 dB noise figure:
Noise Floor ≈ −174 + 51.0 + 6 = −117 dBm

LoRa's processing gain (spreading factor) allows it to decode signals below this apparent noise floor, which is why SF12 achieves −137 dBm sensitivity.

Worked Example: Urban Mesh Node Link

Let's calculate whether a LoRa mesh link at SF11 will close between two residential nodes 2.5 km apart in a suburban environment.

ParameterValueNotes
TX power+20 dBmMeshtastic node at 100 mW
TX antenna gain+5 dBi5 dBi collinear, rooftop mount
TX feedline loss−1.5 dB10 ft LMR-200 + connectors
TX EIRP+23.5 dBmWell under the legal limit (1 W conducted with up to 6 dBi)
Free-space path loss−99.6 dB2.5 km at 915 MHz
Excess path loss (urban clutter)−10 dBEstimated additional suburban loss
RX feedline loss−1.5 dBSame installation as TX node
RX antenna gain+5 dBiSame 5 dBi antenna
Received signal level−82.6 dBm23.5 − 99.6 − 10 − 1.5 + 5
Receiver sensitivity (SF11)−134.5 dBmSX1262 typical (SX1276 datasheet: ≈ −133 dBm)
Link Margin+51.9 dBExcellent; link is robust

Fresnel Zones and Clearance

Fresnel Zones and Clearance

One of the most common causes of unexpectedly poor radio links is obstruction of the Fresnel zone - not just the line of sight. Even when two antennas have a clear geometric line of sight to each other, a rooftop, hilltop, or dense tree canopy can severely degrade the link if it intrudes into the Fresnel zone. Understanding Fresnel zones allows you to choose correct antenna heights and predict real-world link performance.

What Is a Fresnel Zone?

When RF energy travels from a transmitter to a receiver, it does not travel solely as a thin ray. The energy spreads into an ellipsoidal region of space around the direct path. This is because of the wave nature of radio: energy arriving at the receiver via slightly longer indirect paths can either add to or subtract from the direct signal, depending on the path length difference.

The Fresnel zones are concentric ellipsoids centered on the direct path. The first Fresnel zone contains the paths where indirect waves arrive with less than 180° of phase difference from the direct path - these waves reinforce the direct signal. Obstructions within the first Fresnel zone scatter energy and cause diffraction loss.

Key insight: you can have "clear line of sight" while still losing signal if obstacles intrude into the first Fresnel zone. A significant (near-grazing or deeper) intrusion can cost on the order of 10 - 20 dB; a light intrusion into the outer edge of the first zone costs only a few dB.

Why 60% Clearance Matters

Radio engineering rules of thumb require 60% of the first Fresnel zone radius to be clear of all obstacles for a link to experience negligible diffraction loss (less than about 0.5 dB). If clearance drops to a grazing obstruction (obstacle tip exactly on the line of sight), diffraction loss is approximately 6 dB - the textbook knife-edge value. As the obstacle penetrates past the line of sight, loss continues to climb per the knife-edge model: an obstacle tip roughly one Fresnel radius or more above the line of sight gives 15 - 25 dB or more of loss.

The figures below use a single, consistent quantity: the clearance ratio, defined as the obstacle's position relative to the first Fresnel radius. A ratio of +1.0 means the obstacle is a full Fresnel radius below the line of sight (first zone fully clear); 0 means the obstacle just touches the line of sight (grazing); a negative ratio means the obstacle has crossed above the line of sight and is blocking it. Intermediate values are interpolated from the knife-edge diffraction curve (ITU-R P.526) and are approximate:

Clearance ratio (obstacle relative to first Fresnel radius) → Diffraction Loss (approx.):
 +1.0 (first zone fully clear): ~0 dB loss
 +0.6 (standard 60% minimum): ~0.5 dB loss
 +0.4: ~3 dB loss
  0   (grazing, obstacle on line of sight): ~6 dB loss
 −0.2 (obstacle 20% of a Fresnel radius into the path): ~15 - 20 dB loss

Calculating the First Fresnel Zone Radius

The radius of the first Fresnel zone at any point along the path is calculated as (all distances in km, frequency in GHz, result in meters):

r₁ (meters) = 17.32 × √(d₁ × d₂ / (f × D))

Where:
 r₁ = first Fresnel zone radius (meters)
 d₁ = distance from transmitter to the obstacle (km)
 d₂ = distance from receiver to the obstacle (km)
 f = frequency (GHz)
 D = total path length d₁ + d₂ (km)

At 915 MHz (f = 0.915 GHz) the constant 17.32 / √0.915 = 18.1, so:
 r₁ (meters) ≈ 18.1 × √(d₁ × d₂ / D)   (d₁, d₂, D in km)

The Fresnel zone is widest at the midpoint of the path. At the midpoint d₁ = d₂ = D/2, so d₁ × d₂ / D = D/4 and the general formula above reduces to the midpoint form below (the constant 17.32 / 2 = 8.66 is the same constant, just specialized to the midpoint — not a new number to look up):

r₁_max at midpoint (meters) = 8.66 × √(D_km / f_GHz)

At 915 MHz, 8.66 / √0.915 = 9.05, so:
 r₁_max (meters) ≈ 9.05 × √(D_km)

Examples:
 1 km path: r₁_max ≈ 9.05 m
 5 km path: r₁_max ≈ 20.2 m
 10 km path: r₁_max ≈ 28.6 m
 20 km path: r₁_max ≈ 40.5 m

The 60% clearance requirement for the 5 km example means you need 0.6 × 20.2 ≈ 12.1 m of clearance at the midpoint of the path. If there is a tree canopy at 8 m height at the midpoint, your link will experience significant diffraction loss even if you can see over it.

Practical Antenna Height Selection

To determine required antenna height, you need to know:

  1. The height profile of the terrain and vegetation along the path (from topographic data or observation)
  2. The point of maximum obstruction (worst-case obstacle)
  3. The Fresnel zone radius at that point

Required antenna height to achieve 60% Fresnel clearance over an obstacle:

Needed clearance above obstacle = 0.6 × r₁ at obstacle location

Height of antenna above ground ≥
 (Obstacle height − Earth's bulge correction)
 + 0.6 × r₁_at_obstacle
 + mast height needed to achieve this elevation

For long paths over curved earth, Earth bulge must also be added. The bulge at the midpoint of a path of total length D km, using the standard 4/3 Earth radius factor, is:

Earth bulge at midpoint (m) = D_km² / 68
 (4/3 Earth radius factor for standard atmosphere)

This comes from the general bulge formula h = d₁ × d₂ / 17 (d₁, d₂ in km),
evaluated at the midpoint where d₁ = d₂ = D/2, giving (D/2)² / 17 = D² / 68.

Example: a 20 km path → 20² / 68 = 400 / 68 ≈ 5.9 m of bulge at the midpoint.

Practical Implications for Mesh Deployments

ScenarioRecommendation
Urban node-to-node, 0.5 - 2 km through buildingsFresnel zone mostly in buildings anyway; gain antenna height to maximize chance of LOS paths between building gaps
Suburban, 2 - 5 km, trees and housesAntennas typically need to be above the tree canopy (8 - 12 m AGL is a common guideline, depending on local canopy height); verify at least 60% Fresnel clearance to intended relay nodes
Rural, 5 - 20 km, rolling terrainUse topographic analysis; hilltop sites preferred; 30 - 50 ft antenna heights often needed to clear ridge midpoints
Long-range backbone, 20+ kmStrict Fresnel analysis required; professional path planning tools recommended; Earth bulge significant

Safety note: masts in the 30 - 50 ft range are not a casual install. They require professional-grade erection, guying, and grounding, and present serious fall and power-line hazards. Plan the lift so the full mast length plus at least 10 ft of margin stays clear of any overhead power line throughout the raise, and use qualified help.

Free tools for Fresnel zone and path analysis include HeyWhatsThat.com, Radio Mobile Online, and the SPLAT! propagation analysis tool. For critical links, use at least two independent analysis methods.

Interference and Noise at 915 MHz

Interference and Noise at 915 MHz

The 902 - 928 MHz ISM (Industrial, Scientific, and Medical) band is shared with a wide variety of devices that can interfere with LoRa mesh operation. Understanding who shares this band, how their signals manifest, and how to identify and mitigate interference is essential for reliable mesh network operation.

The 902 - 928 MHz ISM Band Landscape

LoRa mesh operates in this band under FCC Part 15.247 (digitally-modulated / spread-spectrum systems, up to 1 W conducted). Part 15.249 is a separate, much-lower-power regime (field-strength limited to roughly well under 1 mW EIRP) that LoRa mesh nodes do not and cannot use at the 17 - 30 dBm power levels described on this page. It shares this spectrum with many other systems:

TechnologyFrequency RangeModulationTypical PowerInterference Risk
LoRa (US915 plan)902 - 928 MHz, 64 uplink channels grouped into 8 sub-bands + 8 downlinkCSS (chirp spread spectrum)17 - 30 dBmN/A (desired signal)
Zigbee 900 MHz902 - 928 MHzDSSS0 - 10 dBmLow; different modulation
Z-Wave (North America)908.42 MHz / 916 MHzFSK/GFSK0 - 14 dBmLow to moderate; narrow channels in LoRa band
FHSS devices (phones, security systems)902 - 928 MHz, frequency hoppingFHSS/FSKVariesModerate; wideband hopping
900 MHz cordless phones (older)902 - 928 MHzFHSS or analog FM100 mWModerate; common in homes
Baby monitors (900 MHz type)902 - 928 MHzFM/FHSS10 - 100 mWModerate locally
ISM telemetry (AMR meters, SCADA)902 - 928 MHzFSK/OOKUp to 1 W conducted (same 15.247 limit as LoRa)Low to high; site-dependent
WiFi 802.11ah (HaLow)902 - 928 MHzOFDMTypically <30 dBmEmerging; not yet widespread
Cellular Band 8 uplink880 - 915 MHzLTE/WCDMAUp to 2WAdjacent band; high-power cellular near tower can cause blocking
Cellular Band 8 downlink925 - 960 MHzLTE/WCDMAUp to 43 dBm towerAdjacent band; strong tower signal can cause receiver desensitization

Note that the co-band Part 15 devices above (such as AMR/SCADA telemetry) are bound by the same 15.247 limit of 1 W conducted as LoRa; none are licensed to exceed it.

How LoRa Handles Interference

LoRa's CSS modulation has inherent interference rejection properties. The chirp spread spectrum processing gain allows LoRa to decode signals below the noise floor, but the margin is spreading-factor dependent: the demodulation SNR limit ranges from about -7.5 dB at SF7 to about -20 dB at SF12. Only the highest spreading factors approach 20 dB below the noise floor. However, strong narrowband interferers can still cause problems:

Identifying Interference

Symptoms of interference in a LoRa mesh network:

Tools for characterizing interference:

Mitigation Strategies

Channel Plan Management

LoRaWAN US915 defines 64 uplink channels at 125 kHz (200 kHz spacing, 902.3 - 914.9 MHz) grouped into 8 sub-bands, plus 8 uplink channels at 500 kHz, and 8 downlink channels at 500 kHz (923.3 - 927.5 MHz). Note that Meshtastic does not use LoRaWAN channelization - it uses single configurable frequencies - so this LoRaWAN detail is tangential to most mesh users. Meshtastic and other mesh firmware may allow channel selection. If interference is identified on specific channels, reprogram nodes to avoid those frequencies. For 915 MHz LoRa in the US, the upper portion of the band (916 - 928 MHz) is less heavily used by legacy FHSS devices and may have lower ambient interference.

Antenna Selection and Placement

Directional antennas inherently reject interference from outside their main beam. The 12 dBi Yagi described on the Directional Antennas page, aimed at a target node, has substantial front-to-back rejection (typically 15 - 25 dB), meaning interferers behind the antenna are attenuated by that amount. For fixed infrastructure links experiencing interference from a known direction, switching from omni to directional can provide dramatic improvement.

Physical Separation and Height

Interference from consumer devices (baby monitors, cordless phones) drops off rapidly with distance due to their low power and proximity effects. Raising the antenna above the local RF clutter level (above rooftops, not at window height) can substantially improve SNR - often several dB to more than 10 dB depending on the site - by placing the antenna in a "quieter" RF environment.

Filtering

Band-pass filters for 902 - 928 MHz can be installed between the antenna and the LoRa radio to reject out-of-band energy (especially cellular downlink at 925 - 960 MHz) that might cause blocking. Mini-Circuits, Johanson Technology, and similar vendors offer suitable filters:

Note that filtering is only effective against out-of-band interference. In-band interference (e.g., another user in the 902 - 928 MHz band) cannot be filtered without also removing the desired LoRa signal.

Firmware-Level Mitigation