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.

Tuesday, March 5, 2024

RTL-SDR: Decoding Radio Signals on your PC

"They have the radio on computers now?" That was my first thought when I learned about Software Defined Radio (SDR) after I started studying for my HAM radio license exam. It was one of the more interesting tidbits I passed over while hitting the main question pool info such as antenna set-up, band plans, basic circuitry etc. But, it intrigued me. It was one area where HAM radio has taken a leap forward, providing inexpensive access to digital signal decoding to learners and hobbyists.

My PC showing SDR# software
Home SDR for hobbyists got a big boost in 2012 when Realtek launched the RTL-SDR dongle; it's a USB plug-in about as big as a "fun"-sized Halloween candy. One end plugs into your PC's USB port, and the other side has a coaxial connection that can be fixed to an antenna, or antenna system. Once the RTL-SDR is installed with all the drivers, and attached to an antenna, it will immediately begin feeding radio signals from the air to your PC. 

The big difference between SDR and most PC radio applications is that sound is not simply being streamed through your internet service provider, it's actually being picked up from the airwaves flying around you every second of everyday. You can un-plug your Wifi or data connection, and the RTL-SDR will still pick up those radio frequencies. It can even listen for, and decode, signals no normal PC or radio would ever get such as the amateur radio bands, nautical communications between boats and ships, and ADS-B and UAT transponder data from all aircraft both large and small. None of these signals are encrypted, and it's perfectly legal for hobbyists to listen in, provided they do not transmit on these frequencies in a way that could disrupt normal communications. 

The RTL-SDR dongle & antenna 

When I first unpacked my RTL-SDR and antenna set, which I ordered at RTL-SDR.com for roughly $60 USD including all components and shipping, I didn't quite know where to start. So, I also ordered The Hobbyist's Guide to The RTL-SDR by Carl Laufer as my starter guide. The book is a well-indexed set of step-by-step tutorials and trouble shooting techniques combined with general information about SDR and the various signals hobbyists can decode. Page nine discusses the initial installation of the RTL-SDR dongle, its drivers, plug-ins, and port numbers; page 13 provides a step-by-step tutorial on SDR# (or SDR sharp), a basic application for decoding, viewing and listening to signals received by the dongle. 

After a few read-through's, I was ready to test my new set-up. For my first test, I decided to get the daily weather. I tuned my SDR# app to 162.400 MHz, the frequency for NOAA Weather Radio for Akron and inland northeast Ohio, and it worked! I used my RTL-SDR to get weather (in possibly the most complex way possible). 

But, the test was a success. I could not only hear the weather report clearly, I could see all of the RF and modulation info-graphics necessary to locate and tune lots of different voice broadcasts and data transmissions. In the video above you can see the graph peaking at exactly 162.400 MHz, the NOAA station for Akron. The smaller peak just to the right is 162.550 MHz, the weather station for Cleveland and the Lake Erie shore. Both are in listening rage of my little antenna, but the higher peak is the closer signal. The digitally decoded graphics, and filtering options offered by RTL-SDR and SDR# are the perfect addition to any HAM radio base station. 

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

Popular Items