I had an idea to build an Arduino based radio alarm clock by re-purposing some other components I had lying around from other projects:
an Arduino Uno
an Adafruit 16×2 RGB LCD Pi Plate (for the display and control buttons)
an Adafruit Ultimate GPS breakout (for the time – what better way, albeit slightly over-engineered, to get the current time if not from GPS signals?)
The only part missing was an FM radio tuner. I was wondering how easy it would be to build a radio tuner from scratch (but not sure how I’d control it via the Arduino), so decided to take the easy approach to get started and use a TEA5767 based FM tuner on a chip. To make it even easier, I got a TEA5767 based breakout board for $5 on ebay that includes two jacks, one for an antenna and one for audio out.
There’s a range of cheap (< $20) USB Digital TV receivers that due to their wide tuning range can be used as Software Defined Radios (SDR) when combined with other software to tune and receive the signal from the dongle.
RTL chipset dongles are supported by open source software rtl-sdr. Download the source to your Pi and build following the instructions on their website. By running as follows:
rtl_tcp -a your_ip_address
you can stream the data received from the dongle inserted into your Pi to other software running elsewhere (your desktop/laptop) like SDR Sharp (by pointing it to the IP address of the Pi) which you can use to control the tuning of the dongle.