[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Modifying gr-adsb to Demodulate Uplink Format Messages

From: Adam Gorski
Subject: Modifying gr-adsb to Demodulate Uplink Format Messages
Date: Tue, 17 Nov 2020 00:12:21 +0000

Hello community,


I am currently working with the OOT module gr-adsb; as written, this module captures downlink format (DF) ADS-B messages. I am interested in modifying this OOT module to instead capture uplink format (UF) messages.


Within this module the framer block recognizes a message prefix and tags that message with an offset that tells the next block, the demodulator, which pieces of information to demodulate. DF messages require pulse position demodulation whereas UF messages require differential binary phase shift key demodulation. I’ve edited the framer to capture the UF prefix instead of the DF prefix, however I’m having trouble editing the demodulator. I’m currently pursuing two options:

  1. Edit the existing demodulator code, stripping the PPM code and replacing it with DBPSK code. I have found some DBPSK code from the deprecated DPSK block (link below). However, when I add this code into the ADSB demodulator I get ‘module not found’ errors for each of the gr.xxxx() functions. These functions are in the gr-digital folder, so I don’t understand why this OOT module cannot detect them.
  2. Use the existing deprecated DPSK demod block native to GRC to demod the output of the ADS-B framer. This is not working because the dpsk demod block demodulates everything coming out of the framer, ignoring the tags the framer has created. I’m thinking that perhaps I could trigger the dpsk demod block using the tags created by the framer, but I have no clue how to implement this.


Dpsk demod code: https://github.com/GREO/gnuradio-git/blob/master/gnuradio-core/src/python/gnuradio/blks2impl/dbpsk.py


If anyone is familiar with this OOT module, demodulation, or tagging in general I could use your help determining whether my thinking in tackling this problem is correct, whether the options I’m pursuing make sense, or if there are other options you’d recommend exploring. Any help is greatly appreciated! Please let me know if additional details are required.



Adam Gorski

reply via email to

[Prev in Thread] Current Thread [Next in Thread]