UHF / LoRa Link Budgets, Antennas & Doppler
Closing a 437 MHz downlink with +22 dBm RF power, tape-spring dipole deployment, Eb/N0 vs. LoRa chirp spread spectrum, and ±10 kHz Doppler tracking.
Core Engineering Principles & Equations
- At 437 MHz (λ ≈ 68.6 cm), a half-wave dipole is ~34.3 cm tip-to-tip—nearly 7× the width of a 1P cube.
- Free-space path loss at 525 km increases from ~140 dB at zenith (90° el.) to ~150 dB (150.2 dB) at 10° elevation.
- LoRa SF10–SF12 demodulates signals 15–20 dB below the thermal noise floor (−15 dB at SF10 to −20 dB at SF12 per Semtech SX1276/SX1262 specifications), enabling reception on low-gain ground antennas.
1. UHF Wavelength Scaling, NiTi Strain Limits & Hold-Down Release
Electromagnetic wavelength ignores miniaturization: at 437 MHz (λ ≈ 68.6 cm), a quarter-wave monopole measures 171.5 mm and a half-wave dipole spans 343.0 mm tip-to-tip—3.4× to 7× a 50 mm 1P cube (whereas a 2.4 GHz patch fits in ≈ 36 × 36 mm). Flush UHF elements on a 5 cm hull (k·a ≈ 0.23) lose 8–15 dB in efficiency, while balanced λ/2 dipoles fed via miniature lumped baluns avoid pattern distortion from a small (<0.1·λ) chassis ground plane.
PocketQube Standard rules (PQ-Gen-02 pyrotechnic ban, PQ-Mech-08 7 mm stowed envelope, plus ≥30 min deployable and ≥45 min RF timers) make thermal-knife or shape-memory release standard: braided UHMWPE (Dyneema, melting at 144–152 °C) severs in 1.5–5 s under 1.5–3.0 W into a 2–4.7 Ω NiCr resistor, while a 0.15 mm one-way NiTi wire delivers ≈ 5 N pin-pull force using 0.23 J (0.23 s at 1 W).
Coiling whips onto corner spools imposes bending strain ε_max = t / (2·R). Monograph SQ-R-003 shows that t = 0.10 mm tape on R = 3 mm reaches 1.67% strain—plastically kinking spring steel (~0.6% limit, forcing 0.036 mm foil storing 0.04 J) and CuBe2 (~0.9%), whereas superelastic NiTi (4% plateau) stores 0.20 J at −20 °C (5× steel) and 0.42 J at +25 °C, though 1 N of vacuum cold-welded adhesion absorbs 87% of NiTi energy at −20 °C unless PTFE or MoS₂ is used.
L_λ/2 = c / (2 · f), ε_max = t / (2 · R)At 437 MHz, L_λ/2 = 343 mm; on an R = 3 mm corner hub, t = 0.10 mm tape experiences ε_max = 1.67%, requiring superelastic NiTi (≤4% plateau) rather than steel (~0.6%).
2. Slant-Range Path Loss, Link Closure & Ground-Station G/T Cascade
Spherical-Earth slant range d = √((R_E + h)² − (R_E·cos ε)²) − R_E·sin ε stretches at h = 525 km from 525 km at zenith (90°) to 1,764 km at 10° elevation and 2,641 km at 0°. Because FSPL = 20·log₁₀(4π·d·f / c) grows as d²·f² (+6.02 dB per doubled distance), 437 MHz path loss climbs from 139.6 dB overhead to 150.2 dB at 10° and 153.7 dB at 0°—an ~14 dB swing plus 3 dB linear-to-circular polarization loss (avoiding Faraday fades), 1–3 dB attitude/null loss, and 0.5–1.0 dB atmospheric loss.
With transmit power capped at 100–500 mW (+20 to +27 dBm), carrier-to-noise density C/N₀ = EIRP − FSPL − L_misc + (G_rx − 10·log₁₀ T_sys) − k_B (k_B = −228.6 dBW/(K·Hz)) hinges on ground G/T and Friis noise ordering. Placing a mast LNA (0.5 dB NF = 35 K, G = 20 dB) behind a 13 dBic cross-Yagi (T_ant = 150 K) ahead of 1.8 dB coax and a 6 dB NF SDR (865 K) gives T_sys = 200 K (G/T = −10.0 dB/K), versus 366 K with an indoor LNA and 1,607 K without one (9 dB penalty).
Low-elevation UHF margins are tight: a 0.5 W (+27 dBm) 1P link at 500 km, 9,600 bps 2-FSK, and 10° into 14 dBic / 500 K closes by +0.08 dB (15.43 vs. 15.35 dB). In flight, Grizu-263A (100 mW / +20 dBm EIRP, 4,800 Bd at 437.190 MHz and 2,400 Bd at 435.675 MHz) reached +4.67 dB at 30° into 13 dBic / 350 K, decoding above 5°, 13°, and 42° across mast-LNA, shack-LNA, and no-LNA stations (32, 16, and 2 min/day at 41.45° N).
C/N₀ = EIRP − FSPL − L_misc + (G_rx − 10·log₁₀ T_sys) − k_B, T_sys = T_ant + T_LNA + ((L − 1)·T₀ + L·T_rx) / G_LNAImplemented in lib/physics/link-budget.ts with Boltzmann constant k_B = −228.6 dBW/(K·Hz) and feedline loss factor L = 10^(L_coax,dB / 10).
3. FSK Eb/N₀ Thresholds, Forward Error Correction & LoRa Chirp Spread Spectrum
Converting C/N₀ to bit energy E_b/N₀ = C/N₀ − 10·log₁₀ R_b shows that halving bit rate adds +3.01 dB margin (in /lab/wizard, +22 dBm / 158 mW at 9,600 bps and 20° has a −2.2 dB deficit until stepped to 4,800 bps). Uncoded non-coherent 2-FSK (P_b = ½·exp(−E_b / 2N₀)) needs 13.35 dB ideal E_b/N₀ (15.35 dB with 2 dB hardware loss) at BER = 10⁻⁵ (vs. 9.6 dB coherent BPSK). Because uncoded 256-B AX.25 frames hit a 3 dB frame-error cliff (FER = 1 − (1 − P_b)^N), modern picosatellites pair CSP with Reed–Solomon (255, 223) (16-B correction) or CCSDS rate-1/2, k = 7 convolutional coding for 4–7 dB gain with Kaitai Struct decoders on SatNOGS.
Low-power missions trade throughput for processing gain via LoRa chirp spread spectrum (SX1276 / SX1262 flown on FossaSat-1 and NORBY), sweeping BW ∈ {125, 250, 500} kHz across 2^SF chips (T_sym = 2^SF / BW) to demodulate 7.5–20.0 dB below thermal noise (SNR_req = −7.5 dB at SF7, −15.0 dB at SF10, −17.5 dB at SF11, −20.0 dB at SF12).
In lib/physics/lora.ts at BW = 125 kHz and bare NF = 6.0 dB (3.5 dB with external LNA), SF10 reaches −132.0 dBm sensitivity at 977 bps (T_sym = 8.19 ms, 453 ms Time-on-Air for 32 B at CR 4/5), adding 10–18 dB link margin that closes beacons into omnidirectional whips.
P_b,FSK = ½ · exp(−E_b / (2 · N₀)), S_rx,LoRa = −174 + 10·log₁₀(BW) + NF + SNR_req(SF) [dBm]Uncoded 2-FSK needs E_b/N₀ = 13.35 dB ideal (15.35 dB practical) at BER = 10⁻⁵, whereas LoRa SF10 at 125 kHz and 6 dB NF decodes down to −132.0 dBm (SNR_req = −15 dB).
4. Doppler Shift, Zenith Chirp Drift & Daily Pass Throughput
At h = 525 km (v ≈ 7.60 km/s), radial velocity sweeps Doppler shift f_D = −(ḋ / c)·f₀ from +10.2 kHz to −10.2 kHz (20.5 kHz span) on 437.19 MHz. Widening an FSK filter across the full excursion instead of SGP4 software tracking and uplink pre-correction wastes 3 dB of SNR per doubled bandwidth; conversely, fitting the zero-crossing inflection (TCA) and zenith slope resolves post-rideshare objects among 18 SDS TLE candidates.
Overhead culmination peaks Doppler rate at |df_D/dt|_max = (f₀ / c)·(v² / h)·[R_E / (R_E + h)] ≈ 148–160 Hz/s on 437 MHz (760 Hz/s S-band, ~3 kHz/s X-band). LoRa tolerates ±0.25·BW static offset (±31.25 kHz at 125 kHz), while quarter-bin intra-symbol drift requires |df/dt|_LoRa ≤ BW² / (4 · 2^(2·SF)): at 125 kHz, SF10 drifts 1.21 Hz/symbol vs. a 30.5 Hz limit, whereas SF12 (T_sym = 32.8 ms) needs Low Data Rate Optimization (DE = 1 for T_sym ≥ 16 ms) or 250 kHz BW.
Orbital geometry bounds daily throughput: a 525 km SSO pass lasts ≤11.9 min above 0° and ≤7.7 min above 10° (6.5 min mean). A mid-latitude station (41.45° N) averages 3.0–3.3 passes/day above 10° (~19.4–20 min/day contact with up to ~13 h gaps, vs. ~11 passes/day at Svalbard), transferring ~881–909 kB/day net at 9,600 bps (65–68% framing efficiency) and motivating adaptive zenith baud rates plus SatNOGS coverage.
f_D,max = ±(f₀/c)·v·R_E/(R_E + h), |df_D/dt|_max = (f₀/c)·(v²/h)·R_E/(R_E + h), |df/dt|_LoRa ≤ BW² / (4 · 2^(2·SF))From lib/physics/orbit.ts and lib/physics/lora.ts at 525 km, 437 MHz: f_D spans ±10.2 kHz and |df_D/dt|_max ≈ 148 Hz/s, safe at SF7–SF10 (125 kHz) but requiring DE = 1 or 250 kHz at SF12.
Specifications, Interactive Calculators & Topic Hubs
Engineering Verification Check
By approximately how many decibels does free-space path loss (FSPL) increase when slant range doubles?