A Tutorial on Using a Raspberry Pi Zero Wireless for ADS-B Flight Tracking

Allaboutcircuits.com contributing writer Mark Hughes has recently posted a tutorial that shows how to use an RTL-SDR dongle with a Raspberry Pi Zero Wireless to track aircraft with ADS-B. As a bonus he also shows how to program and wire up a 64×64 RGB matrix screen to display currently tracked flight numbers.

The Pi Zero is one of the cheapest single board computers available, costing only $5 USD, and the wireless model with WiFi connectivity only costs $10 USD. It is powerful enough with its 1 GHz CPU and 512 MB of RAM to run an RTL-SDR and run several non CPU intensive applications such as ADS-B decoding.

The tutorial starts from the beginning by installing a fresh Raspbian image onto the Pi Zero. He then goes on to show how to install the PiAware tracking and feeding software from flightaware.com. Later in the tutorial he also shows how to collect data straight from the flightaware.com API, and also how to build and control an RGB matrix which can display live flight numbers.

It also seems that FlightAware themselves have recently released PiAware 3.5, which now directly supports the Raspberry Pi Zero Wireless.

Track Overhead Flights with a Raspberry Pi Zero Wireless, a Software Defined Radio, and FlightAware

Using a HackRF as a Beacon Transmitter on a Drone for Antenna Calibration

Over on his Twitter feed Sylvain Azarian (@sylvain_azarian / F4GKR) has been tweeting about his new antenna calibration method which involves the use of a HackRF SDR and Raspberry Pi mounted on a drone.

The idea is to use the drone as a remote beacon which can move all around the antenna. As the drone flies around, the HackRF on the drone emits a data chirp containing GPS telemetry of the drones position. The receiver on the ground decodes this data and also determines the SNR of the received signal. By plotting the received SNR together with the drones GPS position, the radiation pattern of the antenna under test could be determined.

The software is called “RadiantBee” and is developed by both F4GKR and F5OEO. It is available over on GitHub. The flying hardware consists of a quadcopter, GPS, Raspberry Pi 3, HackRF, 10 GHz upconverter, band pass filter and horn antenna. The base station consists of an RTL-SDR dongle, 10 GHz downconverter, GPS and the antenna under test.

[Also seen on Hackaday]

The RadiantBee Quadcopter.
The RadiantBee Quadcopter

DK8OK Review of the Airspy and SpyVerter

Recently DK8OK wrote in to us and wanted to share his latest review of the Airspy and SpyVerter combo (pdf). His review focuses on HF usage and he shows various examples of HF signals that he has received with the Airspy+SV such as the CHU time station, STANAG, DRM, ALE, HFFAX, VOLMET and HFDL. He also shows some tricks for optimizing HF reception, a tutorial on performing multi-channel audio recording and decoding in SDR-Console, a tutorial on playing and analyzing recorded files as well as some examples of weak signal reception.

Overall DK8OK praises the Airspy+SV combo citing it’s excellent dynamic range as one of the reasons it performs so well.

We should note that for prospective buyers, the Airspy team is currently working on a new complimentary solution for HF monitoring called the Airspy HF+. This will have extremely high dynamic range (even higher than the Airspy+SV combo), but it will have a smaller bandwidth. So the Airspy+SV combo will still be the best for monitoring a wide 9 MHz chunk of the HF band, whilst the HF+ will be the best for getting into those very hard to receive signals.

Update: The paper is now also available in French.

Multi-channel decoding in SDR-Console with the Airspy+SypVerter
Multi-channel decoding in SDR-Console with the Airspy+SpyVerter

A Warning for R820T2 RTL-SDR Purchases on eBay/Aliexpress etc

Just a brief warning for those purchasing the generic dongles on eBay and Aliexpress. We’ve recently heard of a number of customers having ordered generic dongles advertised as having R820T or R820T2 chips, but receiving dongles with FC0012 chips inside instead.

The R820T2 is capable of tuning from around 24 MHz to 1766 MHz, whereas the FC0012 can only tune between 22 – 948 MHz. Compared, the R820T2 is definitely the better chip.

This scam is probably happening because the price of the FC0012 is less than the R820T/2. So these sellers may be trying to cut costs and simply hoping that no one will notice the chip change since both chips are RTL-SDR compatible in the drivers. You can check what tuner chip you have either with rtl_test, or simply by reading the markings on the chip itself.

In addition we have also recently seen several scammer bots on eBay pop up who are selling our own RTL-SDR Blog V3 dongles at very low prices. These sellers are typically automated bots that mass copy popular listings, and undercut their price hoping to grab a few fake sales before disappearing. They usually have zero feedback, or a small amount of feedback from purchases made from the account, and they price the product extremely low, typically even below the manufacturing cost. Most likely you will never see a product from them and they will simply disappear from eBay after a few days. This has already happened to one scam seller that we have been tracking, although before they disappeared they had already made 80+ fake sales.

FlightAware Prostick Plus Now Available in our Store

The FlightAware ProStick Plus is an modified RTL-SDR designed specifically for ADS-B reception. Its main defining feature is that it has a built in low noise figure LNA, and a 1090 MHz SAW filter. The LNA reduces the noise figure of the RTL-SDR, improving ADS-B reception and thus increasing the number of messages received and the receivable range of aircraft. The SAW filter helps remove out of band signals which can cause the RTL-SDR to overload if they are particularly strong. The Prostick Plus also comes with a TCXO, and SMA connector.

If you are mainly interested in ADS-B reception, or are looking to set up an ADS-B station then the Prostick Plus is one of the best choices you can make. See our previous review here.

We are now reselling some of FlightAware’s Prostick Plus dongles in our store now. They cost $24.95 USD including free shipping worldwide. We intend to sell them mainly to customers outside of the USA, as FlightAware already sell them officially on Amazon, but we offer free shipping anywhere in the world.

Click here to visit our store

The Pro Stick Plus RTL-SDR based ADS-B Receiver from FlightAware.
The Pro Stick Plus RTL-SDR based ADS-B Receiver from FlightAware.

SDRSharp SpyServer Now Supports the RTL-SDR

About a month ago the Airspy and SDRSharp development team released their new ‘SpyServer’ software. SpyServer is a streaming server for Airspy devices, which allows them to be used over a network connection. It is somewhat similar to rtl_tcp which is familiar to RTL-SDR users, although unlike rtl_tcp, SpyServer uses a multiclient architecture which allows several clients to connect to the server at the same time with each being able to choose individual bandwidth settings.

Today SpyServer was updated (changelog), and it now also supports the RTL-SDR dongle. The software can be found in the latest version of SDR# from www.airspy.com. The Airspy download contains the SpyServer for Windows and Linux, and the Raspberry Pi and Odroid server is available here.

To use SpyServer with the RTL-SDR you’ll first need to edit the “spyserver.config” file which is in the SDR# folder. Open this file with a text editor like Notepad, and set the “device_type” to “RTL-SDR”. Now you can run spyserver.exe on your server and it will use your RTL-SDR. Multiple dongles can be used by editing the “device_serial” string in the config file. Next on the client PC run the latest version of SDR#, and choose the Source as “Spy Server”. Here you can enter your networked PC’s IP address to connect to it.

We tested the updated SpyServer with an RTL-SDR dongle and it worked perfectly. On an 802.11n WiFi connection we were able to stream up to 1 MSPS without problems. 2 MSPS was a bit jittery, but on an Ethernet or 802.11ac WiFi connection it should work with no problems. We also tested connecting two PC’s to a single SpyServer and both were able to run at the same time without trouble. The client which connects first gets to keep control of the center frequency and gain, whilst the second client has those options locked.

SpySever Running with an RTL-SDR Dongle.
SpySever Running with an RTL-SDR Dongle.

The FreeSRP SDR is now Seeking Crowd Funding on CrowdSupply

Back in August of 2016 we posted about Lukas Lao Beyer’s work in creating a software defined radio from scratch. His goal was to design something that fit somewhere in between the $300 HackRF and the higher end and more pricey USRP radios. Back then he had completed the design and had a working prototype.

Now the Lukas has put the FreeSRP up on CrowdSupply, a crowd funding website. The FreeSRP is priced at $420 each and the goal is to raise $75,000 in order to begin a manufacturing run of the SDR.  At the time of writing this post, the campaign has been running for a day at is already 8% funded.

The FreeSRP has a tuning range from 70 MHz to 6 GHz, uses a 12-bit ADC with a sampling rate of up to 61.44 MSPS, and has a maximum analog filter bandwidth of 56 MHz. It is a full-duplex radio (can transmit & receive at the same time). The main chip in the unit is the fairly expensive (~$150 USD) AD9364 integrated RF transceiver chip and it also comes with a Xilinx Artix 7 FPGA. Furthermore the hardware and code is entirely open source.

The specs seem somewhat similar to the cheaper LimeSDR, although the main chipset is different as the FreeSRP uses the AD9364 chip and the LimeSDR uses their own LimeMicro LMS7002M chip. The AD9364 is the same chip used in the USRP B200 units. Below is an in-class comparison given on the FreeSRP CrowdSupply page.

FreeSRP Comparisons and PCB Image
FreeSRP Comparisons and PCB Image

Below is the FreeSRP promotional video.

gr-clenabled: OpenCL GPU Blocks for GNU Radio

Yesterday Mike (ghostop14) submitted to us by email a document that gives an overview of his experiments on rewriting several GNU Radio blocks to take advantage of OpenCL GPU acceleration. High end discrete gaming GPU’s (Graphics Processing Unit) on PC’s are a very powerful parallel processors which can be significantly faster at performing calculations than the general purpose CPU. But only algorithms that can be parallelized are worth running on the GPU, and there is an additional overhead to pass the data between the CPU and GPU. This means that only some algorithms will actually work faster on the GPU. GPU acceleration could be part of the key to allowing very high bandwidth SDRs to run on PC’s.

In Mike’s experiments he accordingly found that only some GNU Radio blocks could be accelerated by the GPU. Many blocks ran more slowly on the GPU due to the additional overheads. In the end the blocks he tested that showed actual or at least mixed acceleration were: 

  1. Log10
  2. Complex To Arg
  3. Complex To Mag/Phase
  4. A custom Signal To Noise Ratio Helper that executes a divide->Log10->Abs sequence
  5.  Mag/Phase To Complex (OpenCL performed better only for blocks above 8K for the 1070, and 18K for the 970 and 1000M)
  6. Signal Source (OpenCL outperformed CPU only for the 1070 for 8K blocks and above)
  7. Quadrature Demodulation (OpenCL performed better only for blocks above 10K)

The project is called gr-clenabled, and the open source code for gr-clenabled is available over on GitHub. A document documenting a full study of the implementation and performance of GPU GNU Radio blocks can be found here. Below is an excerpt from Mike’s overview document (if you want more information we suggest reading the overview first, and then the full study document):

About 4 months ago I decided to take on a project that I had wished existed for some time. With all of the code available for using graphics cards for signal processing why were there not a wealth of GPU-accelerated blocks for GNURadio? Really leveraging my new graphics card (an NVIDIA GTX 1070), couldn’t I drive 80 MSPS or higher through if I had hardware that could supply it? (I know USB 2.0 bus speeds, some decoders require hardware for speed, etc. but an SDR enthusiast can still dream)

My idea seemed simple enough. Why not develop OpenCL versions of the most common blocks used in digital data processing? I may not hit my throughput goal but I bet I can really accelerate my flowgraphs. And since I can dream up whatever I want before I have to actually make it, why not make it even more scalable? Why not be able to take full advantage of multiple graphics cards in a system by being able to assign different blocks to run on different cards?

I know, that’s a lot of questions, but sounds great if it existed right? What I didn’t realize was the scope of the box I was about to open. My first task at hand was to learn OpenCL and REALLY dig into the depths of the GNURadio code. Turns out not all signal processing algorithms lend themselves nicely to the way massively parallel processing works. And there’s a time price to pay to move data to a PCI card for processing then retrieve the results that has to be considered. Some native blocks take longer than this transfer time to run and can benefit from offloading, while others are so fast they’re done before a GPU even gets the data. But I’m getting ahead of myself here.

Throughput of the log10 GNU Radio block on various different GPU's at different block sizes.
Throughput of the log10 GNU Radio block on various different GPU’s at different block sizes.