- HMV 682
- Philips 836A
My father has an old tube radio that he inherited from his father ages ago. All its electronics had been removed decades ago, it was just decor in the kitchen.|
After finishing my other radio project, I decided to resurrect my father's empty radio using modern technology: a single board computer, WiFi, internet streaming, and a LCD display that shows an UI that looks just like the original rotatable disc which was used to display the frequencies back in the day.
[ View YouTube video ]
My father's radio
Philips started building the 836A model in 1934.
My grandfather must have bought it with one of his first salaries after becoming a baker. It must have cost him a fortune - such devices were very expensive back then.
More information on the 836A:
I used a cheap single board computer. It isn't powerful or anything, but good enough to do the job. And it is quite cheap. Its main duties in the radio are to
See the software section below for more details.
It's really difficult to find good yet inexpensive displays, especially when you have to use HDMI or composite ports on your computer (the DSI port on mine is not accessible). I found a 3.5" display meant for rear view cameras of cars. It has a resolution of 320x240 and uses the composite port.
You can get those displays on eBay, but you have to be careful: Some of the sellers claim their displays have a resolution of 640x480, but in most (all?) cases that resolution gets down scaled to the real resolution of 320x240, or they count the subpixels instead of the real pixels.
The radio is controlled by two potentiometers (tuning and volume):
The volume potentiometer contains a switch that's activated as you turn the potentiometer to the far left. It's connected to the Raspberry Pi which allows the software to deactivate the amplifier.
On the back side of the radio, there's a simple push button (the "info button"), which is also connected to the Raspberry Pi. Press it to have the UI display the current IP address.
The computer I used doesn't have any analog inputs, so I had to use a DAC. I built a small daughter board which is plugged into the GPIO connector on the the computer board. It hosts the ADC, pull-up resistors for the buttons and capacitors for the ADC for stabilizing the voltage and the signal from the tuner potentiometer.
The power is provided by a transformer I got from Ali Express. It provides 24 volts center tapped, which is exactly what the amplifier needs.
I connected that transformer to a rectifier bridge (including a capacitor) in order to power the remaining components. The approximately 16 VDC are directly connected to the display (it accepts anything between 9V and 20V), and a voltage regulator which generates the 5V needed by the Raspberry Pi and the USB sound card.
I decided to add a USB sound card, since the quality of the sound provided by the headphone jack on the Raspberry Pi isn't the best.
The line out connector of that sound card is connected to the volume potentiometer, which then passes on the signal to the amplifier.
The amplifier is a low cost board I got from aliexpress.com, it's manufactured by "Yuan Jing". It's based on the TDA8920 digital amplifier chip. It's got a solid quality of sound considering the price of only 15 GBP.
I decided to put a relay board between power and the amplifier given that I want to save a bit of energy. This allows the Raspberry Pi to only power the amplifier when music is playing. After some time of inactivity the amplifier switches off again.
Since the computer board I used doesn't have any built in Wifi, I had to connect a USB based WiFi stick to it.
That board couldn't provide enough power to the USB stick, so I put a short USB cable between the Pi and the WiFi stick, then connected the power lines of the cable directly to the 5V provided by the voltage regulator.
Putting everything together
The voltage regulator isn't visible on this picture. It's located under the Raspberry Pi, below the board.
The computer runs Debian (Raspbian) and the Music Player Daemon (MPD). I wrote the UI in C and SDL.
I used the WiringPi library to read out the buttons and potentiometers.
Originally, the display was showing a small part of a disc that was rotated via the tuning knob. It had the frequencies printed on it. I tried to resemble the look and feel of this "UI" using a digital display. My software emulates a rotating disc which is digitally controlled by the tuning potentiometer. The only difference is that it shows station names instead of frequencies and a few effects like highlighting the currently selected station or coloring it red when an error occures.
If there's no internet connection or in case of other issues, the UI displays an error message stating the error. Press the "info button" (located at the back of the radio) for the UI to display the current IP address of the radio. This helps configure the radio after connecting it to a network.
The only way to configure the device is by connecting & logging in to it via SSH, and to then manually edit the config files. So it's not that easy to add new radio stations or configure the Wifi, but I'm planning to implement a web based configuration editor later.