Skip to Main Content

The $30 Network-Controlled Pandora Radio

Headless Pianobar Client

Introduction

I work in a small office, with 2 other people.  We all like our music, but work very different schedules.  We wanted a device that could play music, without having to leave a computer connected to it, and could be controlled by all of us, from our desks.  We needed a wide and flexible music collection, and an easy interface.  Pandora was the perfect service, but dedicated receivers were all costly and complicated.  The obvious solution?  Build my own!

Components

  • PogoPlug E02/P21 (Often on sale. Otherwise, $21.99 on Amazon) – This is a small embedded ARM-based computer.
  • USB DAC (as cheap as $2.80) – This is a USB soundcard.  You can get much higher quality sound, by spending a few dollars more for a Fiio D5 ($19.99), or go crazy with reference quality sound from an ODAC ($149) but this is the barebones build.
  • 4GB+ Flash Drive ($6.30) – this will store all of the OS files and programs
  • Speakers – we already had a nice 2.1 system by Teinuro, that I’m not including in the build cost.

Setup

  1. Install Arch Linux on the PogoPlug, using the instructions here.
  2. plug in the USB DAC.
  3. Update your installation:
    pacman -Syu
  4. Set the timezone (America/New_York for me):
    timedatectl set-timezone America/New_York
  5. Fix the boot environment (for better crash recovery):
    fw_setenv bootcmd "usb start; usb stop; usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset"
  6. Install my branch of Pidora, as detailed here

And you’re Done!  enjoy your new office radio!  I’m still working on certain features, such as better mobile support and better new-station support, but it works really well, for now.

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>