Skip to content
Software for a raspberry pi powered Vidor Lady Anne Vintage Radio
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

#Vintage Radio Control ##Martin O'Hanlon ( ##

##Description A control program for a Raspberry Pi and Volumio powered Vintage Radio

For more information see


  • init.d

    • runRadioControl - init.d script to run the radio control application
    • runRadioControl.add - script which will copy init.d script to /etc/init.d and add it to startup
    • runRadioControl.remove - script to remove the application
  • poccode - proof of concept code I used to understand how stuff worked

  • scripts - some random scripts

    • - a script to unmute the IQAudio Amp+
    • - a script to mute the IQAudio Amp+
    • - a script to start the radio control app and shutdown the pi when it exits
  • sourcecode - source code for the radio control

    • - main program
    • - class for managing an 'analogue switch'
    • - class to hold a events
    • - class for reading a KY0404 rotary encoder module
    • - class for reading data from an MCP3008 analogue to digital converter
    • - class which constantly pings the MPD server to keep the connection alive
    • - class used to raise events from the the on/off switch
    • - class used to raise events from the playlist selector
    • - class used to raise events form the rotary encoder
    • - class used to raise events from the volume control
  • docs - various documents created through the build


This assumes you are installing it on a volumio image and using an IQAudio DAC+ / AMP+

###Enable DAC

sudo nano /boot/config.txt



###Enable SPI

sudo nano /boot/config.txt



Reboot and check its running:

lsmod | grep spi_

###Set as mono The lady has only got a single speaker, so I set the alsa output to mono

sudo nano /etc/asound.conf


pcm.!default makemono

pcm.makemono {
    type route
    slave.pcm "hw:0"
    ttable {
        0.0 1    # in-channel 0, out-channel 0, 100% volume
        1.0 1    # in-channel 1, out-channel 0, 100% volume

###Install python modules


sudo apt-get update


cd ~
wget -O - | sudo python


cd ~
git clone git://
cd python-mpd2
sudo python install


cd ~
mv download python-rpi.gpio_0.5.11-1_armhf.deb
sudo dpkg -i python-rpi.gpio_0.5.11-1_armhf.deb


cd ~
sudo apt-get install python2.7-dev
sudo apt-get install gcc
mkdir py-spidev
cd py-spidev
cd py-spidev-master
sudo python install

##Download software and Run

cd ~
git clone
sudo python ~/PiLadyAnneRadio/sourcecode/

##Version history

  • 0.1 - Initial stable version
  • 0.2 - bug fixes
  • 0.3 - minor improvement to KY040 & added documentation
  • 0.4 - additional error checking and MPD connection keep alive changes
  • 0.5 - thread safe issues with mpd keep alive, so changed to use the event Q
  • 0.6 - new linear potentiometer
  • 0.7 - minor bug fix
  • 0.8 - made volume the right way round
  • 0.9 - fixed paths in scripts
You can’t perform that action at this time.