Introducing gr-satellites

This post is to present my gr-satellites project. The goal of this project is to make a collection of GNUradio decoders for the telemetry of different satellites. The decoders support submitting telemetry in real time to the PE0SAT telemetry server. Another goal is that the decoders are as easy to use as possible, to try to make more people interested in receiving digital telemetry from satellites and collaborating in online telemetry submission.

The decoders can be used with the Gqrx SDR software, using its UDP audio streaming capabilities. This is the easiest way to use the decoders. It is also possible to use the GNUradio frontends in the companion project gr-frontends. These support several different SDR hardware, WAV and IQ recordings, and conventional receivers connected through a soundcard. They are design to be flexible and to allow its use in headless and automated receiving configurations.

The long-term goal of this project is to provide an alternative software chain to the UZ7HO soundmodem, AGW packet engine and DK3WN telemetry forwarder. The use of GNUradio makes these decoders more configurable and flexible and eases programming decoders for non-AX.25 satellites, which usually employ strong forward error correction.

Currently, the satellites supported by gr-satellites are 3CAT-2, AAUSAT-4 and GOMX-3. I plan to continue adding support for more satellites in the future.

10 Replies to “Introducing gr-satellites”

  1. It is a great development and the first tests are going great. There is some tweaking and tuning going on. If you want to test, please make sure that the parameter blocks are correct. If in doubt, send me an email so you can test on the TLM db development server. (Contact via the http://www.pe0sat.vgnet.nl website)

    Regards, Jan - PE0SAT

  2. I'm up for testing that Dani, Jan. I'll bring home my Linux laptop to give it a go.

    Been editing gr-kiss to add Horyu-4 to too as there's hamming everywhere. The frame starts with dd dd rather than the c0 / 7e formating, and ends with aa. Joy.

    Not heard of gr-frontends though. 73s Chris

    1. About Horyu-4: How weird. Does it transmit regular AX.25 apart from using different flags to mark the start and end of frame? Can you give more details? I guess the bit-stuffing that AX.25 uses doesn't make sense if you don't use 0x7e as a flag (the whole idea is that 6 consecutive 1's can't occur inside a frame). AX.25 is also peculiar in that it transmit each byte starting with the least significant bit. How much of this is true for Horyu-4?

      About gr-frontends, you have the info in the post body.

    1. Hi Gianfranco,
      I'm using GNUradio 3.7.10 here. I've also used 3.7.8 before without problems. I haven't tested in something as old as 3.6. It may or may not work.
      73,
      Dani.

  3. Hi Daniel,

    I am new to use the gr-satellite module which is great! I tried to fix some bugs by myself, but at the last step I still got some errors when I run the grc in the /apps directory as shown below:
    -----------------------------------------------
    yq@yq-LIFEBOOK-E751:~/gr-satellites/apps$ gnuradio-companion ca03.grc
    NameError("name 'BitsInteger' is not defined",)
    <<>>

    Block paths:
    /home/yq/.grc_gnuradio
    /usr/share/gnuradio/grc/blocks

    Loading: "/home/yq/gr-satellites/apps/ca03.grc"
    >>> Done
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)
    NameError("name 'BitsInteger' is not defined",)

    Generating: '/home/yq/gr-satellites/apps/ca03.py'

    Generating: '/home/yq/gr-satellites/apps/ca03.py'

    Executing: /usr/bin/python -u /home/yq/gr-satellites/apps/ca03.py

    Traceback (most recent call last):
    File "/home/yq/gr-satellites/apps/ca03.py", line 23, in
    from sync_to_pdu_packed import sync_to_pdu_packed # grc-generated hier_block
    File "/home/yq/.grc_gnuradio/sync_to_pdu_packed.py", line 15, in
    import satellites
    File "/usr/lib/python2.7/dist-packages/satellites/__init__.py", line 56, in
    from funcube_telemetry_parser import funcube_telemetry_parser
    File "/usr/lib/python2.7/dist-packages/satellites/funcube_telemetry_parser.py", line 25, in
    import funcube_telemetry
    File "/usr/lib/python2.7/dist-packages/satellites/funcube_telemetry.py", line 23, in
    SatID = Enum(BitsInteger(2),\
    NameError: name 'BitsInteger' is not defined

    >>> Done (return code 1)
    yq@yq-LIFEBOOK-E751:~/gr-satellites/apps$ uname -a
    Linux yq-LIFEBOOK-E751 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    --------------------------------------------
    Could you give me some hints to resolve the "NameError: name 'BitsInteger' is not defined" error? Thanks 😀

Leave a Reply

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