Iridium (1626 MHz)
The signal
Section titled “The signal”Iridium operates a 66-satellite LEO constellation at roughly 780 km altitude, orbiting in six planes. The satellites transmit downlinks in the 1616-1626.5 MHz band using TDMA (time-division multiple access) burst signaling — short, structured transmissions that repeat on predictable timeslots.
Even without decoding message content, these bursts are interesting targets. Each one carries detectable structure: burst timing, center frequency, Doppler shift, and signal strength. A directional dish tracking a single satellite through its pass can capture bursts with significantly higher SNR than the omnidirectional antennas typically used for Iridium monitoring, making it easier to isolate individual satellite signals from the constellation background.
The original Iridium constellation (Block 1) produced the famous “Iridium flares” from their main mission antennas. Those satellites have been deorbited and replaced with Iridium NEXT, which doesn’t flare — but the RF characteristics of the new constellation are just as interesting to capture.
What makes this different from omnidirectional monitoring
Section titled “What makes this different from omnidirectional monitoring”Most Iridium monitoring stations use a simple quarter-wave whip or turnstile antenna with hemispherical coverage. They catch bursts from every visible Iridium satellite simultaneously — typically 2-4 satellites at any moment — but with no ability to distinguish which satellite produced which burst without decoding the frame contents.
A tracked directional dish flips this approach. The beam is narrow enough (roughly 15-20 degrees at 1626 MHz) to isolate a single satellite for most of its pass. This means the Doppler curve from burst frequency offsets maps cleanly to one orbital track, without contamination from other satellites. The tradeoff is that you capture fewer total bursts per session, but each burst has unambiguous attribution.
Link budget
Section titled “Link budget”| Parameter | Value | Notes |
|---|---|---|
| Satellite EIRP | ~22 dBW | Downlink, per beam |
| Altitude | 780 km | LEO |
| Slant range (20 deg EL) | ~1600 km | Worst case for a usable pass |
| Free-space path loss | ~157 dB | At 1626 MHz, 1600 km |
| Dish gain (est.) | ~12 dBi | 84 cm x 58 cm elliptical at 1620 MHz |
| LNA noise figure | 0.7 dB | SAWbird Iridium (filtered) |
| System noise temp | ~75 K | LNA-dominated with feed losses |
| Receiver bandwidth | 10 MHz | Full Iridium downlink band |
| Required Eb/No | ~10 dB | For burst detection (not demod) |
| Link margin | ~15 dB | Comfortable for burst detection |
The margin is generous because burst detection (finding that a transmission occurred and measuring its parameters) requires much less SNR than full demodulation. The dish gain helps isolate the tracked satellite from adjacent Iridium satellites that may be transmitting simultaneously.
Hardware requirements
Section titled “Hardware requirements”See SDR Hardware Setup for the full signal chain, feed mounting, and bias tee safety details.
| Component | Recommendation | Notes |
|---|---|---|
| Feed | Helical antenna, 5-7 turns, RHCP | Tuned for 1620 MHz center. ~3 dBi gain on its own |
| LNA | Nooelec SAWbird Iridium | 1626 MHz SAW-filtered, 0.7 dB NF, ~17 dB gain |
| SDR | RTL-SDR V4 | 1626 MHz is within the 1.766 GHz limit. 2.56 MHz stable BW |
| SDR (wideband) | BladeRF 2.0 micro | 10 MHz+ bandwidth for full-band capture |
| Tracking | Gpredict via rotctld | Continuous LEO pass tracking at 127.0.0.1:4533 |
The choice between RTL-SDR and BladeRF depends on the capture approach. An RTL-SDR can see a ~2.5 MHz slice of the Iridium band per recording. A BladeRF captures the full 10 MHz downlink band, which gr-iridium expects for comprehensive burst detection.
Helical feed construction notes
Section titled “Helical feed construction notes”A 5-turn axial-mode helix for 1620 MHz uses the following dimensions (approximate):
| Parameter | Value |
|---|---|
| Turn diameter | ~59 mm (0.31 wavelength) |
| Turn spacing | ~46 mm (0.25 wavelength) |
| Total length | ~230 mm (5 turns) |
| Wire diameter | 2-3 mm copper or brass |
| Ground plane | ~120 mm diameter minimum |
| Impedance | ~140 ohms (needs matching to 50 ohm coax) |
A quarter-wave impedance transformer (a short section of ~84 ohm coax) or a simple tapered feed can match the helix to 50 ohm coax. Winding direction determines circular polarization sense — wind clockwise (looking from the feed toward the dish) for RHCP.
Proposed procedure
Section titled “Proposed procedure”-
Prepare the hardware chain. Mount the helical feed at the dish focal point, connect through the SAWbird LNA, run coax to the SDR. Verify the LNB bias tee is disconnected or blocked (see SDR Hardware Setup).
-
Configure Gpredict. Add the Iridium constellation TLE set. Select a target satellite with a high-elevation pass (above 40 degrees peak) for the first attempt. Configure the rotor interface: 127.0.0.1:4533, AZ type 0-180-360, min EL 18, max EL 65.
-
Start the Birdcage rotctld server.
Terminal window birdcage serve --port /dev/ttyUSB2 --baud 115200 -
Tune the SDR. Set center frequency to 1621.25 MHz (middle of the downlink band). With a BladeRF, set bandwidth to 10 MHz and sample rate to 12 Msps. With an RTL-SDR, use 2.56 Msps and accept a narrower slice.
-
Begin recording before the pass starts. Start IQ capture to a file at least 60 seconds before the satellite rises above 18 degrees elevation. Let the recording run continuously through the entire pass.
Terminal window # BladeRF examplebladeRF-cli -e "set frequency rx 1621250000; set samplerate rx 12000000; set bandwidth rx 10000000; rx config file=iridium_pass.sc16 format=bin n=720000000; rx start; rx wait" -
Track the satellite through the pass. Engage Gpredict tracking. The pass will last 5-10 minutes depending on maximum elevation. The positioner follows via rotctld commands.
-
Stop recording after the pass. The IQ file will be large — roughly 1.4 GB per minute at 12 Msps, 16-bit complex. A full 10-minute pass produces about 14 GB.
-
Process with gr-iridium offline.
Terminal window iridium-extractor -D 4 --multi-frame iridium_pass.sc16 | grep "^RAB" > bursts.txt
Software pipeline
Section titled “Software pipeline”| Tool | Purpose | Project |
|---|---|---|
| gr-iridium | Burst detection and extraction from wideband IQ | muccc/gr-iridium |
| iridium-toolkit | Frame parsing, timing analysis, satellite ID | muccc/iridium-toolkit |
| SDR++ | Live spectrum monitoring during capture | sdrpp.org |
gr-iridium works on recorded IQ files. It searches the full bandwidth for TDMA bursts, extracts them, and outputs per-burst metadata including timestamp, frequency offset, confidence, and frame contents. iridium-toolkit then parses these into higher-level structures.
The standard workflow in the Iridium monitoring community is to capture broadband (10 MHz), process offline, and analyze the burst statistics. Real-time decoding is possible but demands more CPU than offline batch processing.
Post-processing workflow
Section titled “Post-processing workflow”IQ recording (.sc16 / .raw) ↓iridium-extractor (gr-iridium) → raw burst lines (timestamp, freq, confidence, bits) ↓iridium-parser.py (iridium-toolkit) → decoded frames (IRA, IBC, MSG, etc.) ↓reassembler.py (iridium-toolkit) → reassembled pages (pager messages, ring alerts) ↓analysis scripts → Doppler plots, timing histograms, burst statisticsThe intermediate files are plain text, one line per burst or frame. This makes them easy to filter with standard Unix tools — grep, awk, and sort handle most of the exploratory analysis before writing dedicated scripts.
Expected results
Section titled “Expected results”A single high-elevation Iridium pass with a 10 MHz broadband capture should yield:
- Hundreds of detected bursts — a typical pass produces 200-500 ring alert, broadcast, and messaging bursts depending on traffic load
- Timing analysis — TDMA slot boundaries are visible in the burst timestamps, revealing the frame structure
- Doppler curve — frequency offset vs. time traces out the classic S-curve that maps to satellite orbital geometry
- Satellite identification — iridium-toolkit can extract the satellite ID from certain frame types, confirming you tracked the correct object
Plotting burst frequency offset against time should produce a clean Doppler curve. The shape of this curve encodes the satellite’s orbital parameters relative to the ground station — the maximum Doppler rate occurs at closest approach, and the total Doppler shift at the edges of the pass reflects the satellite’s velocity component along the line of sight.
Any jitter or discontinuities in that curve may indicate tracking lag from the positioner — a useful diagnostic for evaluating Birdcage’s LEO tracking performance. Comparing the measured Doppler curve against the predicted curve (from TLE orbital elements) provides an independent check of both the tracking accuracy and the SDR’s frequency calibration.
Burst classification
Section titled “Burst classification”gr-iridium categorizes detected bursts into several types:
| Type | Abbreviation | Description |
|---|---|---|
| Ring Alert Broadcast | RAB | Paging bursts — most common, always present |
| Iridium Burst Continuation | IBC | Data continuation frames |
| Message | MSG | User data payload |
| Ring Alert | IRA | Individual paging |
| Broadcast | IBD | Satellite broadcast information |
RAB bursts dominate the output and are present even when no active calls are in progress. They form the backbone of the TDMA timing analysis.
Open questions
Section titled “Open questions”-
Single-satellite yield vs. omnidirectional. Omnidirectional Iridium monitors catch bursts from multiple satellites simultaneously. A directional dish isolates one satellite but misses the rest. Is the per-satellite burst count high enough to be interesting, or does the experiment need a different framing (e.g., Doppler characterization rather than bulk burst collection)?
-
RTL-SDR bandwidth tradeoff. gr-iridium is designed for wideband captures. With only 2.5 MHz of the 10 MHz band visible, burst detection rates drop proportionally. Is the reduced capture still useful, or does this experiment really need a BladeRF?
-
Tracking rate. Iridium LEO passes move at up to ~1 degree per second near zenith. The Carryout G2’s maximum AZ slew rate is 65 degrees/sec (more than enough), but the rotctld update interval and motor settling time may introduce pointing lag at high angular rates. Testing needed to characterize the lag.
-
Feed polarization. Iridium downlinks are RHCP. A linearly polarized feed loses 3 dB vs. circular. Whether the dish gain compensates for this loss depends on how much margin matters for burst detection.