RF Fundamentals for Mesh Operators Link budgets, Fresnel zones, interference identification and mitigation at 915 MHz. Link Budget Explained Link Budget Explained A link budget is an accounting of all the gains and losses in an RF communication link from transmitter to receiver. It tells you whether a link will work, by how much margin, and what changes would improve it. Every successful LoRa mesh deployment benefits from link budget analysis, even a rough one. The Link Budget Equation 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: Link Margin (dB) = Received Signal Strength − Receiver Sensitivity Positive margin = link works Negative margin = link fails Margin > 10 dB = comfortable link (rule of thumb) Margin > 20 dB = robust link suitable for marginal terrain (rule of thumb) 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 Factor Bit Rate (approx.) Typical Sensitivity (dBm) Use Case SF7 ~5.5 kbps −123 dBm Short range, high throughput SF9 ~1.8 kbps −129 dBm Medium range, normal use SF10 ~0.98 kbps −132 dBm Extended range SF11 ~0.54 kbps −134.5 dBm Long range SF12 ~0.29 kbps −137 dBm Maximum 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. Parameter Value Notes TX power +20 dBm Meshtastic node at 100 mW TX antenna gain +5 dBi 5 dBi collinear, rooftop mount TX feedline loss −1.5 dB 10 ft LMR-200 + connectors TX EIRP +23.5 dBm Well under the legal limit (1 W conducted with up to 6 dBi) Free-space path loss −99.6 dB 2.5 km at 915 MHz Excess path loss (urban clutter) −10 dB Estimated additional suburban loss RX feedline loss −1.5 dB Same installation as TX node RX antenna gain +5 dBi Same 5 dBi antenna Received signal level −82.6 dBm 23.5 − 99.6 − 10 − 1.5 + 5 Receiver sensitivity (SF11) −134.5 dBm SX1262 typical (SX1276 datasheet: ≈ −133 dBm) Link Margin +51.9 dB Excellent; link is robust This link has roughly 52 dB of margin - it would still work with an additional 52 dB of path loss (about 160,000× more attenuation in power terms). This illustrates why LoRa is capable of penetrating buildings and covering large distances even with modest antenna installations. 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: The height profile of the terrain and vegetation along the path (from topographic data or observation) The point of maximum obstruction (worst-case obstacle) 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 Scenario Recommendation Urban node-to-node, 0.5 - 2 km through buildings Fresnel zone mostly in buildings anyway; gain antenna height to maximize chance of LOS paths between building gaps Suburban, 2 - 5 km, trees and houses Antennas 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 terrain Use topographic analysis; hilltop sites preferred; 30 - 50 ft antenna heights often needed to clear ridge midpoints Long-range backbone, 20+ km Strict 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: Technology Frequency Range Modulation Typical Power Interference Risk LoRa (US915 plan) 902 - 928 MHz, 64 uplink channels grouped into 8 sub-bands + 8 downlink CSS (chirp spread spectrum) 17 - 30 dBm N/A (desired signal) Zigbee 900 MHz 902 - 928 MHz DSSS 0 - 10 dBm Low; different modulation Z-Wave (North America) 908.42 MHz / 916 MHz FSK/GFSK 0 - 14 dBm Low to moderate; narrow channels in LoRa band FHSS devices (phones, security systems) 902 - 928 MHz, frequency hopping FHSS/FSK Varies Moderate; wideband hopping 900 MHz cordless phones (older) 902 - 928 MHz FHSS or analog FM 100 mW Moderate; common in homes Baby monitors (900 MHz type) 902 - 928 MHz FM/FHSS 10 - 100 mW Moderate locally ISM telemetry (AMR meters, SCADA) 902 - 928 MHz FSK/OOK Up to 1 W conducted (same 15.247 limit as LoRa) Low to high; site-dependent WiFi 802.11ah (HaLow) 902 - 928 MHz OFDM Typically <30 dBm Emerging; not yet widespread Cellular Band 8 uplink 880 - 915 MHz LTE/WCDMA Up to 2W Adjacent band; high-power cellular near tower can cause blocking Cellular Band 8 downlink 925 - 960 MHz LTE/WCDMA Up to 43 dBm tower Adjacent 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: Blocking/desensitization: A strong signal anywhere near 915 MHz can saturate the LoRa radio's LNA or ADC, raising the effective noise floor and degrading sensitivity to all LoRa signals. This is the most common form of interference damage. Intermodulation: Two strong interferers at frequencies f₁ and f₂ can produce intermodulation products at 2f₁−f₂ and 2f₂−f₁ that fall on LoRa channels. Direct channel co-channel interference: This depends on how many other users land on your specific narrow LoRa channel (125/250/500 kHz), not on the total 26 MHz band width. Because Meshtastic/LoRa mesh nodes typically share a small number of common channels, co-channel collisions among mesh users are in fact common in dense deployments. Identifying Interference Symptoms of interference in a LoRa mesh network: SNR (signal-to-noise ratio) readings consistently lower than expected given link budget calculations Elevated RSSI on channels with no active transmissions ("noise floor rise") Time-of-day correlation with interference events (e.g., worse during business hours when nearby office equipment is active) Geographic correlation - nodes near specific buildings, industrial sites, or utility infrastructure experience worse performance Intermittent packet loss despite strong RSSI - suggests bursty interferers like FHSS devices occasionally hitting LoRa channels Tools for characterizing interference: LoRa channel activity detection (CAD): Built into SX1276/SX1262; CAD detects LoRa activity on the currently-tuned channel and returns a busy/available status - it is not a spectrum scanner. To survey multiple channels, scan them sequentially or use an SDR. RTL-SDR + SDR#/GQRX: A $25 RTL-SDR dongle can display the entire 902 - 928 MHz spectrum in real time, revealing the presence, frequency, and character of interferers HackRF / Airspy: Higher-end SDR for more detailed analysis; can capture wideband spectral views and decode modulations 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: Look for a passband of 902 - 928 MHz with at least 40 dB rejection outside the band Insertion loss within passband should be under 2 dB Rate the filter's power handling for your maximum conducted transmit power (up to 1 W / 30 dBm under 15.247), not EIRP. The filter sits before the antenna, so it sees conducted power only; antenna gain (and thus EIRP) occurs after it. 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 Lower the hop timing aggressiveness: Reducing retransmission aggressiveness in meshing firmware reduces the probability that any given packet collides with a bursty interferer Use higher spreading factors: SF11 and SF12 provide more interference rejection (processing gain) at the cost of reduced throughput Enable Listen-Before-Talk (LBT): Some LoRa firmware supports carrier sense before transmitting, reducing collisions with other ISM band users