A random collection of objects and subject I am interested in… or as my wife

would say obsessed with !!

Amateur Radio

Raspberry Pi ADS-B

Index Receivers Transceivers My Accessories My Essentials Useful Links Whats next Raspberry Pi ADS-B APRS Antenna projects Digital Modes Training history UK repeater info Space weather About me Logbook

ADS-B Decode

I wanted to have a go at using a DTV dongle to decode ADS-B signals for virtual radar, it appears that this is quite easily done so I bought a DVB-T HDTV Realtek RTL2832U Elonics E4000 50MHz - 2200MHz SDR GNU FM from ebay for the project.

I am running my Funcube Pro dongle to monitor the air band frequencies at the same time, it’s pity the Funcube bandwidth is only 48Khz not sufficient for data and is not only insufficient but it also has a gap tuning range between around 1060Mhz to 1140Mhz.

It Lives !!

I managed to get the DVB-T dongle working as an ADS-B receiver and I am starting to get local plots of air traffic by using ADSB# and ADSBScope software, it was not too difficult to set up and I am really pleased with the results. See the screen grab below, this was taken on a very snowy day with a lot of flights cancelled so I cant wait until things get back to normal.

The antenna I use is my discone which is located in the attic, it is fed to both the DVB-T dongle & my Funcube FDC through a Jim M-75 pre-amp via a BNC T connector, I just ensure the Bias T is off the Funcube settings. This way I can monitor ATC as well as having virtual radar.


Raspberry Pi SDR

I am pleased with the windows version of the software but I have had a Raspberry Pi sitting on my desk for months and I needed to find a use in my station for it, well it just had to be an RTL_ADSB Server.

After doing a bit of research on Peter 2E0SQL’s website, I decided to take the plunge. I Started off with a clean install of the 2012-12-16-wheezy-raspbian image.

Before I installed the RTL drivers, I installed the following dependencies by typing the following commands:

sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install libusb-1.0-0.dev
sudo apt-get install build-essential

I use a terminal program called putty to run a telnet session which gives you the command prompt as I don’t use a monitor & keyboard attached to the Raspberry Pi.

Then I installed the RTL drivers using the following commands:

git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../
sudo make install
sudo ldconfig

As I am using tightvncserver I ran startx and used the graphical user interface to make the next stage easier, I located the RTL directory using the file manger, this is where the drivers where downloaded and copied the rules file into the etc/udev/rules.d directory, you must do this for it to work.

Next I plugged in the RTL-2832U stick and issued the
rtl_test -t command to make sure the Raspberry Pi was seeing the stick. When the Raspberry detects the device I then started the rtl server [rtl_tcp -a] plus the ip address of your Raspberry Pi as example rtl_tcp -a

The confusing part of this is that the rtl_tcp -a command sends data out on port 1234 by default, to make this useful to adsbSCOPE I had to run the netcat pipe command rtl_adsb |netcat -lp 30003 to send the ADS-B data to the network for the client PC running adsbSCOPE to detect it.

On my client machine I configured the adsbSCOPE software to listen to the IP address example ( & port (30003).

I find that I need the Putty telnet client running in the background to keep the session open, but when I start the adsbSCOPE software starts decoding the data instantly.

See the screen shot below for details of how it looks when running.