By Duane Benson, Technical Journalist, Consultant, and Futurist
What do a 1935 console GE model F-65 tube radio and an ESP32 have in common? This unlikely pair consists of antique tube (valve, for those East of the Atlantic) analog electronics and modern wireless digital electronics. Besides being a juxtaposition of early and modern electronics, they are the subject of one of my most recent electronics projects.
The radio is something I picked up at a garage sale for a pittance. The waist-tall console is a far too well- preserved example of 1930s design to end up in a landfill. The electronics, however, are another story. Most of the capacitors are dried up and split, and the insulation on the wiring fared no better. I wanted to get the radio working again but didn’t have the time to go through and research and replace the capacitors and wiring, so I thought: “why not turn it into a Bluetooth speaker?”
The basic “why not” is part of why I have the old tube radio in the first place. I’m old enough to have used tube electronics and I really love the slow warm-up time, the glow of the tubes from the back, and the slow power up volume up as the tubes warm up. I could have tossed a commercial Bluetooth speaker or smart home device inside the cabinet and called it good. To me, though, that would be missing the point. It’s a tube radio and should behave like one. I decided to simulate the warm-up and operating characteristics with RGB NeoPixels and an ESP32.
Each vacuum tube gets a NeoPixel as do both incandescent pilot lamps. The “pilot lamp” NeoPixels power up to a full brightness yellowish-white over half a second. The tubes have a much slower warm up. They start to be visible at about five seconds and reach full brightness—a dim orange— after about 30 seconds. Each “tube” NeoPixel is taped to the backside of the tube as close as possible to where the filament would be. A glance or an untrained eye likely won’t be able to see that the glow is coming from something other than a filament. Audio starts up at about ten seconds into the warmup period and gradually increases in volume over about 30 seconds. All in all, it’s a pretty decent simulation.
I wired the original On/Off switch to a digital input on the ESP32 and the original volume control potentiometer to an analog input. The entire unit powered by the ESP32 is always on standby and is set as a Bluetooth speaker. While the radio “power switch” is off, the sound and NeoPixels are off. It all comes to life, as described above, when I turn on the switch and give it some volume.
The choice of ESP32 is important. Most support Bluetooth Low Energy (BLE), but not all support Bluetooth audio. Audio support in the various languages is spotty as well. I used an Espressif ESP32-PICO-Kit D4 in Arduino mode, which did the trick. I fed the I2S output from the ESP32 to an Adafruit I2S Class-D audio amplifier. It’s powered by a LiPoly charger/power supply of my own design.
You can see my code and project notes on my GitHub site (https://bit.ly/3UlmxbZ).
You can also find the Bluetooth audio library I used on GitHub (https://bit.ly/43ZKdXu).
Got a design project you’d care to share? Contact our Editor: [email protected]