GOMX-3 data download

This weekend, Mike DK3WN caught GOMX-3 downloading a good amount of data. See his post here. This data consists mainly of the satellite retransmitting a lot of beacons that were generated during the last 16 hours or so.

GomSpace has recently released a complete parser for GOMX-3 beacons of type 1 0 (these are the beacons that contain ADS-B data). I have already incorporated this code into my gr-ax100 fork.

The binary data in KISS format (almost 250KB) and the parsed beacon data received during this data download is in gist. Probably the most interesting thing is the ADS-B data. Below you can see all the aircraft on the map. Clicking on any of them will show the details for that aircraft.

Since the orbit of GOMX-3 has an inclination of 51.6º, the satellite doesn’t usually detect aircraft above 55ºN or below 55ºS. GomSpace has an image which shows lots of flights received with GOMX-3. There, the major air routes and hubs are apparent.


  1. Hi Dani,

    Thanks for the decoder upgrade, and the ADS-B to KML converter! Interesting that Mike was able to receive so many packets of data. So far, I have only seen such packets every 10 seconds.

    We very much appreciate your showing us the way.



    1. GomSpace is in Denmark, and Mike is close by. They only download stored data over their ground stations. They have several in Europe, but presumably none in the US, so you will only get real-time telemetry.

      I forgot to say that to use the KML converter you need to add a header and footer to obtain a valid KML file. I have updated the README accordingly.

          1. Daniel is there Any tutorial installation as i am not an Linux user but just a Windows one.
            Any help quell be really appreciated.

  2. Hi Daniel, I am not a Linux and Gnu Radio user but with the help of some friends I am trying to install your gr-ax100. Created a virtual machine on win 7.1 using VMware 12,intalled Ubuntu 12.04 and Gnu Radio 3.7.4,installed KA9Q libfec,installed gr-synctags,try to install gr-ax100, cmake ok, make generated an error “/bloks/gnuradio/pack_k_bits.h”. Please advise, tnx.

    1. With that information, I can’t say what is wrong, apart that it’s really strange that it gives an error there. Please email me the full compile log to try to see what the problem is.

      In any case, pack_k_bits is not really necessary in the latest version of my gr-ax100 fork, so I might remove it if I see that it gives problems.

      1. Unfortunately the Ubuntu/GnuRadio expert is flew away and will be back in four months. If he has free time he will try to fix it by remote using teamviewer, at present I haven’t the compile log. Thanks anyway, I will continue to watch the uge signal from GOMX-3 without decoding.

  3. Hi Dan, I am still having problems trying to install your gr-ax100 program. Installed Ubuntu 16.04.1 LTS in dual boot with Windows 10,
    Gnuradio, KA9Q libfec, gr-synctags, gr-csp-master, gr-kiss-master and gr-ax100, all with cmake-gui creating .deb packages.
    When i go to run the gnuraadio with th comnand “gnradio-companion”, i get this error either in the program znd in the terminal window:

    Preferences file: /home/vincenzo/.gnuradio/grc.conf
    Block paths:

    Loading: “/home/vincenzo/HAM/gr-ax100-master/examples/ax100_rx_fm_demod.grc”
    >>> Error: Block key “ax100_adsb_kml” not found
    >>> Error: Block key “ax100_beacon_parser” not found
    >>> Error: Block key “ax100_gomx3_rs_decode” not found
    >>> Error: Block key “csp_check_crc” not found
    >>> Error: Block key “csp_print_header” not found
    >>> Error: Block key “synctags_fixedlen_tagger” not found
    >>> Done

    Showing: “/home/vincenzo/HAM/gr-ax100-master/examples/ax100_rx_fm_demod.grc”

    where am i still missing?
    i’ve also sent you an email but did not get a reply yet.
    Enzo -IK8OZV

  4. Hello Daniel,
    thank you for your ax100 GNURadio fork.
    Testing ax100_rx_fm_demod.grc (GRC 3.7.9 on Ubuntu 16.04, Wav file source: gomx.wav) i get this error: AttributeError: ‘module’ object has no attribute ‘gomx3_rs_decode’ (please see log details below).
    Same with GRC 3.7.10.
    I wonder if I should downgrade GNU Radio version (maybe something changed recently in api) or just pay a little more attention in dependencies and complier stuff 😉
    Any hint will be appreciated.

    Executing: /usr/bin/python -u /home/outis/GR_Modules/gr-ax100-master/examples/top_block.py
    Using Volk machine: avx_64_mmx_orc
    Traceback (most recent call last):
    File “/home/outis/GR_Modules/gr-ax100-master/examples/top_block.py”, line 196, in
    File “/home/outis/GR_Modules/gr-ax100-master/examples/top_block.py”, line 184, in main
    tb = top_block_cls()
    File “/home/outis/GR_Modules/gr-ax100-master/examples/top_block.py”, line 132, in __init__
    self.ax100_gomx3_rs_decode_0 = ax100.gomx3_rs_decode(True)
    AttributeError: ‘module’ object has no attribute ‘gomx3_rs_decode’

    1. Hi Gianfranco,

      This looks like a swig problem. You can try just with python2.7 to debug.

      $ python2.7
      Python 2.7.10 (default, Nov 19 2015, 10:01:32)
      [GCC 4.8.5] on linux2
      Type “help”, “copyright”, “credits” or “license” for more information.
      >>> import ax100
      >>> ax100.gomx3_rs_decode

      If you can’t get ax100.gomx3_rs_decode in python, then there is some problem with installation. Sometimes, running “ldconfig” helps. Other times, it is some weird problem with swig that I’ve been unable to trace.

      1. Hi Daniel,
        thank you for your help!
        I’m afraid it is an installation problem. Let’s hope it isn’t a swig weird behaviour.
        gomx3_rs_decode is missing from python modules, but not from GRC modules list.
        I’ll let you know if I find a solution.

        Help on package ax100:
        This is the GNU Radio AX100 module. Place your Python package
        description here (python/__init__.py).

        >>> ax100.beacon_parser

        >>> ax100.gomx3_rs_decode
        Traceback (most recent call last):
        File “”, line 1, in
        AttributeError: ‘module’ object has no attribute ‘gomx3_rs_decode’

        No *decode* module in /usr/local/lib/python2.7/dist-packages/ax100/ directory either

        1. Hello Daniel,
          compiled everything from source (i.e. whole GNURadio project) and AttributeError is gone 🙂
          Previous installation was on top of the Ubuntu official GNURadio package (apt-get install gnuradio).

          Now I’m able to play the example flow ax100_rx_fm_demod.grc with your sample wav input file.
          Enabling QT_GUI_Time_Sink block I can see the Amplitude graphic chart.

          Problem is that is the only output I can get.
          If I select “verbose=yes” in GOMX-3_RS_Decode, I get a sequence of “RS decode failed”.

          I slightly modified gomx3_rs_decode_impl.cc in order to have a more detailed output, and i can see that the value of “data” is always constant, while data[0] moves in the range 0-255
          E.g. “RS decode failed. data=2046796496 data[0]=117”
          The value of “data” is constant in each play, but is different among different play times.
          Apparently the values of data[0] seem to repeat in the same order in each play (last line is always data[0]=117, etc.).
          I wonder where is the rub now – is the wav file somehow incomplete or there is still some installation/configuration issue?

          Thank you

          1. My fault. I’ve checked everything again and it turns out that the sample .wav file that was linked in the README was from GOMX-1, not from GOMX-3.

            I’ve updated the README to correct this. The correct sample file is gomx3.wav.

            Also, make sure that the “multiply const” block in ax100_rx_fm_demod is -15 (this has to be adjusted depending on the polarity and volume of the demodulated FM audio).

            With these changes, you should get some decodes.

  5. Yes, thank you so much!
    Still lots of “RS decode failed.”, but also decoded data (please see below).
    If you say that it’s ok I’m more confident with my installation.

    Since dependencies are a critical issue, may I ask you which path did you follow to build your modules?
    I mean Ubuntu over Fedora or CentOS, Github or gnuradio package installation…
    Thank you again for your prompt answer.

    Beacon type 1 0:
    Timestamp: 2016-05-08 10:01:40
    Boost converter voltage: 11.615V, 11.628V, 7.709V
    Battery voltage: 15.191V
    Out current: 52mA, 68mA, 0mA, 68mA, 78mA, 8mA, 144mA
    In current: 144mA, 412mA, 205mA
    Sun current: 483mA
    System current: 142mA
    Temperature: -5ºC, -3ºC, -6ºC, -7ºC, -7ºC, -7ºC
    Battery mode: 3
    Timestamp: 2016-05-08 10:01:40
    Board temperature: -6.0ºC
    PA temperature: -5.3ºC
    Last RSSI: -95dB
    Last rferr: -739
    Background RSSI: -112dB
    Timestamp: 2016-05-08 10:01:40
    GSSb1 current: 0mA
    GSSb2 current: 4mA
    Flash current: 0mA
    Temperature A: -7.2ºC
    Temperature B: -7.1ºC
    Timestamp: 2016-05-08 10:01:40
    GSSb1 current: 6mA
    GSSb2 current: 5mA
    Flash current: 1mA
    PWM current: 3mA
    GPS current: 13mA
    WDE current: 179mA
    Temperature A: -7.7ºC
    Temperature B: -7.4ºC
    Timestamp: 2016-05-08 10:01:40
    5V board current: 0mA
    3.3V board current: 22mA
    3.3V SD current: 0mA
    1.2V current: 7mA
    2.5V current: 0mA
    3.3V FPGA current: 0mA
    3.3V ADC current: 4mA
    Last airplane:
    ICAO 24 bit address: 0x0
    Latitude: 0.0
    Longitude: 0.0
    Altitude: 0ft
    Time: 1970-01-01 00:00:00

    1. The RS decode failures are normal. If you set a high threshold in the Correlate Access Code block (6, for instance), it will trigger even on random noise. The RS decoder will then be unable to decode this “false packet” and catch the error. If you set a low threshold (1 or 2), it will be much harder to trigger on random noise, so almost everything that goes to the RS decoder will be a real packet. On the other hand, you’ll lose the chance to decode packets with several bit errors in the preamble.

Leave a comment

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.