GNURadio

French Guiana Firing Exercise or GNURadio and ScytaleC Inmarsat-C decoder

This is what we’re going to build.

And this is what we’re going to receive:

LES21 Marlink 10.10.107.29 10-MAR-2018 01:08:16 255880AVURNAV CAYENNE 003/18 FRENCH GUIANA FIRING EXERCISE FROM 291500UTC JAN
18 TO 020100UTC FEV 18 IN AREA ESTABLISHED WITHIN 15NM RADIUS OF 06-00N
052-30W.
VESSELS TO REMAIN CLEAR OF THIS AREA.

CANCEL THIS MSG 020200UTC FEV 18.

What we need is:

  1. Windows x64 OS
  2. An SDR reception system for Inmarsat-C (https://www.rtl-sdr.com/rtl-sdr-tutorial-decoding-inmarsat-std-c-egc-messages/).
  3. GNURadio for Windows (http://www.gcndevelopment.com/gnuradio/downloads.htm) and the graph below. There are plenty tutorials on GNURadio on the net if you find yourself in a position where you need help.
  4. ScytaleC.QuickUI (https://bitbucket.org/scytalec/scytalec)
  5. ScytaleC.Decoder.Cmd (https://bitbucket.org/scytalec/scytalec.decoder)

Will start with step 3 and for the purpose of this post we’ll use the IPs and ports presented in the first picture above. The picture assumes two distinct computers given by the IP addresses 192.168.2.10 and 192.168.2.15 respectively.  If you run it on the same computer, just use one IP address.

Step 3:

Install GNURadio, download and open the graph (iq_inmarsat-c_bpsk_48000_x2) in GNURadio Companion. This will provide our source of demodulated symbols.

We’ll tune the graph into an Inmarsat-C signal, and the graph will demodulate the signal and serve the demodulated symbols through a tcp server for the ScytaleC.Decoder.Cmd decoder. The decoder will decode the demodulated symbols and extract the Inmarsat-C frames. The frames will then be passed to the ScytaleC.QuickUI for display purposes.

You’ll find two demodulating chains inside the graph, one of them disabled. We want to make sure we can run at least one of them, then we can enable the other one. Then copy/paste and configure some more.

After you have opened the graph, look for ipaddr0 and ipport0 blocks and set their values to “192.168.2.10” and 30000 respectively. This is where the demodulated symbols will wait for the ScytaleC.Decoder.Cmd to pick them up. Note that the graph will not start if the ipaddr0 is not found in the network. Use an appropriate IP address.

Assuming you’re able to run and see the graph, use the provided sliders to zero any of the Inmarsat-C channels:

After you zero out the channel, the constellation diagram will look like this:

Before we move on, please check that you do not see a bunch of zeros being created in the GNURadio Companion console window:

If you see the zeros, although the constellation may look right, your signal would not be decoded into Inmarsat-C frames because symbols are getting dropped. You’ll have to “play” with the graph’s parameters to adapt it to your PC capabilities, mainly by reducing the sample rate and adjusting the decimation factor of the first low pass filter.

Step 4:

Download and run the ScytaleC.QuickUI.exe. This represents the other end of our decoding chain. Not much to set here, just press the run button, leave it running and let’s move on to the decoder. Note the port 15003. This is the port that we’ll need to use for the decoder to send data to the Quick UI. The IP address would be the IP address of the computer you’re running the Quick UI on, in this example 192.168.2.15.

Step 5:

You now have two options, you could either run the decoder in a console (Scytalec.Decoder.Cmd.exe) or you can run it using the WinForm application (ScytaleC.Decoder.UI.exe).

The ScytaleC.Decoder.UI parameters above are obvious and as such for this demo will use and configure the console application. The console application has the advantage that you can run a batch file that could potentially open multiple decoders at the same time. It’s up to how you configure it. A demo batch file is provided with the binaries. Download, extract, run a command window and open the console application:

Let’s configure it with our parameters -i 192.168.2.10:30000 -o 192.168.2.15:15003 and run it again. After a little while your screen should look like this:

Based on how you tuned your graph (on the NCS or a LES) you’ll see either EGCs or messages. It might take a while until you’ll see the first messages or in this case EGCs. In my case the first EGC arrived at frame 443 and was fully received at frame 459, and it contained a forecast issued by VALPARAISO PLAYA ANCHA RADIO/CBV. The second EGC was a warning for a FRENCH GUIANA FIRING EXERCISE:

Congrats!

Next step is to familiarize yourself with using the graph and play with enabling the second demodulator… then the third…

2 Comments

  • Gigi

    Thank you for the very nice software and guide. I’m a little late to the party, but can you give any pointers on how to adapt the gnuradio graph to receive another frequency? (the new IOR 1537.10 MHz is the one i’m looking for). Simply modifying the center_freq and re-aligning the constellation graph doesn’t seem to produce any valid symbols over the network.
    I have already validated the frequency/setup with the sdrsharp plugin, but i cannot get it to work using the gnugraph

Leave a Reply to Justin Cancel reply

Your email address will not be published. Required fields are marked *