Do you own an antique radio? Maybe it’s sitting in your attic somewhere melting into itself as time, rot and woodworm deconstruct it into a mound of festering powder, if so why not give it a new lease of life and let someone else sweep up the mound of dust a few generations more down the road. I decided to do just that by renovating an old Pye radio manufactured in Dublin during the early 1950’s. The project has transformed a sixty year old decaying pile of Pye from a standard long/medium wave radio into a wireless internet radio. The receiver portion of the original circuitry has been swapped for a credit card sized computer which streams internet based radio stations via WiFi to the speaker. Several additional features have been added to the radio giving it more functionality than the one trick pony it once was…
Pye is a sixty-plus year old radio manufactured in Dundrum, Co. Dublin by the Pye Corporation sometime in the early 1950’s. The frame of the radio is made from plywood overlaid with a veneer skin that was originally stained in a translucent dark brown lacquer. Most of the stain was crumbling away and the veneer was lifting at the edges. The veneer had signs of mould through it from previous water damage during storage. There were also a few woodworm holes dotted about the carcass but apart from these the case was in pretty good shape for its age. The model number “P43” marked on the serial number plate is listed in the “Supplement to Wireless & Electrical Trader, March 1, 1952” This magazine lists the release date and original price of the P43 model as September 1951 and cost as £12 5s 2d plus purchase tax. At this time the average annual salary was around £500.
Pye was found listed for sale on the adverts.ie website, date 23/07/2013, excerpt below.
“1940s Pye valve radio. Made of wood. In reasonable condition. Needs an aerial and small renovation. Valves work fine.”
The asking price was €50 but the seller agreed to accept €40. I cycled out to Rathfarnham and met Barry the radio’s previous owner and seller. After converting my cash to scrap, Pye and I cycled back into town, Pye in a Tesco carrier bag on one handle bar. Weighing 7kg Pye had more control of the Rothar than I did.
When plugged in the radio powered up and the back lights came on. It tuned into RTÉ Radio One on long-wave 252 which came in clear but that was the only station I could find on both long or medium-wave. Pretty useless by today’s expectations. That was the very last time Pye would ever vocalise a broadcast received over the national airwaves. The next day it got the snip, separating the defunct super heterodyne receiver from the pre amp stages.
Now Meet Pi
Pi is Pye’s new brain, it takes the form of a credit card sized linux computer known as a Raspberry Pi or Pi for short. These computing devices are relatively new on the scene with the first one released on the 29th of February 2012. The Pi controller replaces the function performed by the receiver portion of the radio that we disconnected earleir. Pi is fixed inside the Pye’s case and gets its power from a 220Vac to 5Vdc step-down transformer salvaged from an old mobile phone charger.
Pi has various hardware ports that are used for this project. The two USB ports are occupied, one with a WiFi dongle used to connect into the home WiFi network, the other port houses a USB memory key which stores a configuration text file that allows the user easily configure the radio to their taste. There is an audio output jack that streams audio into the amplifier stages of Pye’s original circuitry. This configuration keeps the volume control via the ON/OFF volume knob on the front of the radio. It also keeps the old valves in the loop when amplifying the sound for original sound and feel. Three digital input pins are hooked up to a rotary encoder which converts the tuner dial rotation into digital pulses allowing the software detect the direction and amount of rotation enabling the software to cycle through stations as the tuner dial is rotated.
Software developed in Python runs on the Pi gluing all the bits together. It interacts with the Linux OS to establish a WiFi connection and play internet radio stations via MPC media player. Hardware interrupts generated by the tuner dials rotary encoder prompt the firmware to load and stream the next/previous station in the configuration file list depending on the direction of rotation.
The radio is configurable by anyone and no programming skills are required. All the stations and settings are stored in a text based configuration file which is stored on a USB memory stick accessible at the back of the radio. When the user wants to change the settings or add new stations they remove the USB stick and edit the text-file using a laptop and any text editor. A simple GUI could easily be developed here that edits the config file to make the process even easier.
Below is a copy of the current configuration file, all settings are operational. The station list is not bound so many more entries can be added so long as the newly added stations are consecutively numbered. The station URLs need to be dug out of the web and this can sometimes be a chore as many providers try to hide this info.
# File Name piRadioConfig.txt #
# Author Tony Flynn #
# Version v1.0.0 #
# Date 20/10/13 #
Station 1 Address: http://streams.blindy.tv:8000/brain.mp3
Station 1 Alt Name: Blind-e TV - Brain
Station 1 Country: USA
Station 1 Volume: 99
Station 2 Address: http://nodec.gocaster.net/tx
Station 2 Alt Name: TXFM
Station 2 Country: Ireland
Station 2 Volume: 99
Station 3 Address: http://icecast2.rte.ie/lyric
Station 3 Alt Name: Lyric FM
Station 3 Country: Ireland
Station 3 Volume: 99
Station 4 Address: http://8283.live.streamtheworld.com:80/CBC_R1_VCR_H_SC
Station 4 Alt Name: CBC Radio One
Station 4 Country: Vancouver
Station 4 Volume: 99
Station 5 Address: mms://live2.wm.skynews.servecast.net/skynews_wmlz_audio
Station 5 Alt Name: Sky News
Station 5 Country: UK
Station 5 Volume: 99
Station 6 Address: http://icecast2.rte.ie/radio1
Station 6 Alt Name: Radio 1
Station 6 Country: Ireland
Station 6 Volume: 99
Monday Alarm: Enable
Monday On: 07:30
Monday Off: 08:30
Tuesday Alarm: Enable
Tuesday On: 07:30
Tuesday Off: 08:30
Wednesday Alarm: Enable
Wednesday On: 07:30
Wednesday Off: 08:30
Thursday Alarm: Enable
Thursday On: 07:30
Thursday Off: 08:30
Friday Alarm: Enable
Friday On: 07:30
Friday Off: 08:30
Saturday Alarm: Enable
Saturday On: 08:00
Saturday Off: 09:00
Sunday Alarm: Enable
Sunday On: 08:00
Sunday Off: 09:00
The radio software interprets the above config file to execute the desired settings. The code uses the station address to stream internet radio to the speaker, as the tuner dial is rotated the code will skip through station addresses listed in the config file.
A Station Announce feature was included to provide user feedback as the dial is rotated. Since the stations listed on the glass screen of the radio are no longer valid it is useful to know what station is being streamed at any time. Since there is no LCD screen on this old radio the Station Announce feature uses the speaker to “speak” the current station as the dial is turned. Google’s text to speech (TTS) engine is used to perform this task. This feature enables the firmware to send a text string to Googles TTS site, google translates the text into machine speech and returns an MP3 file to the radio which is played through the speaker just before the internet radio audio stream is output to the speaker. The firmware stores the mp3 files so they are only fetched once for each station name then the local copy is used in future.
The Station Announce feature operates in 2 modes which can be selected using the config file.
When the parameter is set to Disable then the radio will announce the stations numerically.
before playing the station audio. This mode has the MP3’s cached on the Pi for stations 1 to 10 so they do not need to be fetched from the Google TTS Engine.
If the parameter is enabled then the Station Announce feature will play the stations “Alt Name” as input by the user in the config file.
Station 1 Alt Name: Phantom FM
In this mode the radio takes the “Alt Name” and plays it before streaming the station.
Or just for fun, checking googles vocal dexterity….
Each station also has its own associated volume that can be set from 0 (off) to 100 (max). This can be used to equalise the volumes of each station so that they are all at a level equal to each other. This digital volume control is in addition to the volume dial control on the radio.
Station 1 Volume: 100
The radio can be setup to automatically turn itself off after a specified timeout in minutes as shown below. The timeout countdown begins from when the tuner dial was last turned. If the timeout expires the Pi stops audio output and cuts power to the Pye radio by opening a relay switch. The radio will remain off until the either the tuner dial is rotated again or the radio is timed to come on automatically via an alarm setting.
The software allows one settable alarm per day. When the alarm for a particular day is enabled then the radio will come on and off at the times defined for that particular day. The station that comes on will be the last station that was set.
Monday Alarm: Enable
Monday On: 07:30
Monday Off: 08:30
The Alarm Fade In Mode when enabled gradually increments the radio volume after the radio automatically turns on via a timed alarm condition for a gentler awakening!
The case of the radio was sanded, lacquered then finally spray painted. The images below show the transformation from original to how it is now. It’s been running problem free for over a year as a radio and alarm clock. Who know’s what could be in store for its next revamp….somewhere in 2060!
The embedded video below shows the radio in operation using the tuner dial to flick between the stations. The radio will turn itself off when you get to a station for which there is no entry in the config file. It takes a while at the start for the radio audio to come through as the valves need to warm up after it first comes on.