Skip to content
Snippets Groups Projects
Name Last commit Last update
..
README.md
mv3500_Project_Lentz.pdf

Final Course Project

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 overview and technical walkthrough videos are available here [4].

The captured ADSB Entity State PDU data is available here . The presentation slides are in mv3500_Project_Lentz.pdf and the technical details from the technical walkthrough video follow.

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.