Skip to content

Inmarsat L-Band (~1.5 GHz)

Inmarsat operates a fleet of geostationary satellites providing maritime, aviation, and government communication services. The L-band downlinks (1525-1559 MHz) carry several signal types that are unencrypted and continuously transmitted:

  • AERO — ACARS-over-satellite, relaying aircraft position reports, weather data, and operational messages between cockpits and ground stations via satellite
  • SafetyNET — maritime safety information broadcasts including weather warnings, navigational hazards, search and rescue coordination, and NAVTEX-equivalent messages
  • EGC (Enhanced Group Call) — broadcast messages to defined geographic areas or fleet groups, including distress alerts and urgency messages

These signals are receivable with modest equipment. The amateur community has been decoding them for years using patch antennas and RTL-SDR dongles. A directional dish provides significantly better SNR than the typical setup, making it easier to decode weaker channels and resolve signals from more distant beams.

Because the source is geostationary, the dish points at a fixed position and holds it. No tracking is required — this is the simplest possible pointing scenario for the Birdcage positioner.

The content on these channels is operational and current. SafetyNET broadcasts carry real maritime weather warnings issued by national meteorological services — storm warnings, ice reports, volcanic ash advisories, and NAVTEX-equivalent navigational hazards. AERO messages carry the same ACARS data that aviation enthusiasts monitor on VHF, but routed through satellite for aircraft over oceans where no ground stations exist. EGC messages include distress relay broadcasts, coast guard notices, and search-and-rescue coordination.

None of this is encrypted. The International Maritime Organization mandates that safety information be freely receivable, and the AERO channel carries unencrypted ACARS by design. Receiving and decoding these signals is a well-established hobby with an active community.

For stations in the Americas, two Inmarsat satellites provide coverage:

SatellitePositionCoveragePrimary use
Inmarsat-4 F3 (I-4 Americas)98.0 deg WAmericas, Atlantic, PacificCurrent primary. BGAN, SwiftBroadband, AERO
Inmarsat-3 F454.0 deg WAtlantic, Western Europe, East AmericasOlder generation. EGC, SafetyNET, Fleet
Inmarsat-6 F2~60.9 deg WAmericas (migrating)Latest generation, entering service

Inmarsat-4 F3 at 98 degrees West is the strongest target from most of North America. It carries both global beam (wide coverage, lower EIRP) and spot beam (narrower coverage, higher EIRP) services.

ParameterValueNotes
Satellite EIRP (global beam)~15 dBWWide coverage, modest power per unit area
Satellite EIRP (spot beam)~40 dBWNarrow regional coverage
Altitude35,786 kmGeostationary orbit
Slant range~37,000 kmTypical from mid-latitudes
Free-space path loss~188 dBAt 1540 MHz, 37,000 km
Dish gain (est.)~15 dBi84 cm x 58 cm elliptical at 1540 MHz
LNA noise figure0.8 dBWideband L-band LNA
System noise temp~80 KLNA-dominated
Required C/N~6 dBFor BPSK demodulation (SafetyNET)
Link margin (global beam)~8 dBReceivable with margin
Link margin (spot beam)~33 dBVery strong

The global beam is the more challenging target. With an omnidirectional patch antenna (~3 dBi), the global beam is marginal — sometimes decodable, often dropping frames. The dish’s 15 dBi gain provides 12 dB more than a patch, which puts the global beam solidly in the receivable range and makes spot beam signals trivially strong.

See SDR Hardware Setup for the full signal chain, feed mounting, and bias tee safety details.

ComponentRecommendationNotes
FeedHelical (3-5 turns, RHCP) or patch antennaTuned for ~1540 MHz center. RHCP matches Inmarsat downlink
LNAWideband L-band LNA + 1525-1560 MHz bandpass filterNo SAWbird exists for this band; use a wideband LNA with external filter
SDRRTL-SDR V41540 MHz well within range. 2.56 MHz BW covers multiple channels
SDR (wideband)BladeRF 2.0 microCaptures more of the L-band allocation simultaneously
Tracking modeFixed pointingGeostationary — calculate AZ/EL once and hold

Inmarsat L-band signals are RHCP (right-hand circular polarization). A linearly polarized feed loses 3 dB vs. circular. For maximum signal, use a helical feed wound for RHCP. A patch antenna with circular polarization is also effective and mechanically simpler to mount.

  1. Prepare the hardware chain. Mount the helical or patch feed at the dish focal point, connect through the LNA and bandpass filter to the SDR. Ensure the Winegard LNB bias tee is disconnected or blocked (see SDR Hardware Setup).

  2. Calculate the satellite’s AZ/EL. Using your ground station coordinates and the satellite’s longitude (98.0 deg W for Inmarsat-4 F3), compute azimuth and elevation. Online calculators or Gpredict’s geostationary satellite mode both work. Example for central US: AZ ~ 195 deg, EL ~ 45 deg.

  3. Point the dish.

    Terminal window
    birdcage move --az 195.0 --el 45.0 --port /dev/ttyUSB2 --baud 115200

    Or via rotctld:

    Terminal window
    birdcage serve --port /dev/ttyUSB2 --baud 115200 &
    echo "P 195.0 45.0" | nc 127.0.0.1 4533
  4. Verify signal presence in SDR++. Tune to 1539.0 MHz (a common Inmarsat channel) with 1 MHz bandwidth. You should see multiple carriers in the waterfall — narrow BPSK channels spaced across the band. If nothing is visible, slowly scan the dish +/- 2 degrees in AZ and EL to peak the signal.

  5. Fine-tune pointing for maximum signal. Adjust AZ and EL in 0.5-degree increments while watching the SDR++ waterfall. The Inmarsat carriers should brighten visibly when the dish is centered. Lock in the peak position.

  6. Start Jaero for AERO decoding. Configure Jaero to use the SDR’s audio output or IQ stream. Select the 600 baud or 1200 baud AERO channel. Jaero will begin decoding ACARS messages from aircraft communicating via the satellite.

    Jaero needs an audio feed from the SDR. The typical setup pipes audio from SDR++ (via virtual audio cable or UDP audio stream) into Jaero’s input.

  7. Start Scytale-C for SafetyNET/EGC. Scytale-C decodes the EGC and SafetyNET broadcast channels. These run at 1200 baud NCS (network coordination station) on known frequencies. Configure it similarly to Jaero — audio input from the SDR application.

  8. Log and observe. Let the system run for several hours. SafetyNET broadcasts are periodic (every few hours for routine weather, immediately for urgent safety). AERO traffic depends on how many aircraft are using the satellite link — busier over oceans where no VHF ground stations exist.

ToolPurposeProject
SDR++Spectrum display, frequency tuning, audio outputsdrpp.org
JaeroAERO channel decoding (aircraft ACARS over satellite)jontio/JAERO
Scytale-CEGC/SafetyNET maritime safety broadcast decoderScytale-C project
SDR#Alternative SDR frontend (Windows)Airspy

The decoding chain is: SDR captures RF, SDR++ (or SDR#) demodulates to audio, Jaero/Scytale-C decode the audio into readable messages.

Jaero supports multiple simultaneous channels — you can decode AERO on one frequency and EGC on another if your SDR bandwidth covers both. With a BladeRF’s wider bandwidth, capturing more of the Inmarsat allocation simultaneously becomes practical.

The SDR-to-decoder audio path is the trickiest part of the setup on Linux. Windows users typically use Virtual Audio Cable (VAC) to pipe audio from SDR# to Jaero. On Linux, the equivalent uses PulseAudio or PipeWire:

Terminal window
# Create a virtual audio sink
pactl load-module module-null-sink sink_name=sdr_audio sink_properties=device.description=SDR_Audio
# In SDR++, set audio output to "SDR_Audio"
# In Jaero, set audio input to "Monitor of SDR_Audio"

Alternatively, SDR++ can output audio via UDP, and Jaero can accept UDP audio input — this bypasses the audio subsystem entirely and is more reliable. Check the Jaero documentation for the UDP configuration format.

Inmarsat channel assignments vary by satellite and are periodically updated. As a starting point for Inmarsat-4 F3:

ServiceApproximate frequencyBaud rateNotes
NCS (Network Coordination)1537.70 MHz1200Always active. EGC/SafetyNET here
AERO 600varies600Lower data rate, easier to decode
AERO 1200varies1200Higher data rate, more traffic
AERO 10500varies10500High-speed data. Requires more bandwidth

The NCS channel is the best starting target — it’s always active, carries the most immediately readable content (SafetyNET broadcasts), and runs at 1200 baud which Scytale-C handles well.

  • AERO messages. Decoded ACARS messages from aircraft using the Inmarsat satellite link. Content includes position reports, weather observations, airline operational messages, and ATC communications. Traffic volume depends on the number of oceanic flights using the satellite — trans-Atlantic and trans-Pacific routes generate the most traffic.

  • SafetyNET broadcasts. Maritime safety information including NAVAREA warnings, weather forecasts, search and rescue coordination messages, and piracy alerts. These arrive periodically and contain real operational content — actual weather warnings for actual mariners.

  • EGC messages. Enhanced Group Call broadcasts targeted to geographic areas. These include distress relay messages, coast guard notices, and fleet broadcasts.

  • Channel characterization. The SDR++ waterfall shows the full Inmarsat channel structure: narrow BPSK carriers at regular spacing, with varying signal levels indicating different beam types and traffic loads.

This is one of the most accessible SDR experiments because the signal is always present, the source doesn’t move, and the content is immediately meaningful. There’s no waiting for a satellite pass or aligning timing windows — point the dish, tune the SDR, and start decoding.

Because the signal is continuous and the dish doesn’t need to track, this experiment lends itself to long-duration unattended monitoring. Leave the system running for days or weeks to build a comprehensive log of maritime safety traffic in your region. The data has practical value — it provides a real-time view of weather warnings, navigational hazards, and search-and-rescue activity that augments publicly available marine weather sources.

The dish’s stability over time is relevant here. If the positioner drifts due to thermal expansion, wind loading, or firmware behavior, signal quality will degrade gradually. Monitoring the decoded message rate over time provides an indirect measure of pointing stability — a useful dataset for characterizing the Birdcage hardware independent of this experiment’s primary goals.

  • Inmarsat satellite selection. Which satellite provides the strongest signal from a given location depends on elevation angle and beam coverage. Is Inmarsat-4 F3 at 98 deg W always the best target from continental North America, or does Inmarsat-3 F4 at 54 deg W offer better coverage for East Coast stations?

  • RTL-SDR vs. BladeRF. Jaero and Scytale-C were originally designed to work with RTL-SDR and SDR# on Windows. The Linux + BladeRF + SDR++ pipeline may require additional configuration to route audio correctly. Has anyone validated Jaero with BladeRF input on Linux?

  • Optimal center frequency. The Inmarsat L-band allocation spans 1525-1559 MHz. With a 2.5 MHz RTL-SDR bandwidth, you can only see a fraction at a time. Which center frequency captures the most interesting channels? The AERO and EGC channels are at known frequencies that vary by satellite and region.

  • Feed polarization sensitivity. How much does RHCP vs. linear polarization matter in practice? With 8 dB of link margin on the global beam, the 3 dB circular-to-linear mismatch loss may be acceptable. But if the goal is to decode the weakest channels, every dB counts.

  • Elevation floor impact. The Carryout G2’s minimum elevation is 18 degrees. From high-latitude stations, geostationary satellites may appear below this limit. What’s the approximate latitude cutoff where Inmarsat-4 F3 drops below 18 degrees elevation?