In this post we look at how USB DVB-T hardware can be used with software-defined radio (SDR) to create a low cost aviation Mode S receiver.
Modern aircraft are fitted with “Mode S” transponders that can be interrogated by air traffic control radar in order to ascertain their position and heading. Hobbyist equipment for receiving these transmissions has been available for some time and typically costs hundreds of pounds. But it's now possible to re-purpose DVB-T hardware costing around £20 to create an SDR-based receiver.
The SDR is constructed using the GNU Radio framework and details of how to configure this and the DVB-T hardware used can be found in a previous post. With GNU Radio and rtl-sdr etc. configured all that's required is to set up the gr-air-modes application. This takes only a few minutes and involves cloning the source from GitHub, building and installing. With gr-air-modes set up the rtl_modes.py Python script can be run to provide a simple text output of decoded transmissions.
Google Earth integration
The gr-air-modes application also provides Google Earth support and this can be configured with the following steps:
Run “uhd_modes.py -d -K modes.kml”
In Google Earth select Add → Network Link, browse to the modes.kml file and set refresh to 5 seconds
Optional: edit /usr/local/bin/uhd_modes.py to set my_position
Flight simulation and network applications
Integration with the FlightGear flight simulator is also possible, with live traffic being inserted into the simulator via its multiplayer interface. And gr-air-modes can also store reports in an SQLite database, and serve data over the network in either the SBS-1 format or as raw UDP packets.
The gr-air-modes software serves as a compelling demonstration of the power of software-defined radio, and shows how it has become possible for custom hardware to be easily replaced by generic hardware costing a fraction of the price and by shifting complexity into the software domain.
Top image: detail from Google Earth showing two aircraft and their flight paths.Like this Leave a comment