In November 2011, I stumbled up a gem on the internet. I was looking for a way to get into some Linux hacking, and I stumbled upon Jeff’s MightyOhm engineering website. One particular project was the Wifi Radio using a ASUS WL-520GU Wireless Router. I promptly went on Newegg and got my own router right away. From there it was several months of debugging hell as I struggled to learn the ins and outs of Linux and OpenWRT.
I didn’t want to create a carbon copy of Jeff’s Wifi Radio, so I kept my newly earned knowledge in the back of my head, always looking for cool ideas and new projects to work on. A few months ago, I discovered Pianobar, a CLI client for Pandora Radio. In case you don’t know, Pandora Radio is a browser-based internet radio. What makes it different from other radio websites is the service will recommend new songs based on your music tastes. Hence, it is a great way to discover new artists and even new genres of music. Pandora only works in the US, but you proxy to the service through a US server.
The neurons in my brain made the connection right away and I knew what I wanted to create. I wanted a wifi radio that can run Pandora, with all the features of the browser client (Love song, Ban song, etc). At first I tried compiling Pianobar for OpenWRT on the Asus router, but to no avail. I needed something more powerful. I had a BeagleBoard laying around and started playing with the toy. After a few month’s worth of weekends and afterwork programming binges, I finally finished the project.
Here’s a few videos of the device in action.
The alarm and backlight settings.
If you want to make your own device, I’ll be posting write-ups in parts and will probably post a new segment every other week. Of course if you just want Pandora on a stand-alone device, you can always check Amazon.com for something like the SqueezeBox. It takes away the fun from the DIY though.
1. Platform Development
2. Compiling Pianobar
3. Circuit Design
4. Layout and Fabrication
6. LCD Drivers
7. Rotary Encoder Drivers
8. Creating the BSP
9. Using an Event Processor
10. Finishing Touches
More coming soon. Check back for updates.