RDS Monitor and Traffic Flag Detector

NOTE:
This page was last updated on 21/06/2016 and is left here for historical interest only.
We've now moved to a much improved design using an Arduino which is documented elsewhere on this site.


Screenshot

A question was asked on one of the forums if it was possible to retrieve the RDS active traffic flag from a radio, for display on a light or screen in the studio. All radio stations have a legal duty to ensure that the flag is not present when a traffic information is not being broadcast and stations have been fined in the UK for getting this wrong, so a visual indication in the studio of what was actually being transmitted was regarded as essential.

This page documents a currently rather Heath Robinson solution, which hopefully will evolve into something much more refined.

NOTE: The information on this page requires a knowledge of electronics, soldering and will require modifying an existing radio. Do not attempt this if you are in any way unsure what you're doing. There are dangerous voltages in most mains powered radios and you could injure or kill yourself or others, or at a minimum destroy your equipment. If you're unsure, consult someone qualified. This page should not be regarded as a set of instructions.

The most important thing you need is an FM tuner (ideally already with RDS, but even a non-RDS radio could be used if you build an extra decoder board, as long as it's capable of stereo) to act as a source of RDS data. For our station I plan to modify a standard Hi-Fi tuner, however my initial tests were done with an old car radio. My first thoughts of actually using the radio's own TA functions turned out to be not only to be overly complicated, but would be dependent on the model of radio. This hardware resolves most of those issues and should be applicable to many common radio receivers.

The first thing you need to do is find the RDS data and clock lines inside your radio. I can't give you any info for your radio, but on my car radio these were actually marked on the circuit board. The easiest way is to google the chip numbers and find the RDS decoder chip and pin-outs. Some very new radios might not expose these, so older radios are better (avoid any radios with DAB as these tend to use "single chip" solutions with no external RDS or MPX connections). If your radio does not have RDS you'll need to find the multiplex connection to the stereo decoder (this wont work on mono only radios) and build a simple RDS decoder board (MPX to data/clock). I'll document this in the future.

Once you have your RDS data and clock lines you need to process these signals in some way. You can actually use a piece of software called RDSspy and connect these via a couple of resistors to your sound card and see the whole RDS sequence, however this software was closed source and I wanted to explicitly act on the traffic flags.

To take the load off the PC and enable easy connection I found some code on the internet (original page here) which runs in an ATTINY2313 chip (about £3 on ebay) and converts this to a standard, pre-formatted and (partly) error corrected stream of RDS blocks. This is then connected to a MAX232 chip and on to a serial to USB converter (a bit of overkill) to connect to a PC. Programming the chip is currently beyond the scope of this page, but I use a home-made programmer and a piece of software called AVreal, connected to an old XP desktops printer port (newer Windows machines or laptops may have issues). More information on programming the ATTINY2312 can be found here.

Circuit Diagram:
Circuit Diagram

My very Heath Robinson prototype using an old car radio:
At the front is a 7805 voltage regulator, then the ATTINY2313 and behind that the MAX232.
Prototype

The PC runs a simple Windows program I've written that displays the RDS data and writes a text file called "traffic.txt". This file contains either "?"=No RDS, "0"=No active traffic or "1"=a traffic announcement is in progress! You can then use your own software to poll and monitor this file to perform whatever actions you like when the traffic flag is active.

Screenshot

The entire circuit could be enclosed inside a tuner with just a serial/USB connection to the PC.

Downloads:

HEX file to programm the ATTINY2313

Windows Application EXE file - Full installer in a later version

Future Features etc: I'd like to implement all or part of this on a Raspberry Pi or similar, however that's something for the future.