RDS generation using an Arduino Uno

Radio Data System generation using an Arduino UNO and a Panasonic Stereo Modulator

I have been lent a Panasonic Stereo Modulator, model VP-7637A. It can generate the RDS sub-carrier - but not the RDS syndrome (the groups and blocks that make up the data signal.)

The modulator has a TTL level clock output at 1187.5Hz - the RDS signal clock rate; also a TTL data input.

Now that's begging for an Arduino to generate some RDS!

What this page is not

I'm documenting my investigations; and I'm happy to share them!

I am not:

  • producing a product design specification
  • creating a student project for instant copying and pasting! (It's a good start - but there's some leg work to finish it off.)

The Pictures

A picture says a 1000 words...

The following pictures give a complete overview from start to finish.

Wire up an Arduino Uno shield...

...to take the data and clock connections to the modulator. Digital I/O pin 2 Clock; pin 4 Data.

Download and compile my demo code. This generates a 0A,0A,2A RDS sequence. Connect a dual trace scope to the clock (CH1), and data (CH2)...

There's a 15μs hold time on the data stream. Now check the clock frequency...

Calculate the period - or just read the scope! 1.18750kHz. Crank out the time base...

... and the data seems to be flapping up and down nicely. Good. Find a FM signal generator and connect up the modulator.

Never hold back! Full power and maximum deviation!

Find a car radio with RDS, and tune it in...



Digital Crystal Set


Dave Swiston - RDS Receiver Notes

GNU Radio Companion

Ofcom VHF radio station list



Specification of the radio broadcast data system (RBDS)


rtl-sdr and RDS Spy

FM RDS Reception with GNURadio and RTL SDR on YouTube


Page last updated 20th February 2017 nick@anotherurl.com

Valid CSS!   Valid XHTML 1.0 Strict