Home‎ > ‎C64 projects‎ > ‎

FM Radio for C64

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.
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
 1 GND GND
 2 +5V VCC
 C PB0  DAT
 D PB1  CLK

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 v0.1.                                                This is a screenshot of v1.0 with CD player support



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.


LINKS:

FM-radio compiled for C128:



TODO:

 - The audio provided by the module seems to be quite loud. With volume set to 50% it is already very loud. Also with volume set to minimum you can still here the audio quite well. Need to think if there is something to be done for this...

 - 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 ???



ċ
fmcdc64_v1.0.zip
(33k)
Timo Voutilainen,
Dec 25, 2013, 6:57 AM
ċ
fmradio_v0.1.zip
(17k)
Timo Voutilainen,
Apr 20, 2013, 8:32 AM
ċ
fmradio_v0.2.zip
(17k)
Timo Voutilainen,
May 1, 2013, 8:37 AM
ċ
fmradio_v0.3.zip
(41k)
Timo Voutilainen,
Jul 28, 2013, 10:27 AM
Comments