22-Sept-22: We're on Hackaday!
A minimal internet radio with analog input controls for volume and tuning. The use case is conversion
of an old analog radio to internet. The tuning dial's range is mapped into N zones, each zone selects
a hard-coded radio station. vlc
is used in audio only mode to stream the station content.
Reference Hardware: a Tivoli Audio Model One Conversion
This code works on the following hardware configuration:
- Raspberry Pi Zero
- AD1115 Analog input chip (two channels for reading the potentiometers)
- Adafruit Audio bonnet
- Custom 3D printed mount plate to adapt potentiometer to original tuning knob. (see
POT\ Mount\ for\ Tivoli\ Model\ One.stl
)
- A simple test:
cvlc --no-video http://kcrw.streamguys1.com/kcrw_192k_mp3_on_air
Above should play a stream from KCRW if vlc is installed and configured right.
- When you power up, it takes a minute or two for the rPi to boot. This is a feature - it gives a nice old-time vacuume tube feel to the experience.
- Not as nice is the lag in response to volume change. That is an explicit tradeoff of how frequently you want the rPi to be wasting cycles checking the analog inputs for changes.
Python3
, vlc,
SMB library
Python-vlc package