A free, open-source Windows GUI for RF and satellite link budget analysis. Calculate free-space path loss (FSPL), EIRP, C/N0, Eb/N0, and link margin with ITU-R atmospheric attenuation models — no MATLAB or spreadsheet required. Built as a lightweight native Win32 application in C.
- Satellite link budget — compute end-to-end C/N0 and Eb/N0 for LEO, MEO, or GEO satellite links with rain and gaseous attenuation
- RF link design — size antennas, select transmit power, and verify link margin for point-to-point microwave or telemetry links
- Classroom / self-study — learn how FSPL, antenna gain, noise temperature, and modulation interact in a real link budget
- Quick trade studies — sweep any parameter (frequency, distance, antenna diameter, rain rate) and find the zero-margin crossing instantly
- 8-section input panel — frequency, modulation/coding, geometry, transmitter, TX antenna, path loss, RX antenna, RX system noise
- Antenna modes — direct gain input or parabolic dish (auto-computes gain and beamwidth)
- Geometry modes — slant range or horizontal distance with altitude
- Path loss models — simple FSPL (Friis transmission equation) or ITU-R (P.676-12 gaseous + P.838-3 rain attenuation)
- Clickable unit cycling — frequency (GHz/MHz/kHz), altitude (m/ft/km/NM), power (W/dBm/dBW)
- Sweep plot — margin vs. any parameter with zero-crossing detection and interactive crosshair
- Save / Load —
.lbfscenario files for repeatable analysis - CSV export — all inputs and computed results
- PDF report — direct PDF 1.4 output, no printer driver required
- Portable — single
.exe, no installation needed
Download the latest release from the Releases page:
LinkBudgetCalculator_vX.X.X_Setup.exe— Windows installer (no admin rights required)Link Budget Calculator.exe— portable, runs without installation
The calculator implements the standard RF link budget equation:
Link Margin = EIRP - Path Loss + G/T - Required Eb/N0 - Implementation Loss
All intermediate values (EIRP, free-space path loss, atmospheric attenuation, antenna gain, system noise temperature, C/N0, Eb/N0) are computed and displayed. When ITU-R mode is selected, oxygen and water vapour attenuation follow ITU-R P.676-12 Annex 2, and rain attenuation follows ITU-R P.838-3. The sweep plot varies one parameter while holding everything else constant, plotting margin and marking the exact zero-crossing point.
A link budget is an accounting of all gains and losses in a radio communication system — from transmitter power through antenna gains, path loss, and receiver sensitivity — to determine whether a signal arrives with enough strength to be decoded. Link Budget Calculator automates this calculation with a graphical interface.
Yes. You can enter slant range or horizontal distance with altitude, choose between FSPL and ITU-R atmospheric models (oxygen, water vapour, rain), and compute C/N0 and Eb/N0 for any orbit — LEO, MEO, or GEO.
Two models: simple free-space path loss (Friis equation) and ITU-R extended mode with gaseous attenuation (P.676-12 Annex 2) plus rain attenuation (P.838-3).
No. Link Budget Calculator is a standalone Windows application. There is no dependency on MATLAB, Python, or spreadsheet software.
Yes. The calculator exports PDF reports (direct PDF 1.4 generation, no print driver needed) and CSV files with all inputs and computed results.
Yes. MIT licensed — free for personal, educational, and commercial use.
| Tool | GUI | Free | Offline | Sweep Plot | Standards |
|---|---|---|---|---|---|
| Link Budget Calculator | Native Win32 | Yes (MIT) | Yes | Yes | ITU-R P.676, P.838 |
| MATLAB link budget scripts | No (scripts) | No | Yes | Manual | Varies |
| Excel spreadsheets | Spreadsheet | Varies | Yes | Manual | Varies |
| SatNOGS | Web | Yes | No | No | Basic FSPL |
| Pathloss 5 | Yes | No (commercial) | Yes | Yes | ITU-R full suite |
Link Budget Calculator is the only free, offline, native GUI tool that includes ITU-R atmospheric and rain attenuation models with a built-in parameter sweep plot.
| Key | Action |
|---|---|
F5 |
Recalculate |
Ctrl+S |
Save scenario |
Ctrl+O |
Load scenario |
Ctrl+E |
Export CSV |
Ctrl+P |
PDF report |
Ctrl+W |
Sweep plot |
Requires MSYS2 with the MinGW-w64 toolchain.
# Install dependencies (once)
pacman -S mingw-w64-x86_64-gcc
# Build
PATH="/c/msys64/mingw64/bin:$PATH" windres app.rc -O coff -o app.res
PATH="/c/msys64/mingw64/bin:$PATH" gcc -Wall -Wextra -std=c11 -O2 \
linkbudget_gui.c linkbudget_ui_controls.c linkbudget_ui_logic.c \
linkbudget_ui_io.c linkbudget_pdf.c linkbudget_core.c app.res \
-o "Link Budget Calculator" -lcomctl32 -lcomdlg32 -mwindows -lm
# Run tests
PATH="/c/msys64/mingw64/bin:$PATH" gcc -Wall -Wextra -std=c11 -O2 \
linkbudget_core.c test_linkbudget.c -o test_linkbudget -lm
./test_linkbudget| File | Description |
|---|---|
linkbudget_core.c/h |
Physics engine — FSPL, EIRP, C/N0, Eb/N0, ITU-R models |
linkbudget_gui.c |
WinMain, WndProc, sweep window, tooltips, owner-draw buttons |
linkbudget_gui_config.h |
Layout constants, colours, control IDs |
linkbudget_ui_controls.c/h |
Section builders, control creators, panel WndProcs |
linkbudget_ui_logic.c/h |
Visibility, unit cycling, parameter extraction, calculation |
linkbudget_ui_io.c/h |
Save/load scenario, CSV export |
linkbudget_pdf.c/h |
PDF report generation |
test_linkbudget.c |
141 unit tests |
version.h |
Single-source version definition |
installer.iss |
Inno Setup installer script |
Version is defined in version.h. To release a new version, update the three defines and tag:
#define VERSION_MAJOR 1
#define VERSION_MINOR 1
#define VERSION_PATCH 1git tag v1.1.1 && git push origin v1.1.1CI will automatically build the installer and portable .exe and attach both to the GitHub Release.
| Model | Standard |
|---|---|
| Free-Space Path Loss | Friis transmission equation |
| Oxygen attenuation | ITU-R P.676-12 Annex 2 |
| Water vapour attenuation | ITU-R P.676-12 Annex 2 |
| Rain attenuation | ITU-R P.838-3 |
| Parabolic antenna gain | G = η(πD/λ)² |
| Antenna beamwidth | θ = 67λ/D |
| System noise temperature | Cascade noise model (Friis) |
