I like planes. I like radios, too. When I discovered that a USB dongle designed for receiving over-the-air television signals could also be used to receive ADS-B broadcasts from commercial aircraft, I knew I had to try it. I mean, it combines two of my hobbies, so not trying it was simply not an option.
I read everything I could find on the Internet in order to get a system up and running. All the information was scattered across various sources, though: websites, Yahoo Groups, mailing lists, emails… I downloaded files, apps, PDF manuals… It was a lot of reading and a lot of trial and error, but in the end I had a system up and running. So that you don’t have to go through all of the trouble that I did, I’ve decided to compile everything I learned into a single step-by-step post that you can follow to accomplish the same thing. By the end, you’ll be able to see on a virtual radar screen the aircraft that fly within range of your location, log that information in a database for reporting, and you’ll be able to share that data with others to further the hobby.
You’ll need a few things first, namely hardware and software.
- A RTLSDR USB dongle that uses the RTL2832U/R820T chipset. I found mine on eBay for $19, shipping included. I’ve read that not all dongles are the same and not all can receive on the required frequency, so read the descriptions carefully. This is what I ordered.
Only three pieces of software are required — the rest are all optional depending on what you want to achieve.
- RTL1090 is the software that decodes the ADS-B transmissions from the aircraft that are received by your dongle. You can download the latest build of RTL1090 from Yahoo Groups at http://tech.groups.yahoo.com/group/rtl1090_english/files/ (You’ll need to join the group first, but this is quick and easy.)
- In order for your dongle to work with RTL1090, you’ll need the latest Zadig drivers from SourceForge. There are two versions of Zadig — one for Windows Vista and Windows 7, and a second version for Windows XP. Make sure you grab the right version from the site.
- Lastly you’ll need some DLL (Dynamic Link Library) files that you can get here.
Now that you have the three required pieces of hardware, you’ll need to download at least one piece of optional software in order to see the results of of the decoded data.
- PlanePlotter is a virtual radar application that plots the location of aircraft. It can also share this data with other PlanePlotter users, or it can upload the data to a web service like flightradar24.com, which aggregates data from users worldwide and plots it all on a global map.
- ADSBScope is similar to PlanePlotter but has a limited feature set. I like its radar display better than PlanePlotter’s, but that’s just my preference.
- Virtual Radar Server (VRS) is a simple but very powerful piece of software that plots aircraft on a map that you can view with any web browser, on your local network or over the Internet. It also can rebroadcast the data feed in three other formats so you can piggyback other applications (like PlanePlotter or ADSBScope) on it. That may sound a bit confusing but it’ll make more sense later when we get into the step-by-step stuff. If you download VRS then I suggest you also download the Database Writer plug-in for it.
- FlightRadar24’s feeder software can be used to share your data with the world on their website. Using this software to share rather than PlanePlotter gives you access to a premium membership at flightradar24.com.
- Kinetic’s BaseStation software is very optional. I downloaded the CDROM version. BaseStation is what Kinetic uses to map aircraft fed from its own hardware, which costs hundreds of dollars. While we are aiming to do the same thing using a cheap USB dongle, there is no doubt that a commercial receiver like the SBS, Mode-S Beast or AirNav RadarBox would yield better results. I don’t run the actual BaseStation software because I can’t get it to recognize the feed from my dongle (though others say this is possible using even more software), but I do use the utilities that come with it to access and edit the database of aircraft and flights that are logged by the other applications I use.
- SBS Resources is also very optional and — in my opinion — very unstable and confusing. Until you’re really comfortable with using all the other apps you’ve downloaded, I’d put SBS Resources to one side.
Other Things You Need to Know
As mentioned, there are numerous ADS-B receivers available on the market. As you might expect, each of these receivers translates the ADS-B data into a different format than the others, so they aren’t compatible with each other. The PlanePlotter software is able to understand all of these formats. Virtual Radar Server understands some of them, and ADSBScope understands one. It doesn’t matter which application you choose to use to map the data on a virtual radar, all of them are capable of translating the feed from RTL1090. (ADSBScope requires an additional parameter in RTL1090’s startup, but we’ll discuss that later.)
Installation and Setup of Required Software and Hardware
Once you have obtained a dongle, you’ll need to have RTL1090, the DLL files, and the Zadig drivers handy. Don’t plug your dongle in yet! We have some setup to do first.
- Unzip rtl1090-latest-build. We need somewhere to place the application, so let’s create a folder on your hard drive. I recommend creating a folder called RTL1090 on your C Drive. I do not recommend putting it in C:\Program Files, however, as this gave me problems later on. Once your folder is created, copy rtl1090.exe to C:\RTL1090.
- Unzip RelWithDebInfo. This should give you a folder called rtl-sdr-release. Go into that folder, then into x32 and copy the following files to the same folder where you installed RTL1090:
- Plug your RTL2832U/R820T dongle into an available USB port in your computer. If Windows starts to install drivers for it, try to cancel it. Don’t panic if you can’t cancel it. We’ll simply replace those drivers in the next step.
- Uncompress the Zadig drivers you downloaded and run Zadig.exe. In the drop-down menu select Bulk-In Interface 0. (If that isn’t available then go to the Options menu and select List All Devices. Then try again.) Don’t change anything else; just click Replace Drivers.
- Run RTL1090. Click the options for RTLAGC and Tuner AGC, then click START. If you did everything correctly up to this point, RTL1090 should start streaming raw data in hex format in its window.
Installation and Setup of Optional Software
RTL1090 broadcasts the raw data on port 31001, so any software you install to read the data has to connect to this port. I’m going to walk you through my setup, which uses Virtual Radar Server AND PlanePlotter AND ADSBScope. All of this is running on one PC, by the way, namely a Dell Latitude D610 laptop running Windows 7.
Virtual Radar Server (VRS)
Installation of VRS is pretty simple. Just download and run VirtualRadarSetup.exe. Also download and install DatabaseWriterPluginSetup.exe. This is a plug-in for VRS that creates and populates a database of aircraft and flights for use in the virtual radar display.
- Run VRS and select Tools > Plugins… A window opens showing the Database Writer.
- Click Options. In the field for Database filename enter the following: C:\Kinetic\BaseStation\BaseStation.sqb (note the use of both upper and lowercase).
- Click Create Database.
- Check the box beside Enabled to activate the plug-in, then click OK to close the window.
- Click Close to close the Plugins window.
- Now select Tools > Options. Each option is numbered (1.1, 1.2, 1.3, etc).
- Set 1.1 Data source to AVR or Beast Raw Feed.
- Set 1.2 Connection type to Network.
- Set 2.1 Address to 127.0.0.1
- Set 2.2 Port to 31001 (this is the port on which RTL1090 broadcasts the raw data)
- Set 4.1 database filename to C:\Kinetic\BaseStation\BaseStation.sqb, which is the database you created in the Database Writer plug-in.
- Set 4.2 Flags folder to C:\Kinetic\BaseStation\OperatorFlags (you may have to create this folder)
- Set 4.3 Silhouettes folder to C:\Kinetic\BaseStation\OperatorFlags (yes, the same folder as above)
Still in the Options window, you’re now going to tell VRS where you are in the world so that it can calculate distances correctly.
- On the left side of the Options window, click Raw Feed Decoding
- Set 1.1 Receiver location to the latitude and longitude of your location. Give this location a name. If you don’t know your location in lat and long format, you can find it here. Simply enter your street address, city, state/province and country, select Google, then click Geocode It. you’ll get lat and long numbers in the format xx.xxxxxx. Use these numbers in VRS. (Note, if you’re south of the equator or west of the prime meridian, your numbers will start with a – (e.g. 43.55555, -79.33333). Write these numbers down, as well, because you’ll need them again later.
The next two sets of Options in VRS are for specifying parameters related to the built-in web server. You can force users to login, change the port number the server runs on, specify an initial latitude and longitude to be displayed in the map, the type of map to display, and change measurement units. How you configure these is up to you and has no impact on the setup of PlanePlotter or ADSBScope later on. For now, you can skip over Web Server and Web Site and jump straight to the next set of Options.
- On the left side of the Options window, click General
- We’re interested here in setting up 3.1 Rebroadcast Servers. Click the … button in the field to bring up the Rebroadcast Servers setup dialog. We’re going to setup three servers. For each one, first click the New button.
- Name: Passthrough. Format: Pass-through. Port: 33001. Enabled: On.
- Name: BaseStation. Format: BaseStation. Port: 33002. Enabled: On.
- Name: AVR. Format: AVR. port: 33003. Enabled: On.
- Once all three are configured and enabled, click OK.
- Click OK again to close the VRS Options window.
If you’ve got everything setup correctly, the Connection status in VRS should now say Connected. If not, try selecting Tools > Reconnect to Data Feed. If you are connected, you’ll notice a blue http link in the middle of the VRS window. Click it to open the VRS map in your web browser. You should see nearby aircraft superimposed on the map.
You might think you can connect PlanePlotter directly to the same port that VRS connects to, but RTL1090 doesn’t seem to like that too much. The last connection forces all previous ones to disconnect, so only one app can listen to RTL1090 at a time. Because VRS is rebroadcasting the feed from RTL1090, we can connect PlanePlotter to one of the rebroadcasts instead.
Start by installing PlanePlotter by running the setup program you downloaded. That’s the easy part. Once you run PlanePlotter, you’ll need to configure a few things to get it listening to the rebroadcast from VRS.
- Go to Options > Home location > Home location setup and enter your latitude and longitude. Note that unlike VRS, you can use W and S instead of a – to specify co-ordinates west of the prime meridian or south of the equator (e.g. N43.55555, W79.33333)
- Next go to Options > Mode-S receiver > Beast receiver > Setup TCP/IP client. Here we will enter the ip and port number of the Passthrough feed we set up in VRS, so 127.0.0.1:33001
- Finally go to Options > I/O settings. Under Input data, make sure Mode-S/ADS-B is turned on, and in the list of receivers scroll down and select Beast receiver TCP.
- In order to view the aircraft, click Process > Start. If all went well, planes should start appearing in PlanePlotter.
ADSBSCope doesn’t need any installation. All you have to do is unzip the file you downloaded and then move the uncompressed folder to the root of your hard drive. Once done, you should have a folder called C:\adsb_all. ADSBScope has two versions: one displays a maximum of 256 aircraft, so if you’re PC is underpowered you may want to use this; the other displays thousands of aircraft but uses more CPU horsepower. Whichever one you want to run can be found by going to C:\adsb_all\pc_software\adsbscope\XX where XX is the current version number (25 as of this writing). In there you’ll see two executable files: run the appropriate one.
Once ADSBScope is running, you’ll once again need to do some configuration to get things working correctly.
- Start by going to Other > Network > Network setting. We want to configure the RAW-data-client port and url to match the AVR rebroadcast from VRS, so 33003 and 127.0.0.1. Click Close when done.
- Next you’ll want to move the map, zoom in (or out) and relocate the green crosshairs until they are roughly pointing to your part of the world. You’ll see the latitude of the crosshairs on the left side of the screen and the longitude at the top. Move the map around until the lat and long match yours. If you’re having trouble and need some reference points, go to the Load Maps menu and select your part of the world.
- Once the map is in place, go to Other > Set Receiver location to have ADSBScope remember your location for the future.
- To activate the radar display, go to Other > Network and select RAW-data Client active.
If you want to share the data from your dongle with the world, install and run the fr24feed application. Click the Sign Up button and enter all the relevant information. For port number, you’ll want to enter the post of the BaseStation rebroadcast from VRS, which is 33002. It’s very difficult to change the port number if you enter it wrong, so make sure it’s right before you finish signing up!
FlightRadar24 will assign your virtual radar station a name (mine is CYKZ1) based on the airport closest to your latitude and longitude. It may take a while for your feed to fully register with FR24’s servers and for your premium account to become active — I had to wait overnight for this to happen — so be patient.
And there you have it. You now have a cheap USB dongle feeding ADS-B data to three applications and one website. The steps I’ve outlined above are the basics to get this working. You don’t have to use Virtual Radar Server; instead you can connect PlanePlotter, ADSBScope or FR24 directly to RTL1090 if you want to limit your PC to running just the bare number of apps for this purpose. There are also additional features in PlanePlotter for sharing your data with other PlanePlotter users or with FlightRadar24 — or both. You can also configure RTL1090 to output its raw data in a different format, or to use multilateration. That’s a big word that I have to admit I don’t fully understand yet. I’ll cover the more advanced options in other blog posts.
For now, enjoy watching your virtual radar screen! My range, by the way, has topped 200 nautical miles.