Westinghouse H816L5 Clock Spotify Conversion
Basically, If you own a 1960s Westinghouse H816L5 and want to install a RPI4 in it without chopping it up too much to use Spotify, this is for you. Or if you need to reprint a missing piece, these models might help you out.
If you don't own one already and are a brave person that is great at printing supports, then you can try to print a new one from the replacement mockups I modeled. (I have never tried this, and if you do, please, please, let me know how it goes).
https://github.com/MacGyverr/Westinghouse-Spotify-Clock
I owned a broken H816L5 and wanted to give it some new life so I replicated the Westinghouse H816L5 clock in TinkerCAD to design parts for mounting a Raspberry Pi and a modern clock, transforming it into a Spotify speaker while keeping the original shell mostly intact.
The project involved some modifications to the original structure, you'll need to grind down the internal lip behind the volume knob. It uses Raspotify and Spotipy, controlled by a Python script. It features three rotary encoders for track control/shuffle, power/play/pause/volume, and playlist navigation.
Prepare the Raspberry Pi:
sudo apt-get -y updatesudo apt-get -y upgradesudo apt-get -y install git pip espeak
Configure Rotary Encoders in config.txt
:
sudo nano /boot/config.txt# Add the following linesdtoverlay=rotary-encoder,pin_a=16,pin_b=12,relative_axis=1dtoverlay=gpio-key,gpio=26,keycode=30,label="A"dtoverlay=rotary-encoder,pin_a=5,pin_b=6,relative_axis=1dtoverlay=gpio-key,gpio=13,keycode=48,label="B"dtoverlay=rotary-encoder,pin_a=22,pin_b=27,relative_axis=1dtoverlay=gpio-key,gpio=17,keycode=46,label="C"
After editing, reboot and test with evtest
. They are added this way for reliability and readability under Python..
Install Audio Hat Drivers for MIC ULTRA+:
git clone https://github.com/RASPIAUDIO/ultra2cd ultra2sudo ./install.shsudo reboot
Install and Configure Raspotify:
/etc/raspotify/conf
as per the provided conf
file.alsamixer
.Install Spotipy and Additional Packages for LEDs and TTS prompts:
sudo pip install spotipysudo pip install adafruit-circuitpython-neopixelsudo pip3 install pyttsx3
Setup the primary Python Script for Control:
mkdir westinghousecd westinghouse/nano monitor_input.py# Paste in the contents of the "monitor_input.py" filechmod +x monitor_input.py
Configure Spotify API Credentials:
export SPOTIPY_CLIENT_ID='xxxxxxxxxxxxxxxxxxxxxxxx'export SPOTIPY_CLIENT_SECRET='xxxxxxxxxxxxxxxxxxxx'export SPOTIPY_REDIRECT_URI='http://localhost:8080/callback'
Setup Python Script as a Service:
sudo nano /etc/systemd/system/monitor_input.py.service# Paste in the contents of the "monitor_input.py.service" filesudo systemctl enable monitor_input.pysudo systemctl daemon-reloadsudo systemctl start monitor_input.pysystemctl | grep running
sudo crontab -e# Add this line for nightly reboot0 2 * * * /sbin/shutdown -r now
bom.txt | 425.0B | |
config-examples.zip | 3.6KB | |
cord-plug.stl | 46.0KB | |
diffusor.stl | 87.4KB | |
instructions.txt | 4.1KB | |
monitor_input.py | 9.2KB | |
mounting-plate-support.stl | 26.5KB | |
mounting-plate.stl | 158.5KB | |
playlist-extension-rod.stl | 15.6KB | |
replacement-back.stl | 47.4KB | |
replacement-clock-face-lens.stl | 37.7KB | |
replacement-clock-face-mould-mould.stl | 296.9KB | |
replacement-clock-face-mould.stl | 151.0KB | |
replacement-face.stl | 227.9KB | |
replacement-preset-knob.stl | 21.1KB | |
replacement-selection-knob.stl | 59.7KB | |
replacement-volume-knob.stl | 46.7KB | |
replacement-Westinghouse_H816L5.stl | 682.8KB | |
spacer-multiple.stl | 98.7KB | |
speaker-adapter.stl | 73.5KB |