Category: Broadcast Radio

Talk: My journey into FM-RDS by Oona Räisänen

Back in November we posted about Oona’s work with decoding radio controlled bus stop display signs using her RTL-SDR. Oona has given a talk at the Chaos Communication Congress about her work on decoding FM-RDS and the bus stop displays. The talk is now available on YouTube.

How I discovered mysterious hidden signals on a public radio channel and eventually found out their meaning through hardware hacking, reverse engineering and little cryptanalysis.

A story about my experiences with FM-RDS (Radio Data System), a digital subcarrier embedded in FM broadcast transmissions, and also cryptanalysis of the weakly encrypted TMC traffic messages contained therein. I originally found about the existence of such transmissions in a roundabout way, by using a spectrum analyzer program to examine intermodulation distortion in my radio’s Line Out audio. As it turned out, the inaudibly quiet distortion, probably caused by the radio’s stereo demuxer circuitry, contained all the information needed to decode all RDS data present in the transmission. I will demonstrate the journey I took and give a short introduction to how the data is actually encoded. Live acquisition of local RDS data depending on signal conditions in the premises.

As a bonus, I’m introducing yet another little-known FM subcarrier called DARC, and my recent reverse engineering of the bus stop display radio protocol used in Helsinki.

Wavesink Plus: Android RTL-SDR App with FM+RDS/DAB+/DRM+ Decoding

Wavesink Plus, the paid version of the trial version of Wavesink has been released on Google Play. Wavesink Plus is an Android app which has FM+RDS, DAB+ and DRM+ receiving and decoding capabilities when connected to an RTL-SDR dongle via a USB OTG cable.

We gave Wavesink Plus a test today on a HTC One X Android phone and were pleased to discover that it works perfectly. The user interface has been tidied up from previous versions, and DAB+ has been added. There is now also auto tuning functionality, which will automatically find a station.

In further testing we found that the latest version of Wavesink was fast and snappy and was able to load DAB+ stations quickly, and decode them with clear audio. FM radio also sounded clear and RDS information loaded quickly as well.

Download the trial version here and buy the full version from this link.

Wavesink Plus Decoding DAB+
Wavesink Plus Decoding DAB+

Wavesink: New Android RTL-SDR App for FM/RDS/DAB/DRM+

Wavesink is a new SDR Android App, which allows your RTL2832U based dongle to receive FM radio with RDS, Digital Audio Broadcast Radio (DAB) and VHF band Digital Radio Monodial (DRM+). DAB+ support is also to be released by next week, and a station memory will also be added in a future release.

The app is currently in beta development, and only the trial version is released, which will allow you to use the app for 5 minutes at a time. They indicate that the commercial version will be out soon.

To use this with your Android device, you will need a USB OTG (On the Go) cable, and your device must support USB host mode, which most Android devices above 3.1 should support.

I gave the app a quick spin in FM mode, and found that the interface was a little clunky, but the app worked fine, and the FM and RDS signals were decoded correctly.

wavesink

RTL-SDR and RDS Spy with HDSDR

On YouTube user pe1etr shows us a video where he uses his RTL-SDR combined with HDSDR, Virtual Audio Cable and RDS Spy to decode a distant RDS signal. RDS Spy is a free advanced software program capable of decoding weak RDS signals contained in many broadcast FM radio stations.

RDS stands for Radio Data System and is a digital signal embedded into broadcast FM signals. It is used by radio stations to display the name of the radio station and current song playing on an LCD screen.

HDSDR & RDS Spy side by side

Decoding RDS in GNU Radio with the RTL-SDR

DangerousPrototypes.com have brought to attention a GNU Radio RDS decoding project from the website at Anotherurl. Check out the original post here. Anotherurl uses a GNU Radio Companion flowgraph and a .NET program to decode FM RDS messages. RDS is an acronym for Radio Data System, which is used in FM radio transmissions to embed information such as radio station and programme/song information. Some conventional FM radios display this information on an LCD screen. The popular SDRSharp SDR receiver also has RDS decoding built into it’s FM receiver already, but a GNU Radio implementation is very useful for learning how RDS works.

GNU Radio RDS Decoder

via dangerousprototypes.com

RTL-SDR vs Funcube PRO+ Dongle

YouTube user aunumero73 has posted a video showing a broadcast FM selectivity comparison between the rtl-sdr and the Funcube Dongle PRO+ (FCD+). The FCD+ is a software defined radio similar to the rtl-sdr, but with better overall performance. The video shows that the Funcube Dongle PRO+ has significantly less interference when tuning to a weaker radio station right next to a strong local station. Of course the near $190 USD cost of the FCD+ vs the $20 USD cost of the rtl-sdr needs to be noted.

Another comparison between the rtl-sdr and Funcube Dongle is made on this website for signal to noise ratios for multiple tested frequencies .

FunCube PRO+ vs RTL-SDR dongle (R820T) : selectivity on FM

EAS Decoder for RTL-SDR

The Emergency Alert System (EAS) is a system used in the USA and is described by http://transition.fcc.gov/pshs/services/eas/ as follows.

The EAS is a national public warning system that requires broadcasters, cable television systems, wireless cable systems, satellite digital audio radio service (SDARS) providers, and direct broadcast satellite (DBS) providers to provide the communications capability to the President to address the American public during a national emergency. The system also may be used by state and local authorities to deliver important emergency information, such as AMBER alerts and weather information targeted to specific areas.

Reddit user rtlsdr_is_fun is working on software to automatically detect an EAS broadcast from a NOAA Weather Radio stream using an rtl-sdr (or any SDR, or even an internet stream) and then immediately play it and record it. This will allow the EAS alert to be heard up to 2 minutes faster than email/sms alerts, without the need to constantly listen to the NOAA WX Radio.

He stresses that his software is still in the very early alpha stages, but you can read about his project on his Reddit post here, which also contains a download link.

SDR-J Decoding DAB Radio in Software using RTL-SDR

Digital Audio Broadcasting (DAB) is a digital method for broadcasting radio stations. The rtl dongles official driver has DAB decoding capabilities. But when the rtl dongle is used as a software radio, this capability from the original drivers can not used.

SDR-J is a SDR package for Windows and Linux which is capable of receiving FM radio and decoding DAB radio completely in software. YouTube user Superphish shows a video of SDR-J decoding and playing DAB music with a rtl-sdr dongle.

DAB Radio with RTL-SDR (RTL2832) and SDR-J

Continue reading