Skip to main content

Prerequisites

Before building gr-adsb you need:
  • GNU Radio — version 3.8, 3.9, or 3.10. PyBOMBS is the recommended way to install GNU Radio and manage OOT modules.
  • Python 3 — required for the block implementations and the optional webserver.
  • colorama — Python package used by the Decoder block for colored terminal output.
  • CMake and a C++ compiler — required for the source build.

Clone the repository

gr-adsb uses a separate branch for each supported GNU Radio version. Clone the branch that matches your installation:
git clone -b maint-3.10 https://github.com/mhostetter/gr-adsb

Build and install

1

Install the Python dependency

Install colorama, which the ADS-B Decoder block requires for colored output:
pip3 install --user colorama
2

Create the build directory

Navigate into the cloned repository and create a build directory:
cd gr-adsb/
mkdir build
cd build/
3

Run CMake

Configure the build with CMake:
cmake ../
If you installed GNU Radio in a non-standard prefix (for example with PyBOMBS), pass the install prefix to CMake so the module is installed in the right location:
cmake -DCMAKE_INSTALL_PREFIX=<path_to_install> ../
4

Compile

Build the module:
make
5

Install

Install the compiled module to the system:
sudo make install
sudo ldconfig
The sample rate you set in the flowgraph must be an integer multiple of 2 Msps (e.g. 2, 4, or 6 Msps). Non-integer multiples will cause the Framer and Demod blocks to raise an assertion error at startup.

Webserver dependencies (optional)

gr-adsb includes a built-in webserver that streams decoded aircraft positions to a Google Maps page at localhost:5000. If you plan to use it, install these additional Python packages:
pip3 install --user zmq
pip3 install --user flask
pip3 install --user flask-socketio
pip3 install --user gevent
pip3 install --user gevent-websocket
The webserver requires the ZeroMQ block to be enabled in the adsb_rx.grc flowgraph.

Verify the installation

After installation, open GNU Radio Companion and check that the [ADS-B] block category appears in the block browser. It should contain three blocks:
  • ADS-B Framer
  • ADS-B Demod
  • ADS-B Decoder
You can also verify the Python module is importable from the command line:
python3 -c "import gnuradio.adsb as adsb; print(dir(adsb))"
If the import succeeds without errors, gr-adsb is installed correctly.

Build docs developers (and LLMs) love