RDS Logo

RDS Surveyor, Java-based Radio Data System decoding software


Project links:

Download RDS Surveyor 0.8


The Radio Data System (RDS, also known as RBDS in North America) is a communication protocol for embedding streams of digital information in FM radio broadcasts.

RDS Surveyor is a Java-based framework for decoding, monitoring and analyzing RDS data. It is multi-platform (currently tested on MacOS X and Windows), just requiring Java 6. It takes raw RDS bit streams in input, achieves synchronization, analyzes the elementary chunks of data called groups, and finally reconstruct more complex information. Contrary to off-the-shelf radio sets that give access to only a subset of RDS features, RDS Surveyor enables the user to analyze all RDS data, at various protocol levels.


Screenshot of RDS Surveyor

User interface

The current version of RDS Surveyor logs every decoded group to the console, and gives an interpretation of its various fields. In addition, a window shows a summary of the information available about the tuned station.

The graphical user interface is constantly being worked on and improved.


RDS Surveyor uses a syndrome-based algorithm to achieve group and block synchronization quickly and reliably. Spurious synchronizations are almost impossible.

Unlike most RDS decoders that discard groups with errors, RDS Surveyor tries to interpret groups even with some blocks missing. This enables RDS Surveyor to decode RDS data very quickly, even with poor reception.

The following features of RDS are currently implemented:

Supported hardware

The first option is to get access to RDS bitstreams. The usual method for retrieving RDS bitstreams is to modify an existing radio set. You have to locate the multiplex signal, and feed it to an RDS decoder chip (e.g. TDA7330 or SAA6579). This chip re-creates two signal: the bitstream and the clock. Then the easiest way is to feed them through the sound card.

When using bitstreams, RDS Surveyor can take its input from various sources:

The second option is to use off-the-shelf radio devices that provide synchronized data groups. This family includes TV/radio cards and USB keys, such as Silicon Labs's USBFMRADIO-RD.

Currently, RDS Surveyor supports those devices under Linux: it may read from any Video4Linux (V4L) device with RDS functionality. This was tested with the USBFMRADIO-RD.

How to help?

To help with RDS Surveyor, you are invited to build a piece of hardware, to download the software and to test it! Then you may:

Valid XHTML 1.0 Strict

© Christophe Jacquet (contact: <MyFirstName>.<MyLastName>@gmail.com). Last modified on 2012-01-01
