Back to app

About FPV Link Budget Estimator

What this is

A planning tool for FPV drone pilots that estimates how far you can realistically fly given your radio hardware and where you're flying. It calculates theoretical RF range using the same math used in real-world link budgets, then refines that estimate by checking line-of-sight against actual terrain elevation data.

The output is a coverage polygon on the map showing where your aircraft can maintain a usable link at the configured altitude. Inside the polygon, you've got line-of-sight and adequate signal margin. Outside it, either the radio runs out of budget or terrain blocks the path.

How to use it

  1. Pick your hardware. Select your video transmitter, control link, and antennas from the dropdowns. If your exact gear isn't listed, choose the closest match or use the "Custom…" option to enter specs manually.
  2. Drop a ground station pin. Click anywhere on the map to set where you'll be flying from. The free-space range circles render immediately.
  3. Click "Compute Terrain" to overlay the realistic coverage polygon. This samples elevation data along 18 bearings and finds where terrain breaks line-of-sight at your selected altitude.

Adjust the fade margin, environment preset, or aircraft altitude to see how each affects your range. Save profiles for different builds. Share configurations as URLs so others see exactly what you planned.

The RF math

Range is calculated using the Friis transmission equation for free-space path loss, solved for the maximum distance at which the receiver still has adequate signal:

FSPL_dB = 20·log₁₀(distance) + 20·log₁₀(frequency) − 147.55

The maximum range is the distance at which received power equals receiver sensitivity plus a configurable fade margin:

RX_Power = TX_Power + TX_Gain + RX_Gain − FSPL
RX_Power ≥ RX_Sensitivity + Fade_Margin

All values are in decibels. The fade margin is a safety buffer that accounts for real-world degradation the free-space model doesn't predict: multipath fading, antenna pointing imperfection, body blocking, atmospheric variation, and small-scale interference. The environment buttons set sensible defaults (7 dB for open desert, up to 25 dB for urban environments).

Terrain analysis

Free-space math gives you a theoretical maximum range circle. Real flying happens against terrain — ridges, hills, and obstacles block radio line-of-sight. When LOS is blocked, the link doesn't gracefully degrade; it dies.

The terrain analysis solves this in three steps:

  1. Sample 18 bearings outward from the ground station every 20°. Along each bearing, request elevation data from the Open-Meteo Elevation API at 10 logarithmically-spaced distances.
  2. Find each bearing's reach distance — the farthest point at which a straight line from the ground station antenna to the aircraft at the configured altitude clears all intervening terrain, plus Earth curvature drop (using the 4/3 effective Earth radius for radio propagation).
  3. Refine break-points with a second pass — when Pass 1 finds a block between two coarse samples, four refinement samples are added to pinpoint where LOS actually breaks.

The reach distances on all 18 bearings are connected into a polygon — your coverage shape. Where the polygon meets the free-space circle, the radio is the limiting factor. Where it falls short, terrain is.

Earth curvature drop at distance d with the 4/3 effective radius is:

drop = d² / (2 · 8,504,000)  meters

Limitations — what this tool can't do

Read this before relying on the predictions for any flight where the outcome matters.

Always fly with margin. Always maintain visual line of sight where regulations require it. Always assume the predicted range is optimistic.

Credits and source

This tool was built as a class project for Embry-Riddle Aeronautical University's Uncrewed Systems Networking course, and extended into a real flight-planning tool. It's open source under the repository's license — fork it, improve it, contribute hardware presets back.