Home‎ > ‎C64 projects‎ > ‎

FM Radio for C64

Update 21.9.2018: Added initial version for TEA5767 -chip
Update 26.12.2017: Version 2.2 added (native version for C128)
Update 23.12.2017: Version 2.1 of the FM-radio software added. See readme.txt in the zip file for changes
Update 26.11.2017: Version 2.0 of the FM-radio software added. See readme.txt in the zip file for changes
Update 20.6.2017: Pre assembled modules & software are available sharewareplus
Update 24.3.2017: RDA5802E based modules are also compatible.
Update 25.12.2013: SW now supports playing audio CDs as well (via IDE64)

Listen to your favourite radio stations on your Commodore.

You can get these RDA5807 based FM Radio modules from Ebay etc. with ~5 Euros.
There are at least two different modules available - one with RDA5807SP chip and one with RDA5807P.
Both of these seem to be working. The one with RDA5807P is a bit smaller than the one with RDA5807SP but it lacks the power LED... easy enough to add your own, though.

Note, 5V tolerant RDA5807 / RDA5802 -modules are currently (21.9.2018) not that easily available.
I've added initial support for TEA5767 -modules which are available (ebay etc.)
The module is shown below (top left corned of the plastic case - next to DS3231 RTC)

It already has all the components you really need.
Connecting this to Commodore 64 User port is done simply like this:

 C64 Pin
 Pin Name
 RDA5807 Module pin
 2 +5V VCC

See User port pinout, for example, from here:
Commodore 64 User port pinout
It seems to be that separate pullup resistors for I2C DAT/CLK -lines are not needed
and module already has resistors for this. Seems to be working just as well with or without
additional pullups.
You propably want to attach an antenna ( ~96cm long wire should be just fine) to the antenna pad.
The module has a 3.5mm stereo audio connector to pass the audio to headphones / active speakers / your monitor's audio input connector.
Here is the module wired (experimentally) to C64 user port:
Some pictures of the module put into plastic enclosure with required connectors and power switch.

... The hole in the box cover is so that you can see the LED being lit..

Here is another one attached to my C64 Tower.

These modules are actually small enough to be easily fitted inside C64 case if you don't use user port for anything.
Comments / improvement ideas are very much appreciated. I guess nobody wants to fry their
precious C=64... So, if you brick your computer doing this I deny any responsibility :)

The SW part:

There are three different ways to control the chip via I2C-bus:
 a) Address 0x60 (TEA5767 compatible mode)
 b) Address 0x10 (sequential access / RDA5800 mode)
 c) Address 0x11 (Random access / RDA5807 mode)

TEA5767 compatible way is the most simple way. However this doesn't make it possible to
Alter volume, set Bass Boost etc. I haven't really looked into the sequential access mode.
This SW uses Random access mode since that should enable all the controls supported by the chip.

Below is a screen shot of the SW v2.0

The SW is written in C and compiled using CC65 compiler.
Check the readme in the zip file. That and picture above should give a pretty good idea of the features included.


v.0.3 FM-radio compiled for C128 (Starting from v2.2 C128 version is included)


 - Scanning with TEA5767 may have some problems sometimes - to be checked

 - There seems to be some current leak from the PB0 and PB1 when device is powered off (VCC disconnected). You can see the LED being weakly lit in the module... Perhaps use and ON-ON -switch so that when switch is set to power disabled state the VCC of the module is grounded through a resistor ???

Timo Voutilainen,
Dec 25, 2013, 6:57 AM
Timo Voutilainen,
Apr 20, 2013, 8:32 AM
Timo Voutilainen,
May 1, 2013, 8:37 AM
Timo Voutilainen,
Jul 28, 2013, 10:27 AM
Timo Voutilainen,
Nov 26, 2017, 8:44 AM
Timo Voutilainen,
Dec 23, 2017, 7:07 AM
Timo Voutilainen,
Dec 26, 2017, 1:15 AM
Timo Voutilainen,
Sep 21, 2018, 8:51 AM