Category: RTL-SDR

University Course on Digital Signal Processing with the RTL-SDR

Over the past few years the Electrical Engineering department of the University of California, Berkley has been using RTL-SDR’s in their EE123 Digital Signal Processing (DSP) course. We’d posted about this course years before when it first came out, but recently Micheal Lustig (KK6MRI), the Associate Professor of the course wrote in to let us know that the course has evolved and is now better than ever.

The course covers DSP essential material such as the Discrete Fourier Transform, Fast Fourier Transform, RF Filter design, as well as more complex subjects. All the course material is available in note and video form if you scroll down on the main page at https://inst.eecs.berkeley.edu/~ee123/sp16/index.html.

However, the professor writes that the best gem that they have developed in their labs which can be found at https://inst.eecs.berkeley.edu/~ee123/sp16/labs.html. The labs run on the web based Ipython/Jupyter Notebooks and guide you through the implementation of an ADS-B receiver, broadcast FM and subcarrier demodulation, frequency calibration with GSM, and a full python APRS transceiver using the baofeng radio and a custom audio interface. These labs are an excellent tutorial into the world of DSP.

The final project of the class is also very interesting. The students of the class were given the task to send images using a Baofeng UV-5R handheld radio and receive them with an RTL-SDR. On the day of the project demonstration they were given two images, and the challenge was to transmit the best quality image over 75 seconds. Videos of the presentation can be found at https://inst.eecs.berkeley.edu/~ee123/sp16/projectVideos.html. The winning team used a combination of five Baofeng’s for simultaneous transmission of a compressed image and an RTL-SDR for receiving.

Richard-Allan-James

Making use of the Infrared LED on RTL-SDR Dongles

The infrared (IR) LED on most RTL-SDR dongles is a vestigial from the days when it was actually used for its original purpose as an DVB-T HDTV receiver. It was used to read a remote control that allowed you to change TV channels. For SDR use, the IR has little to no purpose and in many new dongles that come in metal cases (like ours) the IR LED is no longer even included on the PCB.

However, not one to waste a perfectly good interface, RTL-SDR experimenter R. X Seger created a new tool called rtl_ir which allows users to read IR data from any remote control with the RTL-SDR IR LED. Seger tested his program with the TV remote that comes included with some RTL-SDR dongles and was able to decode the scancode for power on/off as well as all the other buttons. He also tested an Apple and Siri Remote, and found that he was able to decode their scancodes too.

R. X Segers post goes over in detail what the IR spectrum is, how the IR driver works, and how to use the rtl_ir program and run it simultaneously with other RTL-SDR programs. He also shows an example on how it can be used to remotely power off a Raspberry Pi.

IR data received with rtl_ir.
IR data received with rtl_ir.

LuaRadio: New Flowgraph Based Digital Signal Processing Framework for SDR

LuaRadio is a new Digital Signal Processing (DSP) framework for software defined radios such as the RTL-SDR. It is similar to GNU Radio in that the flowgraph is composed of graphical blocks that can be visually connected to one another in an editor. However compared to GNURadio it aims to be very lightweight in terms of disk space used (1 MB footprint) and the number of dependencies required (zero dependencies required unless you need real time highly optimized libraries). It is also written purely in the Lua programming language. The authors of LuaRadio write “LuaRadio is more inclined towards scripting and prototyping than GNU Radio, and emphasizes fast block development.”

On their website there are already several example application flowgraphs uploaded, such as decoders for WBFM Mono/Stereo, NBFM, AX.25, POCSAG, RDS, AM and SSB. Looking and building such flowgraphs is extremely helpful for learning DSP, and DSP languages like this are excellent for prototyping new signal decoders. In addition, if you are new to SDR they also have a very useful page that explains basic SDR and radio concepts.

A LuaRadio based POCSAG decoder flowgraph.
A LuaRadio based POCSAG decoder flowgraph.

Building an ESP8266 Based Plane Spotter with an RTL-SDR Feeder

Living near Zurich airport, Daniel Eichorn wanted an easy way to show his house guests what planes are flying near him. Usually he opens up his Flightradar24 app on his phone, but he wanted a more permanent always on display. To do this Daniel has built an ESP8266 based OLED display which automatically displays the ADS-B flight information of aircraft outside his window. The ESP8266 is a very cheap and highly popular WiFi module which can give a microcontroller access to WiFi networks.

Daniel feeds his locally received ADS-B data to adsbexchange.com using a Raspberry Pi and RTL-SDR. While actually feeding ADS-B data with an RTL-SDR is not required to make the ESP8266 module work, this step ensures that he has good local coverage of his area. The ESP8266 module then queries the adsbexchange.com database via WiFi for information about planes in his area and displays the information on the OLED screen.

In previous posts we also showed how the ESP8266 could be used to transmit data like NTSC TV in a similar way to Rpitx.

ESP8266 + OLED screen displaying ADS-B data.
ESP8266 + OLED screen displaying ADS-B data.

An RTL-SDR to RTL-SDR QSO with RTL-TRX: Transmit RTTY with the RTL-SDR

Back in 2014 oh2ftg discovered that the RTL-SDR could actually be used to transmit data by modulating leakage from its internal local oscillator. Now it seems that tejeez and oh2ftg have released a new program that makes transmitting with the RTL-SDR easy. The program is called rtl-trx. It runs on Linux and allows you to to transmit RTTY or a simple beacon with the RTL-SDR. The software is available on GitHub at https://github.com/tejeez/rtl-trx. About how it works, the readme says:

Local oscillator leakage from an RTL-SDR dongle can be used as a very low power FSK transmitter. This program transmits RTTY and also makes it easy to use the same dongle to receive RTTY in between transmissions. The goal is to make it possible to have a two-way QSO between two dongles.

Over on YouTube oh2ftg has also uploaded a video that demonstrates the software in action by doing a 1270 MHz RTTY QSO between two modified RTL-SDR dongles. He uses fldigi to decode the RTTY signal and the signal is sent with the following settings: 425 Carrier shift, 45.45 Baud rate, 5 Bits per character, none Parity, 2 Stop bits. 

This previous post shows the hardware modification that can be done to improve the output power. Again, as with the Raspberry Pi transmitters, the output power is very low and probably won’t cause any trouble, but still please do take care if you intend on actually transmitting anything as the output spectrum is probably not very clean.

RTL2RTL QSO! on 1270MHz

SDR4Everyone: Getting Started with the RTL-SDR and SDRUno

Over on his sdr4everyone blog author Akos has uploaded a tutorial that shows how to set up the recently released SDRUno with the RTL-SDR. SDRuno is a spin-off of the (recently acquired by SDRplay) Studio1 software. Although designed and tailored for the SDRplay, SDRuno also supports any radio with an ExtIO interface available, such as the RTL-SDR. The one limitation is that the maximum bandwidth of radios other than the SDRplay is locked to 1 MHz at most.

Akos’ post shows where to download and add the required ExtIO file (it’s the same one used for HDSDR) and how to start the RTL-SDR in SDRuno, as well as a quick tutorial on changing some settings and tuning.

We note that the fact that you need to install the ExtIO dll file to the documents folder seems to be a bug in the latest version at the moment. In future updates they may fix this, and then the ExtIO dll will go back to needing to be added to the C:\Program Files (x86)\SDRplay\SDRuno folder, as it was in previous versions. We’ve also heard one or two reports of users stating that they needed to add in the libusb-1.0.dll file as well, but we can’t confirm if this is actually required as none of our test PC’s have needed it.

Also, a recent post on Nobu’s blog shows how to get rid of the center DC spike in SDRuno by adjusting the Channel Skew Calibration. The post is in Japanese, but the gist of it is that you just need to adjust the fine tuning DC offset slider in the Channel Skew Calibration settings. Nobu also points out that a handy shortcut to getting the ExtIO window to display is to simply press the ‘H’ key.

Setting up the RTL-SDR for use in SDRuno.
Setting up the RTL-SDR for use in SDRuno.

SDR4Everyone: Review of the HackRF

Over on his ‘SDR4Everyone’ blog author Akos has recently uploaded a new post that reviews the HackRF One, and also compares it against the SDRplay RSP and RTL-SDR. In his review he discusses his first impressions of the HackRF, his concerns about it being labelled as a transceiver, and some of its various features. He also does a screenshot comparison of the HackRF, RSP and RTL-SDR on shortwave reception and image rejection performance. Akos also notes that there are not many applications in the high gigahertz range that cannot be done with cheaper or more specialized equipment. Finally he concludes that the HackRF is not very sensitive or good at RX in general, but still has enough features to make it a worthwhile purchase for some people.

If you are interested in the HackRF, we also have our own review that compares the HackRF, SDRplay RSP and Airspy.

The SDRplay and HackRF One.
The SDRplay and HackRF One.

Sniffing ANT-FS with an RTL-SDR and MMDS Downconverter in Pothos

ANT-FS is a wireless file transfer protocol that is designed specifically for transferring files wireless between two devices. It is designed for ultra low power devices and typically runs on devices operated by a coin sized battery. It is commonly used in applications like fitness tracker devices, which store data to later be downloaded to a PC.

Over on YouTube user sghctoma has uploaded a video showing a teaser of him receiving and decoding ANT-FS packets with blocks developed for the POTHOS graphical language. As ANT-FS is usually transmitted at 2.4 GHz, he had to use a MMDS downconverter which allowed his RTL-SDR to receive the packets. Sghctoma writes that the video is simply a teaser, and that a live demo with real deivce, and the full code + details will be released during his talk at DEFCON titled “Help, I’ve got ANTs!!!”.

ANT-FS sniffing with RTL-SDR, an MMDS downconverter and Pothosware