Documentation sections
RF Link Budget Calculator
POSThttps://rftools.io/ api/ py/ v1/ calculate
Slug rf-link-budget. Free RF link budget calculator: enter Tx power, antenna gains, frequency, and distance to get received signal level, link margin, and max range. Covers satellite, terrestrial, and IoT links.
Inputs
Send every one of these in inputs, in the units shown. Most are required: a call without one is refused (400) and costs nothing; one the calculator can do without takes the default shown. An input outside its range is still computed and flagged in the provenance.
| Name | Unit | Range | Default | Description |
|---|---|---|---|---|
| txPowernumber | dBm | −30 … 100 | 30 | Transmitter output power |
| txGainnumber | dBi | −30 … 60 | 3 | TX antenna gain in dBi |
| txCableLossnumber | dB | 0 … 20 | 1 | TX cable + connector losses (positive value) |
| frequencynumber | MHz | 0.1 … 1000000 | 2400 | Center frequency |
| distancenumber | km | 0.001 … 1000000 | 1 | Distance between TX and RX |
| rainFadenumber | dB | 0 … 50 | 0 | Rain attenuation per ITU-R P.838. Use 0 for line-of-sight ground links; 3–20 dB for satellite links above 10 GHz in heavy rain zones. |
| atmosphericLossnumber | dB | 0 … 20 | 0.5 | Gaseous absorption (O₂ at 60 GHz: ~15 dB/km; H₂O at 22 GHz: ~0.2 dB/km). Use 0.5 dB typical for sub-6 GHz terrestrial links. |
| pointingLossnumber | dB | 0 … 10 | 0 | Antenna misalignment loss. Pencil-beam dishes: 0.5–3 dB. Omnidirectional or wide-beam antennas: 0 dB. |
| extraLossCountnumber | none | 0 … 4 | 0 | How many extra loss terms the budget includes, such as polarisation mismatch, body loss or foliage |
| extraLoss1number | dB | 0 … 50 | 0 | An extra loss in the path, such as polarisation mismatch, body loss, foliage or a wall |
| extraLoss2number | dB | 0 … 50 | 0 | An extra loss in the path, such as polarisation mismatch, body loss, foliage or a wall |
| extraLoss3number | dB | 0 … 50 | 0 | An extra loss in the path, such as polarisation mismatch, body loss, foliage or a wall |
| extraLoss4number | dB | 0 … 50 | 0 | An extra loss in the path, such as polarisation mismatch, body loss, foliage or a wall |
| rxGainnumber | dBi | −30 … 60 | 3 | RX antenna gain in dBi |
| rxCableLossnumber | dB | 0 … 20 | 1 | RX cable + connector losses |
| rxSensitivitynumber | dBm | −160 … 0 | -90 | Minimum receivable signal level |
| targetMarginnumber | dB | 0 … 60 | 10 | The fade margin the link must keep above the receiver sensitivity. The status passes at or above it and fails below 0 dB. |
Outputs
Returned in values, by key. A value that is unbounded or undefined is null.
| Field | Unit | Description |
|---|---|---|
| fspl | dB | Free Space Path Loss |
| eirp | dBm | Effective Isotropic Radiated Power |
| rxPower | dBm | Received Power |
| linkMarginheadline | dB | Link Margin |
| maxRangeKm | km | Max Range |
| totalAdditionalLoss | dB | Sum of rain fade, atmospheric loss, pointing loss and any extra loss terms |
| maxRangeAtTarget | km | The distance at which the link margin falls to the target margin |
| wavelength | mm | Wavelength |
| fresnelRadius | m | Radius of the first Fresnel zone at the middle of the path. Keep at least 60 % of it clear of obstacles. |
Calling it
- Calculate: one call, the request and response in full, and its errors.
- Batch: this calculator with others, or a sweep, in one request.
- Solve for a target: the value of one input that brings an output to a target.