I’ve updated the python code having now migrated to RPIO for the GPIO control as its interrupt and debouncing setup is more complete as of v0.10.1 than GPIO 0.5.0a, and should soon make it into the Raspbian repositories.

So now you can find the code, including init script and Fritzing breadboard file, here

Functionality-wise it now does:

  • Display of band+track or radio station on LCD whilst playing, NTP date+time whilst stopped (may add RSS feed)
  • Button pauses/plays when pressed or stops playback and switches to clock mode when held down for a second, playback can be resumed with another press
  • MPD runs locally and fetches MP3’s and radio playlists over NFSv4 from fileserver, should also work for local files on sdcard or usb drive
  • LCD also reflects the status from external MPC clients like gmpc or MPDroid
  • Volume control is handled via hardware knob or software
  • Speakers can be powered off independently of the RPi

Next I’ve got to get some perspex for a case and glue things in place. In the meantime I’ve got to decide whether to purchase a Model-A or a second Model-B, and also think about switching to veroboard and put the button/LCD on wires instead of mounted directly on the breadboard.

Update: I received my RT5370-based wifi dongle today and whilst it works it suffers from the same “pulsing” noise out of the speakers as the RTL8188CUS.

See also video