GNU Radio Companion is launched from the terminal with the command
gnuradio-companion.Receive aircraft
Open the example flowgraph
In GNU Radio Companion, go to File → Open and navigate to:This flowgraph contains a pre-configured receive chain: an SDR source block, magnitude operation, and the three gr-adsb blocks (Framer → Demod → Decoder) connected in sequence.
Configure the SDR source block
Double-click the SDR source block and set it to match your hardware.Common SDR source device strings:
| Hardware | Device string |
|---|---|
| RTL-SDR | rtl=0 |
| HackRF | hackrf=0 |
| USRP | uhd |
Set the center frequency to 1090 MHz
In the SDR source block (or the flowgraph variables), set the center frequency to
1090e6 Hz. ADS-B transmissions are standardized on 1090 MHz worldwide.Set the sample rate
Set the sample rate to
2e6 (2 Msps) or another integer multiple of 2 Msps such as 4e6 or 6e6. The Framer and Demod blocks require the sample rate to be an integer multiple of 2 Msps.Reading the output
Brief mode
The Brief print level (the default) renders a live terminal table with one row per tracked aircraft, updated as new messages arrive:Verbose mode
To see every decoded field for every message, open the ADS-B Decoder block parameters and change Print Level toVerbose. Each message produces a block like this:
View aircraft on a map
gr-adsb includes a Flask-based webserver that displays decoded aircraft positions on Google Maps in real time.Enable the ZeroMQ block
In the
adsb_rx.grc flowgraph, make sure the ZeroMQ sink block is enabled. The webserver receives data through this ZMQ socket.Start the webserver
Open a new terminal and run:Or equivalently:The webserver can be started before or after the flowgraph is running.
The webserver requires the optional Python packages
zmq, flask, flask-socketio, gevent, and gevent-websocket. See the installation guide for the install commands.