CommCalc

Antenna · bearing & range · link budget · propagation & skip zone
📋 Basic view — just the essentials for a plan (antenna, location, path & propagation, siting card). Switch to Advanced (top right) for bearing tools, terrain, arrays, coverage and plugins.

1 · Frequency & Antenna

The only field the antenna output needs.
Advanced: ground & elevation pattern
Elevation pattern from the Fresnel ground-reflection coefficient (εc = εr − j·18000·σ/f). Real ground lifts the take-off angle above the ideal — most for verticals over poor soil. Uses the own antenna height from §4.

2 · Location — own & distant station

🔒 Locations are held only for this session and are wiped on close or inactivity — never saved to disk or presets.
4/6/8/10-figure grids accepted. Leave distant blank to just decode your own grid.
From the map margin. Converts grid → magnetic (compass) bearing.

3 · Bearing tools

Back-bearing = bearing ± 180° (± 3200 mils). NATO mil: 6400 mils = 360°.

4 · Path, horizon & link budget

Also sets the take-off angle in §1.
Link budget (optional)
Fading & reliability (planning)
Fade margin is added on top of the link budget above. Requires Tx power, frequency and Rx sensitivity.

5 · Propagation planner

Day/night is worked out from this time and your grid.
Blank = derive from distance.

6 · Sky-wave hops

A side-on view of the HF path in §5: the ray leaves your antenna at the take-off angle, refracts off the reflecting ionospheric layer (E/F1/F2, drawn at scale), and bounces back to earth once per hop. Diamonds mark the intermediate ground bounces where a multi-hop contact touches down; the dashed line is the skip distance — the nearest range a sky wave returns to, inside which lies the zone of silence. Heights and hop counts come straight from the propagation model; everything is drawn offline.

7 · Terrain line-of-sight

Samples ground elevation along the great-circle path (Open-Meteo, needs internet), corrects for 4/3 effective earth radius, and checks first-Fresnel-zone clearance for the frequency in §1. Antenna heights from §4 are added at each end.
Fires 16 radials from your own station, samples the ground along each (Open-Meteo, needs internet) and finds how far a receiver stays in line-of-sight over the terrain — the radio horizon where the ground is low, cut short by hills. Uses the §4 own-antenna height. A north-up viewshed; planning aid, not a full ITM/Longley-Rice model.

8 · Weather & light

Sun & moon are computed on-device and work offline. The weather forecast uses Open-Meteo (needs internet; you'll be asked before your location is sent). Times shown in your device's local zone.

9 · Visualise

Uses this device's Google Maps — no API key needed. Needs internet.
Optional — click-to-place with your own Maps JavaScript API key (advanced)
Click sets:

📡 Rebroadcasting

relay siting & multi-band chains — extend range beyond a single link

10 · Relay siting (RRB)

Plot candidate relay / rebroadcast sites between your own and distant stations. Each site splits the path into two legs — a relay only helps when both legs close. Uses §2 grids and the §4 range; drawn offline.

The map is a north-up offline plot of the stations and candidate relays; the best candidate (★) is joined to both stations. “Relay route in Google Maps” opens the two-leg path on this device’s Google Maps (needs internet, and sends only the plotted coordinates after the one-time consent). Site coordinates are session-only — they’re wiped on close/idle and never saved to presets.

11 · Complex / multi-band relay

Build a relay chain — own → relay 1 → relay 2 → … → distant — where each leg can use its own band. Set the band that reaches each relay; a relay whose inbound and outbound bands differ is a cross-band rebroadcast (⇄). Every leg must close for the chain to work.

Legs are laid out left→right by distance and coloured by band: VHF/UHF (line-of-sight), HF (sky-wave/NVIS), MF/LF (ground wave); a dashed red leg is too far for its band. LOS legs are capped by the §4 radio horizon; HF and lower are propagation-managed (see §5 & §6). Relay coordinates are session-only — wiped on close/idle, never saved to presets.

12 · Siting card

Save the plan (stations, relays & chain) as a map file for ATAK or Google Earth. Written on-device — nothing is sent.

13 · Antenna array & azimuth pattern

Omnidirectional = uniform coverage; directional (Yagi/panel) = a main lobe set by its 3 dB beamwidth and front-to-back ratio. Add several antennas to model a radio that switches between arrays — the plot shows the best-of (max) coverage envelope. North is up; bearings are grid/true degrees.

14 · Coverage & rebroadcast

Each station covers a circle of the given radius (its line-of-sight / reliable planning range — see §4/§5). The heat map shows combined coverage over the area: brighter green = stronger signal, and a blue tint marks where two or more stations overlap (redundancy / hand-over). Coordinates auto-detect MGRS, OSGB or lat/long. Everything is computed offline.

15 · Plugins

No plugins loaded.
Companies and SDR vendors can extend the tool without touching core — adding antenna materials, ground types, live data feeds (e.g. an SDR) and custom panels via CIS.plugins.register(…). See PLUGINS.md. Plugins run under the same offline security policy: scripts are same-origin only, so contacting a new remote host is a deliberate, reviewed change to the CSP.

🧰 Toolbox & reference

quick RF conversions and field references — everything offline

16 · RF toolbox

Pure conversions, computed on-device. Power converts between watts, dBm and dBW; VSWR ↔ return loss ↔ reflection coefficient with the resulting mismatch (reflected-power) loss; EIRP is referenced to isotropic and ERP to a half-wave dipole; wavelength lists the ½, ¼ and ⅝ cuts.

17 · Antenna designs

Starting cut-to-length dimensions from the standard resonant formulas with a ~0.95 wire velocity factor (dipole ≈ 468/f in feet). These are a starting point — always trim to resonance with an analyser/SWR meter. Lengths follow §12 units (metric/imperial). Computed offline.

18 · Signaller reference

—
Phonetic alphabet & numerals
Prowords (voice procedure)
Q-codes
RST — readability / strength / tone
CTCSS tones & DCS codes
A quick field card — NATO/ICAO phonetics and numerals, common voice-procedure prowords, Q-codes, the RST scale, and the standard CTCSS sub-audible tones / DCS codes. All offline. Prowords and Q-codes are aids to plain, clear voice — follow your unit's own voice procedure and CEOI.

📻 24-hour planning

which HF band, which hour — from this app's own ionospheric model

19 · HF band planner (24 h)

A band × hour workability grid for the §2 path, computed offline from this app's ionosphere model with the §8/§5 season and any live SFI (§5). Green = workable (deeper = more margin), red = above the MUF (signal penetrates — lower the band), blue = below the LUF (daytime D-layer absorbs it — raise the band). Hours are UTC; day/night is the sun at the path midpoint. Planning-grade — confirm critical links with a live prediction (e.g. VOACAP) or a sounding.

Planning aid only — verify before operational use. Antenna lengths are theoretical ¼λ cuts (length = material constant ÷ frequency in MHz); trim to resonance with an analyser/SWR meter. Bearings/ranges use the WGS84 ellipsoid (Vincenty); grid bearing uses first-order grid convergence. Confirm the grid-magnetic angle from your own map sheet. Propagation figures are typical planning values, not a live ionospheric prediction (e.g. VOACAP) — actual MUF/foF2 vary with solar activity and space weather. OSGB uses a ~few-metre Helmert transform (not OSTN15). Terrain clearance uses public elevation data — verify near-zero clearances on the ground.

Privacy & data. All calculation runs on your device. Nothing is collected, tracked, or sent anywhere unless you press a network button — and the first time you do, it asks first. Only three services are ever contacted, and only when you use them: the live map and map click send your coordinates to Google Maps; the terrain profile sends the coordinates along your path to Open-Meteo; space weather fetches indices from NOAA SWPC (no location sent). A Content-Security-Policy blocks the app from contacting anything else. Any Google Maps API key you enter is stored only in your own browser. See PRIVACY.md.

OPSEC. Entering real positions and then using the map or terrain buttons transmits those positions to a third party. For sensitive locations, keep to the offline features (which is everything else) or use notional grids.

Legal. This is a calculation and planning aid. It does not transmit on any radio frequency, control any equipment, or provide targeting. You are responsible for complying with the laws that apply to you — including radio-spectrum licensing, export/dual-use rules, data-protection law, and operational-security policy in your jurisdiction. Provided “as is”, without warranty; not legal advice. Do not use where prohibited. See SECURITY.md and the licence.