RDS/RBDS decoder with optional FM stereo receiver using PIC18F452

This project supports both RDS (Europe) and RBDS (USA) Tuner FM band 88..108 MhZ (Europe and USA.)

You can choose between a 4×20 character LCD or a smaller graphical LCD to display data. A simple  RS232 interface can also be used.

A 4×20 character LCD module will display these:

  • 1st row: Station name (PS), Quality, Program Identification (PI), Traffic Program (TP) and Announcement (TA)
  • 2nd row: Time and Date (CT)
  • 3rd row: Radio Text Line A (RT) 64 scrolling characters.
  • 4th row: Radio Text Line A (RT) 64 scrolling characters.

All major parts are available from our online shop.


FM stereo receiver

Schematic & pcb (Eagle 4.11e), hex file available. Last updated on December 12, 2007.

Circuit explanation

The schematic consists of two major subcircuits:

  • The actual RDS/RBDS Decoder with the PIC and the display.

  • The FM Stereo tuner with headphone amplifier.

If you want to build this decoder into an existing tuner, then you won’t need to rebuild the tuner part of the circuit. All you need to do then is to look for an MPX-signal in your existing tuner. This is usually found before the stereo decoder chip. This MPX signal must then be fed to the TDA7330 through a 47nF capacitor.

The circuit needs a couple of seconds of valid RDS/RBDS data before driving the LCD.

Quality indicator: a stable arrow (first row on the LCD) means the reception is good. Blinking arrows however indicate no valid RDS/RBDS data is being processed (signal too weak or station transmits no RDS/RBDS data.)

Digital tuning and volume control: the joystick gives us to have full control over the circuit. Last values are stored and reloaded on boot.

You’ll have to choose a 4×20 character LCD or a smaller graphical LCD to display data. The smaller graphical LCD is best suited for portable applications, whereas the larger 4×20 character LCD is best for fixed receivers (f.e. in your car). Which display is driven can be chosen when booting: joystick-left for the 4×20 and joystick-right for the smaller LCD.

The RS232 interface also shows all decoded data properly (see the screenshot below.)

RDS decoder:
TDA7330 RDS/RBDS decoder chip. Needs an MPX input in order to decode RDS/RBDS data.
PIC18F452-I/L PLCC This Microchip PIC microcontroller does most of the work: it looks for valid RDS data, then drives the LCD.
Graphical LCD Nice little graphical LCD  LPH7779 (Nokia 3310 LCD) Low power and best for portable use. Contrast adjustment by pressing volume up or volume down whilst booting.
LCD Module 4×20 Standard 4-lines x 20-characters LCD module. Best choice for fixed receivers.

For more detail: RDS/RBDS decoder with optional FM stereo receiver using PIC18F452

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.