Decoding the QO-100 beacon with gr-satellites

On February 14, the Amateur transponders on Es’hail 2 (which now has the AMSAT designation QO-100) were inaugurated. Since then, two beacons are being transmitted by the groundstation in Doha (Qatar) through the narrowband transponder. These beacons mark the edges of the transponder.

The lower beacon is CW, while the upper beacon is a 400baud BPSK beacon that uses the same format as the uncoded beacon of AO-40. I have already talked about the AO-40 uncoded beacon in an older post, including the technical details.

Based on my AO-40 decoder in gr-satellites, I have made a decoder for the QO-100 beacon. Patrick Dohmen DL4PD has been kind enough to write some instructions about how to use the old ao40_uncoded decoder with the BATC WebSDR. I recommend that you use the new qo100 decoder. You just have substitute ao40_uncoded by qo100 in Patrick’s instructions

As additional hints, I can say that for the best decoding, the beacon must be centred at 1.5kHz into the SSB passband. The centre of the signal is easy to spot because there is a null at the centre, due to the use of Manchester encoding. Frequency stability is somewhat important with this decoder, so if your LNB drifts too much you may run into problems.

The SNR of the beacon over the transponder noise floor is rather high, so you should achieve a clean decoding unless you are using a very small station and you have the transponder noise way below your receiver noise floor.

The following data is being currently transmitted on the beacon (the timestamps and packet numbers are added by gr-satellites):

2019-02-19 21:56:27
Packet number 68
UPT: 3d 0h 29m CMD: 91 LEI_REQ: 0 LEI_ACT: 0
TEMP: 56 C VOLTAGES: 1.0 1.8 1.0 1.0 1.8 1.5 1.3 0.0 0.5 Volts
TFL: 0 TFE: 0 TFH: 0 HFF: 0 HTH: 0 HR: 0

2019-02-19 21:56:53
Packet number 69
EXPERIMENTAL MODE. Measurements and tests being conducted,
experimental transponder use OK, but expect ground station tests
Watch this space and for further announcements


  1. Daniel,
    maybe I didnot read carefully your blog or the Patrick’s, DL4PD instruction to use the decoder for NB beacon on Eshail 2.
    Patric propose to disassemble the code based on the grc:
    grcc -d . ../apps/ao40_uncoded.grc
    and use this to process the websdr’s sound stream:

    You propose to subtstitute this last one with a new one, which is ? “You just have substitute ao40_uncoded by qo100 in Patrick’s instructions” In the new version of gr-satellites I dont find this program, or a new qo100.grc. Instead of this there is in ../python/, but it seems, not the decoder itself.
    Or I misunderstand something?

  2. Daniel,
    thank you for your quick replay and quick “action”.
    A have another try, with my another mistake:
    I downloaded the newest version, start to compile it, and try to run.
    But on GIU the the QO100 Telemetry Print block apperad in red. Previously was explain of this behaviour, that you use an old gnuradio verzion. In my config not this is the case, the installed version is, not old. Finaly I found, after the compilation (make) I forget to install the new version (make install) and use the ldconfig command. After this running the gui version without any problem.
    First the auduio_streamer frontend block, after the qo100 decoder block. But I dont see any decoded data from the eshail websdr.
    Only sometimes such messages:

    gr::log :DEBUG: correlate_access_code_tag_bb1 – writing tag at sample 42887

    Maybe are there the next problem with the choosed filter or frequency center? Seems, I canot attach image file here. I put it on a google page here my setup/trimm on the websdr:

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.