- install gnu radio using conda
- when not needed
- install opendis
- pull the Ettus Research repo and configure the Linux rules using the following steps
- clone, build, and run
- ensure the UHD device is connected to the source node
- make sure the device fpga images are available e.g.
- build the adsb_rx.grc graph using grcc
- and run the compiled flowgraph or
- build and run with the gnuradio-companion
- References
In this project, we use several techniques and concepts to simulate software-defined transmitter/receiver systems through an aviation rf receiver use case. This version of the project plays a passive role. The SDR component is an RF receiver node to collect and transform broadcast messages into DIS messages to produce a 'home aviation spotter' awareness system.
The system is composed of a few parts: A software-defined radio setup [1] with a compiled FPGA image and PDU transmitter source code [2] to receive ADS-B data [3] A conversion model for transforming message traffic in the DIS PDU Entity State messages A watch system to visualize DIS broadcasts and alerts when variables are within tolerance for conditions of interest.
This project's video walkthrough[4] and captured PCAP data is available [5].
install gnu radio using conda
'conda config --env --add channels conda-forge' 'conda config --env --set channel_priority strict' 'conda create --name rf_pdu python=3.8' 'conda activate rf_pdu' 'conda install --yes gnuradio=3.8.1'
when not needed
conda env remove --name rf_pdu
install opendis
'git clone https://github.com/open-dis/open-dis-python.git' 'cd open-dis-python' 'pip install .'
pull the Ettus Research repo and configure the Linux rules using the following steps
'git clone https://github.com/EttusResearch/uhd.git' 'cd uhd/host/utils' 'sudo cp uhd-usrp.rules /etc/udev/rules.d/.' 'sudo udevadm control --reload-rules' 'sudo udevadm trigger'
clone, build, and run
'git clone https://github.com/ricklentz/gr-adsb' 'mkdir build' 'cmake -DCMAKE_INSTALL_PREFIX=~/anaconda3/envs/rf_pdu ../' 'make' 'sudo make install' 'cd ..' 'cd examples'
ensure the UHD device is connected to the source node
'sudo uhd_find_devices'
make sure the device fpga images are available e.g.
'python ~/anaconda3/envs/rf_pdu/lib/uhd/utils/uhd_images_downloader.py'
build the adsb_rx.grc graph using grcc
'cd ~/Github/gr-adsb/examples/' 'grcc adsb_rx.py'
and run the compiled flowgraph or
'python adsb_rx.py'
build and run with the gnuradio-companion
'gnuradio-companion adsb_rx.grc'
References
1 Ettus Research SDR FPGAs 2 Project Source Code 3 ADSB Nextgen Program 4 Project Overview and Technical Walkthrough 5 DIS7 Entity State PCAP Data Collection