Friday, March 8, 2024

RTL-SDR: Home-made Air Traffic Control

If you've read my previous article, "Flight Tracking: I Guess I'm a Plane Guy Now...", you're well aware of my interest in air traffic control (ATC) and flight tracking. If you look to the right of the Cubicalruins homepage, you'll even see my embedded flight tracking window from FlightRadar24.com, my favorite flight tracking website. But, radio -and specifically SDR- allow me to take my hobby a step further. Rather than depending on web-based flight tracking websites, I'm now able to run my own air traffic control system from home. 

A screenshot of RTL1090 and Virtual Radar Server on my PC

Anyone involved in aviation or flight-tracking will already know this, but air traffic controllers and airport towers used to use radar to identify incoming and outgoing planes. But now they primarily use unique transponder (radio) signals from each individual aircraft to identify and track all flights. The most commonly used transponder system is the Automatic Dependent Surveillance Broadcast (ADS-B) system which broadcasts on 1090 MHz, and some smaller aircraft use a Universal Access Transceiver (UAT) system, which broadcasts on 978 MHz. While radar is still used as a secondary tracking system by both military and civilian air controllers, the ADS-B and UAT systems now allow a hobbyist like myself to pull actual, real-time flight data from the planes, helicopters, blimps and sometimes weather balloons directly to our PCs. Using SDR, we can see everything the FAA air traffic controller sees.       

In my previous article I discussed setting up and testing my RTL-SDR dongle and antenna to pull AM and FM voice radio into my PC. This was a pretty simple initial test. But, getting ATC signals into the PC, decoding them, and plotting the data onto a viewable air-traffic map was considerably more difficult. In the end I was able to run the RTL-SDR with two different ATC/plane-tracking applications, PlanePlotter and Virtual Radar Server. Both provided challenges, but after multiple troubleshooting attempts I got both systems up and running. 

Using Carl Laufer's "The Hobbyists Guide to the RTL-SDR," I started my my home-made air-traffic control project. Page 67 provides a brief intro to plane tracking on the RTL-SDR; page 69 describes how to download and install Dump1090, a primary decoder of ADS-B data from 1090 MHz; page 72 provides instructions on installing RTL1090, another decoder; and page 75 describes how to install and use PlanePlotter, an application for viewing the planes on a map. While the instructions were very useful, I did run into a few hitches along the way, and I'm not sure if these were due to my Windows 11 operating system, outdated versions of the software, or my own lack of knowledge on PC's -normally I use a MAC. However, I'll try to provide some helpful step-by-step guidance at the end of this article for SDR enthusiasts hoping to run Planeplotter or Virtual Radar server.

The F-14 "Tomcat" on display at the MAPS Air Museum in North Canton, Ohio

My first hitch was that the suggested decoding software, Dump1090, simply did not work on my PC. My command console just did not recognize the command "--net-ro-port 30002 --net-beast" when added to the dump1090.bat file necessary to run the decoder. I'm still unsure why. Thankfully, Laufer's book had an alternate suggestion for a decoder, RTL1090, which I downloaded from Jetvision at https://rtl1090.com/. The funny thing is RTL1090 didn't work either until certain dll files such as rtlstr.dll were also installed; and guess which zip file had exactly the dll files I needed? The dump1090 zip! So, regardless of which decoder you use, I'd recommend downloading both RTL1090 and Dump1090, the IMU version and source code, and extract them into the same folder. That way you'll know you have all the dll files needed to run each application. Ultimately, I was able to successfully install and run RTL1090. 

My next challenge was installing a program to visualize the data from RTL1090. I downloaded Planeplotter at https://www.coaa.co.uk/planeplotter.htm as well as Virtual Radar Server at https://www.virtualradarserver.co.uk/. Both were easy to download and install. But, I should mention, PlanePlotter requires a one-time 25 Euro (roughly $30 USD) license fee and software registration if you plan to use it beyond the two-week free trial period. The next step is to set up your new visualization apps to accept the ADS-B data from your antenna and decoder. You must set up your decoder (RTL1090 or Dump1090) as a TCP/IP client in the options menus, using port 30002 for Dump1090, or 31001 for RTL1090. Once the correct port is saved in the options, and you begin running the application, you should see planes flying in your app! 

My home ATC set-up with RTL-SDR dongle and antenna

After all this, the results were well worth the effort. I've always been fascinated by air travel, and the complexities of keeping all those thousands of aircraft above our head safely moving. The ADS-B signals on 1090 MHz is a big reason why this is possible. Plus, I live very close to the Kent State University Airport home to the FedEx Aeronautics and Academic Center; there are always maybe 1 to 6 little KSU aircraft buzzing over our heads at any given moment pinging their data to 1090Mhz. So, there is always something to watch. Additionally, not only am I using a web-based app to see aircraft, but now I'm an actual contributor to these sites, providing my own flight data to help others see planes over my reception area.      

I've done my best to provide quick step-by-step tutorials on each set-up below. 

RTL1090

1.) Go to RTL1090.com and download the IMU version of the software.

2.) Go to https://github.com/MalcolmRobb/dump1090 and download the zip file for the application. Extract all files into the same single folder as the RTL1090 IMU. 

3.) Install and run RTL1090. If any dll files, such as rtlsdr.dll, are missing, search the directory at the url in the previous step for those files and add to your single extracted file for dump and rtl1090. 

4.) Once installed, open RTL1090 and click "start," if your RTL-SDR is plugged in and connected to an antenna you should see numbers scrolling in the List tab. This is the raw ADS-B data coming from 1090Mhz. You're all set!  

5.) [Optional] Download and extract all files for the RTL1090 "Scope" version from RTL1090.com, and run this version if you'd like to see the Scope and Plug-in tabs in the newest "beta" version of the application. 

NOTE: I was unable to connect RTL1090's IMU or standard versions with Planeplotter. For some reason, the RTL1090 "Scope" version worked. Plus the Scope version has it's own small visual aid with planes and headings as well.

RTL1090 + Virtual Radar Server 

1.) Follow steps one through five above. 

2.) Download Virtual Radar Server at https://www.virtualradarserver.co.uk/Download.aspx

3.) Open Virtual Radar Server, then go to Tools > Options. Click Receivers, and click the plus (+) icon to add a receiver. Name the new receiver RTL-SDR (or whatever you choose). 

4.) Make the data source "AVR or Beast Raw Feed."

5.) Keep the IP address 127.0.0.1. Make the Port: 31001 for RTL-SDR. (It should be 31001 even if your RTL1090 window says 31011.)

6.) Click start on RTL1090 and have it running in a different window. Then click the http://127.0.0.1:8081/VirtualRadar link in the middle of the Virtual Radar Server window. In the browser, you should see planes within receiving range of your antenna. You're all set!

7.) [OPTIONAL] In Tools > Options you can click on Receiver Location and enter your coordinates to save your current location. The next time you open your browser map, it will automatically center on your location. 

RTL1090 + Planeplotter

1.) Follow steps one through five under the RTL1090 instructions above. 

2.) Download and install Planeplotter at https://www.coaa.co.uk/planeplotter.htm, and open the application. 

3.) [OPTIONAL] When prompted, you can register your download and pay for a lifetime license through PlanePlotter's payment service. Once the payment is made, you'll get an email at the registered email address with the registration confirmation code which is good forever. Otherwise, skip this step and simply use the free trail. 

4.) [OPTIONAL] When prompted, enter your current coordinates to set your location on the map.

5.)  In PlanePlotter, go to Options > Mode-S Receiver > AVR Receiver > TCP/IP Client. Make the address and port 127:0.0.1:31001. (Again, even if your RTL1090 window shows the port as 31011). 

6.) Go to Options > I/O Settings and check MODE-S/ADS-B. Then, click AVR Receiver TCP and OK. This will set your RTL-SDR up as a TCP/IP client. 

7.) In the main window, click the green circle and make sure RTL1090 is running in another window. You should see planes on your map. You're all set! 

8.) [OPTIONAL] Obtain a MapQuest API key at https://developer.mapquest.com/documentation/ by clicking "Grab the key." You may need to create an account with developer.mapquest, but the API key is free. 

If you enter the Mapquest API key in Options > Charts under the Mapquest option, and save, you can download a more detailed map to view beneath your planes by holding the right Shift key and clicking the globe or "MAP" buttons in the toolbar of the main PlanePlotter window. The stock map is very, very, basic. 

NOTE: For some reason, I could only get the Mapquest chart to work by holding the Shift key and then clicking the MAP button. 

"The Hobbyist's Guide to the RTL-SDR: Really Cheap Software Defined Radio." Fourth Edition. (2024), Carl Laufer.

No comments:

Post a Comment

Popular Items