RTL2832 Software Defined Radio
Updated 05/30/2017: SDRplay
Introduction HF Reception Reception Improvement Suggestions Filtering USB Cable Noise FM Band-Stop Filters Remote Client-Server Operation RTL-SDR on Windows RTL-SDR on Linux RTL-SDR on Android ADS-B Aircraft Tracking AIS Ship Tracking Skimmers: Simultaneous Multi-Frequency Monitoring Higher Performance SDR Hardware
Software defined radio (SDR) hardware is becoming smaller AND more capable. For many years, the king of small SDRs was the Softrock Radio. With a combination of surface mount and conventional discrete components, it offered high performance,small size, and low power consumption. Miniaturization took a large leap ahead in mid 2010 when the Funcube Dongle was introduced. It incorporated more functions onto a single chip than the Softrocks and hinted at the possibilities in a coming wave of USB based digital television and radio tuners. Eric Fry noticed, in early 2010 that certain DVB-T devices had special operating modes which could be exploited for reception modes other than digital television. A year later, Antti Palosaari developed the concept of using a generic DVB-T receiver as an inexpensive general coverage VHF / UHF receiver. Thus was born the "$20 SDR." It is an ante-upping game changer for entry-level and higly portable low power radios. This is a "black swan" event that can change radio.
Consider, for a moment, how the miniturization AND mass production of these small software defined radios can affect the activity of radio monitoring. Imagine what people will do with cheap and easy access to just about any radio signal between about 24 and 1700 MHz? This includes public services - police, fire, air traffic control, military, maritime, certain satellite based services including navigation, communication, and so forth. Some signals in the preceeding list will be encrypted; others merely digitally encoded. Amateur radio, weather, and most maritime services will be in the clear. With proper software, most of the signals received by these $20 SDRs can be demodulated / decoded / decrypted in real time. Other signals, protected by strong encryption, can be recorded and saved for future analysis. Don't laugh - there are people still analysing encrypted traffic from the second world war. DX listeners (and the NSA) can now record an entire band of RF spectrum and search for interesting signals at any later time.
Before reading further, make note that the RTL-SDRs are not mere miniature versions of tabletop or rack mount radios of the past. These dongles, like their other SDR cousins, take radio into the age of full-up digital processing. It is now possible to monitor an entire band and simultaneously decode EVERY signal that is a few decibels above the background noise! Better radios and software will push the limits until we are likewise pulling very very weak signals out of the noise as well.
The devices in question, for this breed of software defined radios, use a Realtek RTL2832 quadrature sampling detector in combination with a programmable oscillator (most commonly an Elonics E4000, Fitipower FC0013, FC0012, FC2580, and R820T). Experiments indicate that these devices perform fairly well without any hardware modification, and the software (drivers, firmware, and user interfaces) is sophisticated. It was initially possible to tune a desired frequency, sample a chunk of spectrum, and write the data to a file readable by a conventional SDR program. For example, GNU Radio or HDSDR would be used to read the file and demodulate signals in a 2 MHz wide band of recorded spectrum. Recent generations of RTL-SDR compatible software can directly access the data stream providing excellent real-time multimode reception.
The amateur radio community has worked fast on developing better software to operate the DVB-T radios and manipulate the resulting data. As of late April 2012, software such as GNU Radio or HDSDR can be used for reception of typical voice or digital modes plus esoteric things including encrypted voice. There are GNU Radio modules for P25, Mode-S transponders, ADS-B, GNSS, and INMARSAT downlinks.
Performance wise, the devices are pretty respectable. The specific tuning range available goes from about 60 MHZ to above 1700 MHZ using the best combination: an RTL2832 with the E4000 tuner. Devices with the R820 tuner go down to 24 MHz. Other tuners have different ranges and compatibility with available software. Dynamic range is limited mostly by oscillator noise and the 8 bit A/D converter. These are not debilitating limits! Most users should find performance good enough for local stations and perhaps a bit of farther / weaker stations. Basic amateur / public service / aircraft listening - even military satellite downlinks - should be easy on these little DVB-T radios.
RTL-SDRs on HF Bands
Hardware hackers have devised a method of using these RTL2832 SDRs for VLF through middle HF reception. Mikig and Dekar have prototyped a circuit in which the ADC is fed RF via "10/100" ethernet decoupling transformers. ADC pins 1 and 2 are fed with the output of a 1:2 transformer arrangement. The input side of the transformer is connected to a suitable antenna. Such a circuit provides sensitive reception up to around 7 MHz.
There has also been work on the software drivers to allow direct sampling the HF spectrum. The results are fair, but limited due to limits inherent in the dongles' design. The modified RTL2832 code enables reception up to 14.4 MHz. Newer devices with the R820T2 tuners may offer more complete coverage of HF frequencies with good sensitivity.
Full high frequency coverage with RTL-SDR hardware has been accomplished with the addition of an upconverter module. A very good surface mount upconverter has been created by Marty, KN0CK, which is small enough to fit inside the dongle enclosure. Opendous, with open source tools, created a high performance upconverter. These Ham it Up devices can be built from kits or purchased fully assembled from a number of suppliers.
RTL-SDR Improvement Tips
Here are some suggestions for improving performance of RTL2832 based SDRs:
- Reduce the SDR's internal gain to prevent noise due to front end overloading and intermodulation. Max gain = less sensitivity!
- Enclose the device in a grounded metal case.
- Use a good antenna designed for the range you will monitor.
- Eliminate feedline losses by mounting the SDR at the antenna feedpoint, with weatherproofing and a long USB cable to the computer. Better yet: use a microcomputer to run the RTL-SDR and connect to the network via a wireless link.
- Use a bandpass filter to protect the radio from strong out-of-band signals.
- Use a bandstop filter to block strong television or FM broadcast signals.
- Consider a quality preamplifier for the RTL-SDR to reduce the system noise figure.
- Filter the +5V supply to the radio. Use a combination of ferrite beads and bypass capacitors to target the full spectrum of noise.
- Put RF Chokes on the USB cable to filter out computer noise.
- Hope for the manufacture of DVB-T receivers with 16 bit A/D converters
- Software tricks, such as oversampling and decimation can help - watch for RTL2832 firmware and driver updates!
Filtering USB Cable Noise
The greatest source of noise in the RTL2832 based SDRs is the computer to which it is attached. The problem is not unique and is faced to varying degrees on other computerized radio or audio equipment. Use shielded USB cables when available, and add bypass capacitors between the +5V and GND lines. A combination of large values and smaller ones is best, for example 47 uf in parallel with .01 uf and .001 uf capacitors. In addition, several ferrite beads should be used along with running a few turns of cable on a large ferrite choke. Here is information on the USB connector pins and color codes:
Filtering Strong FM Broadcast Stations
Strong FM broadcast stations can wreak havoc on weak signal reception on an RTL-SDR. Intermodulation with other strong signals can pollute a great deal of spectrum unless the strongest stations are notched with an effective filter. One simple filtering method is to connect a quarter wave coaxial cable to the antenna feedline, using a T connector. Keep the far end of the quarter wave coaxial stub open (not shorted), and it notches out signals around its design frequency. Here is the formula to calculate a quarter wavelength of coaxial cable:
Length (cm) = (7494 * V) / frequency (MHz) Example: frequency = 98 MHz V = cable velocity factor = 0.80 for RG6 cable Length = 61.2 cm 1) Always use quality low loss coaxial cable. 2) Connect the center conductor to the feedline center conductor. 3) Connect the coaxial cable shield to ground. 4) Keep the far end of the cable open (shield and center NOT connected together).
The filter works well. There have been instances of this kind of coaxial stub being soldered crudely to the receiver input, with the offending broadcaster dropping 20 dB and no longer causing intermodulation problems. Very deep notches can be made by using two or three stubs. The stubs should be separated from one another by a 1/2 wavelength section of coaxial cable. For a very nice graphic along with lab test analysis, see the HB9AMO Band Notch page.
Remote Mounting and Networking RTL-SDRs
Users of RTL-SDRs are getting top receive performance by adopting a client - server SDR architecture This refers, in practice, to remotely mounting the radio at the antenna, where it is connected to a microcomputer, which functions as a remote server. Long and lossy coaxial cable runs are eliminated this way. Instead, a long run of ethernet cable is used to provide power and carry data. In fact, the ethernet cable isn't required: one can link to the remote receiver via a broadband 802.11n link. Client - server architecture is a very good thing indeed, because it makes the receiver available to any user on the network. "On the network" means within a home or office intranet or globally via the internet. It is the way to bleeding edge multiuser / multimode operation.
For more information about using the Rasberry Pi with RTL-SDR devices (and downloadable system images), visit the Gareth Hayes website.
Windows Software for the RTL2832 SDRs
SDR# is SDR sharp indeed! Automatically tuning peak signals in the VHF-Aeronautical band.
Linux Software for the RTL2832 SDRs
Linux is where to find the most advanced activity in the world of RTL-SDR radios. Quite a bit of development is going on, and it is a good thing to see advanced software coders creating fresh software for RTL-SDRs that works great. OsmoSDR and GQRX immediately come to mind as top notch RTL-SDR packages available for Linux computers.
Linrad works nicely with RTL-SDRs too! In fact, it uses slightly modified rtl-sdr library that makes better use of the hardware. Leif has an amusing screencap on his page depicting several RTL-SDRs operating simultaneously in Linrad. It is quite a powerful software package, with countless ways to tweak and adjust an SDR to bring in elusive signals.
CubicSDR is a lightweight and elegant RTL-SDR compatible package for Linux, Mac, and Windows computers. It is easy to use and does a fine job with AM, wide or narrow FM (mono or stereo), and SSB. One can even monitor multiple frequencies at once, even in different modes, within the RTL-SDR's bandwidth. Pre-compiled packages are available for download as is the CubicSDR source code. Read more about CubicSDR and how to install it from source code with a simple script.
GNU Radio is the bleeding edge of the bleeding edge. It is a software toolkit with components that can do just about anything. One can receive GPS signals and get timing, navigation fixes or both. One can receive beautifully clean FM stereo with RDS using advanced filtering and demodulating code. Other modules enable simple AM/SSB/CW reception. GQRX is a very nice all-around program for RTL-SDR listening, which uses GNU Radio as its foundation. GNU Radio is not easy to install, so it is suggested to use a ready-made live CD/DVD with everything already installed and configured. Here is a list of bootable live systems:
- Skywave Linux: It has QTRadio, CubicSDR, and Dump1090 installed, ready to run.
- Andy's Ham Radio Linux: GNU Radio with a well rounded collection for operating, contesting, etc.
- GNU Radio Live DVD: a distro directly from the GNU Radio people.
- Kali Linux: penetration testing with good GNU Radio support.
- QTRadio (ghpsdr3-alex) USB Image: Networked high performance SDRs, but no GNU Radio.
Each of the above live Linux systems operates very nicely when installed to a portable USB flash memory device. They also work very smoothly when installed to a computer's hard drive as the main system or part of a dual booting arrangement. Tools like Unetbootin can be used to easily install these to a flashdrive, which may then serve as the boot medium for any PC with a USB drive.
Be aware that Linux now includes a kernel module for RTL devices, named "dvb_usb_rtl28xxu" for people who actually use them to receive digital television signals. It conflicts with software used to operate RTL devices in SDR mode. To detect its presence, issue the following shell command:
~$ lsmod | grep rtl28xxu
To unload dvb_usb_rtl28xxu, issue use the rmmod command (as root or use sudo):
~$ sudo modprobe -r dvb_usb_rtl28xxu
Android RTL-SDR Applications
Yes, you can plug use RTL-SDR with a tablet or smart phone! Use an OTG Cable Adapter to connect your device to the RTL-SDR, and be aware that both devices are powered by the host device's battery. Surprisingly, battery drain and CPU speed do not limit smooth operation on newer devices with quad-core CPUs, though older phones may suffer choppy reception. Here are the currently available software packages capable of operating on the Android operating system:
RTL-SDR ADS-B Reception
A large and growing number of aeronautical radio listeners have been using RTL-SDRs to capture Automatic Dependent Surveillance signals on 1090 MHz. It is possible to monitor aircraft movement in an area and get other related data: winds and temperatures aloft, aircraft registration, position, mechanical condition, etc. Many stations using Windows use RTL1090 to receive ADS-B downlinks, and Planeplotter to process the data.
Planeplotter is very sophisticated software enabling position plotting multilateration, and networked / multisite / multiuser operation. You can use Planeplotter to track aircraft with computer generated video of the aircraft's path over any location. This slick animation includes a real-time depiction of the sun, moon, and stars in the background. For use on a Rasberry PI there is PI Aware software for easily sharing ADS-B data in the Flightaware service. Others are getting better performance using MalcomRobb's Dump1090, which has better DSP code for detting usable data from distant aircraft.
Linux users are enjoying excellent performance with the open source Dump1090 package, with the most advanced versions produced by Mutability and MalcomRobb. These differ somewhat in the manner of error reduction and handling of data after it is decoded. For more, see our tutorial on Installing Dump1090 in Linux Mint 17.1 and Siduction 2014.1.
Matthew Ernisse has posted some useful information on using a remotely mounted Rasberry PI for with Dump1090 for ADS-B aircraft tracking. He's also created software packages to simplify setting up the RPI for client-server operation.
RTL-SDR Ship Tracking
Tracking maritime traffic is accomplished similarly to that for aircraft, but use the Automatic Identification System (AIS). For ships, the relevant signals are on 161.975 MHz and 162.025 MHz. Ship Plotter is a popular tool used with SDR# or other Windows SDR applications.
Note: some of the more specialized signal decoders don't connect directly to the SDR, and require audio to be routed from the SDR to the decoding software. There are a few different methods to accomplish this. One method is to use a virtual audio routing cable, while another involves software tricks in Windows' stereo mix. In Linux, audio can be easily routed in Jack, Pulseaudio, and plain vanilla ALSA.
Simultaneous Multichannel Reception
Software defined radios can do special things which are impossible with analog radios. One such task is monitoring many (or ALL) channels in a particular band and providing output streams for each one. Skimmers, as they are called, exist for CW, RTTY, PSK-31 and other digital modes. More sophisticated skimmers are emerging for radio monitors, thanks to more proficient software coders focusing on digital signal processing.
RTLSDR-Airband is software capable of monitoring multiple channels at once and providing an audio stream of the communications on each channel. It is special because it is the first publicly available, open sourced, skimmer for voice communications. With RTLSDR-Airband, one may monitor up to eight frequencies all at once, missing nothing. One can pick frequencies with interesting traffic, monitor them all simultaneously, and also stream the audio worldwide. It doesn't even demand much processing power, using 4.5% per dongle on a Rasberry Pi v2. This is precisely suited for radio streaming sites such as Liveatc.net.
Use Better Hardware For Demanding Applications
Radio developers have taken note of the versatility of RTL-SDR devices and sought to design new devices with significantly improved performance. Most notable is the Airspy receiver. It uses an R820T2 tuner along with a 12 bit ADC and much cleaner clock oscillator. It is also possible to independently control the gain of the RF, mixer, and IF stages. Users of Airspy on Windows are enjoying the new performance improvements. Independent gain controls are actually possible in other RTL-SDRs, and may eventually appear in Linux and Mac software. The Airspy is a great radio, and with the latest refinements in firmware, is similar in performance to full sized, top of the line, superheterodyne equipment.
Another receiver which is a step above lagacy RTL-SDRs is the SDRplay. Currently up to version RSP2, it is a sophisticated, high performance radio covering spectrum from VLF through upper UHF frequencies. With the apropriate DSP software, it can receive and decode any sort of signals. Amateur DSN monitors are feeding their downconverters into SDRplay radios to receive signals from distant interplanetary probes. ADS-B monitors, SWLs, and others are making the RSPs a very popular choice of SDR hardware.
For applications requiring very high performance, one still cannot beat a GNU Radio with its USRP hardware or a commercially manufactured communications receiver, such as an Apache Labs (ANAN) SDR or QS1R Direct Sampling SDR. Bear in mind that the RTL2832 SDR is a very important development in software defined radio technology! It brings quite good general coverage receiving capability to a huge number of people in the world. There once was a time when radio experimenters and hobbyists depended on a small number of sources for quality equipment. Specialized radios for weather satellites, amateur radio, or trunked public service comms were expensive and difficult to get. With the $20 SDR, based on tiny DVB-T devices, millions of people have access to a workable radio with very broad capabilities. Experimenters, hobbyists, and professionals alike will find lots of uses for these little workhorses. For the latest developments, check the lively discussion in the Reddit.com RTLSDR pages and Superkuh's RTLSDR page.
Tags: RTL2832 Software Defined Radio, Pocket SDR, R820 SDR, RTL-SDR, E4000 SDR, Funcube Dongle