Last month Chris brought his vintage radio project to the Adafruit Show and Tell Show.
When I got the radio, it had 3 original matching knobs and one that was slightly smaller and looked different. It also displayed the FM dial in the little porthole. Through the folks at Radio Daze, a site for vintage radio restoration, I located some shaft extenders and couplers so I could bind the new components to the original knobs. The left one is connected to the amp for volume control. The right one is connected to a simple rotating power switch.
For the build:
The lower middle knob connects to an Adafruit rotary encoder that tells the software to cycle through the lighting schemes. Instead of using a 4th knob, I found a small plastic knob that was an exact fit for the hole. I found a small RGB LED was a perfect fit inside the knob and made the whole thing glow when illuminated. When the software picks a scheme for the pixel rings, it takes the first RGB value from the array and uses it for the indicator light.
All of the internals are mounted on a piece of wood that I cut to the same dimensions as the original housing. It can be removed if a part needs to be fixed. Attached perpendicularly to it is a second piece of wood that I stained to match the dark cherry tone of the cabinet. I drilled small holes to feed wire through to the pixel rings, the encoder, and the indicator. I had planned to glue the rings to the wood in some fashion, but once I had soldered the wires to them, I found the tension on them held them completely in place. The pixel rings are configured such that there are 18 assigned to each stereo channel of the audio. The spectrum shield provides 7 frequency values, so I just discard the lowest one. The “lines” of sound emanate from the center ring outward to represent the volume level of the respective frequencies. The effect is more artsy than practical, since having only 3 pixels assigned to a particular frequency is not really sufficient for a true spectral analysis. But I like how it looks!
From the software side of things, the Pi is running Volumio. I use it specifically for AirPlay, so that I can play it in sync with other music sources in my house.
The code in Arduino is available on GitHub here.