Inmarsat STD-C Reception

Decode Inmarsat STD-C Maritime Messages with Skytale-C

March 05, 2023 · 9 mins read

Introduction


As I mentioned in my previous post "Inmarsat AERO ACARS Reception" INMARSAT is a geostationary satellite communication service provider widespread among aviation and maritime industries. Their STD-C service is widely used in the marine sector to send text, emails, or data messages. These signals are transmitted in the L-Band which is around 1.5Ghz and the exact frequencies depend on the satellite you have access to in your region.

Inmarsat Coverage
Inmarsat Coverage

STD-C Channels


STD-C Full Channel Range
STD-C Full Channel Range

There are mainly two types of channels, the first one being the NCS (Network Control Station) channel dedicated to EGC (Enhanced Group Call) messages. This allows broadcasting certain messages to certain groups of ships and vessels within the satellite footprint. There are two types of ECG services,

  • Safety NET - Maritime safety information broadcast
  • Fleet NET - Commercial text messaging service

The second one is the LES (Land Earth Station) Channels and which are used to send messages to or from specific ships/vessels from ground stations (Ship to Shore), from one ship to another (Ship to Ship), or for the Ship Security Alert System (SSAS).

It's worth mentioning all these channels are 1200bps and more information on them can be found on the Sigiwiki page.

Antenna Setup


STD-C channels are relatively strong and therefore easier to receive with modest hardware. "RTL-SDR Blog's L-BAND Patch Antenna" is a great choice, easy to deploy and can run off of the bias-t current from a suitable SDR and it can be left to run 24x7 outside since it is properly weather shielded. Better results can be achieved by using a small dish and an L-Band helical feed. Additionally using an L-Band filtered LNA unit such as Nooelec's Sawbird IO or Sawbird+IO will further improve reception.

Antenna Setup
Dish Setup or L-Band Patch

Note: See my previous post "Inmarsat AERO ACARS Reception" for more information about antenna configuration.

Software Setup


There are quite a few software choices out there when it comes to deciding STD-C, but most of them are not open-sourced and paid software. Skytale-C by microp11 is great free software that works on par with any other paid alternative, is easy to set up, and comes preloaded with the SDRSharp community package.

Skytale-C-SDRSharp-Setup

Download SDRSharp community package, tune in to any STD-C channel, set the bandwidth to 4KHz, open the Skytale-C from the plugins menu, and click on the "Enabled" and "Auto Tracking" checkboxes. It will say "Locked" on the top right corner when it properly locked on to the signal and the constellation window will show it too. Then it will start decoding SDT-C messages immediately, Then click on the "Quick UI" button will open a new window, and there you can see all decoded messages.


Note: microp11 has a excellent youtube playlist explaining the software setup and features.


Decoding Multiple Channels Simultaneously


It's possible to decode all the STD-C channels simultaneously and there are a few ways to do it, but using SDR++ built-in audio routing method is by far the most efficient use of computer resources. Although advanced SDR is needed because RTL-SDR type devices simply do not have the bandwidth to fit all STD-C channels. I've used an Airspy-R2 for this demonstration.

SDR++ Radio Setup

First Skytale-C and Skytale-C Quick UI need to be downloaded separately. First download and open SDR++, go to the "Module Manager" tab and select the "Radio" option from the dropdown menu, give it a unique name such as CH01, and click on plus sign to add it. A new VFO will apear on the spectrum window, click on the VFO and tune it to the first SDT-C channel.

SDR++ Sinks Setup

Then go to the "Sinks" tab and select the newly created VFO, select "Network" from the first dropdown menu, type in localhost IP(127.0.0.1) in the first field, and type in a unique port number on the second field. The "Protocol" need to be set as TCP. Finally, click on the "Start" button to start the stream. This will start streaming the IQ data through that TCP port to the Skytale-C.

This process needs to be done for all available channels. See the figure below.

LES-Channels
It Should Look Like This
Skytale-C-Setup

Then extract the Skytale-C archive inside a new folder and rename it to the same name as the first VFO. Open Skytale-C, On the "Source" tab, click on the "TCP" switch, type in the localhost IP(127.0.0.1) and the port number used for the first VFO. This will allow the Skytale-C to connect to the IQ stream from the SDR++.

Then on the "Destination UDP" section again type in the localhost IP(127.0.0.1) and a unique port. Also, make sure the "Transmit" check box is selected as well. This configuration will send the decoded messages through the UDP port over to the Skytale-C Quick UI interface. Finally, Click on the blue play button to start decoding. The same process needs to be done for all VFOs.

Folder Structure

Creating a Folder Structure Like This will Help Identify each Skytale-C Instance.

Skytale-C Quick UI Setup

Then, extract the Skytale-C Quick UI archive and open the Quick UI App. On the "Sources" tab type in the port numbers previously configured in the "Destination UDP" section on the Skytale-C. Also "Log Messages" option is available to save the decoded messages to a text file. Finally, Click on the blue play button and it will start receiving decoded messages from Skytale-C. Connected STD-C channel IDs can be seen on the top field.


Final Thoughts...

If everything is configured correctly you should see Skytale-C Quick UI populating with messages soon. I had access to 11 STD-C channels in the IOR region(The NCS channel and 10 LES channels). I was able to decode all LES channels simultaneously but the NCS channel was too far apart from the LES channels and I couldn't get it to work with the rest. Maybe It's possible with a more advanced SDR like a Hackrf or a PlutoSDR, where more sample rate and more instantaneous bandwidth are present.

Multiple Skytale Instances
Running Multiple Instances of Skytale-C
STD-C Quick UI
STD-C Quick UI