Standalone WiFi Radio Control Panel (Arduino-Powered)

 by schazamp
control_panel_station_song.jpg
I wanted an Internet Radio for a long time, and was delighted to find Tinkernut's Wifi Radio project (http://tinkernut.com/archives/2387 ), which I built and have enjoyed for a few months. 

However, I didn't really care for the Ario based control interface, which required a computer up and running to start, stop, or change the channel.  I wanted to build a stand-alone controller, and found MightyOhm's Wifi Radio (http://mightyohm.com/wifiradio ), on which the Tinkernut project is based.  MightyOhm's control panel looks very nice, but it seemed more involved than I was ready for.  I don't have a non-Arduino AVR programmer, and I wanted to use things I had on hand and avoid opening up my router if possible.  Please note that this is an intermediate project, which will require basic multimeter experimentation to determine how the rotary encoder functions, and intermediate breadboarding, since there are a lot of connections involved.

So, using an Arduino-compatible controller board (Adafruit's Boardiuno , actually), a standard Arduino Ethernet Shield , a 16x2 character LCD, and a rotary encoder knob, I was able to quickly put together a controller that could select and play from a number of preset channels, turn off the radio, and display station, artist, and title information for the currently playing station and song.
 
Remove these adsRemove these ads by Signing Up

Step 1: Parts

For the radio:
First, you need some kind of MPD-based WiFi radio.  I recommend the following projects, an OpenWRT-based WiFi radio, such as Tinkernut's ( http://tinkernut.com/archives/2387 ) or MightyOhm's (http://mightyohm.com/wifiradio , on which Tinkernut's is based), or a laptop running Music Player Daemon (mpd: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki )

For the Controller:
* Arduino-compatible microcontroller platform (such as Arduino UNO , I used my Boarduino )
* Arduino Ethernet library compatible network controller (such as the Arduino Ethernet Shield )
* LCD Character Display (16x2 characters, or larger, such as this one from Adafruit , I got one from Ebay )
* Absolute Rotary Encoder (mine has 10 positions) (for choosing the station)
* Header pins
* Hookup wire
* 0.1" female wire connectors of varying degree (optional), which can help when putting everything in the enclosure
* breadboard
* ~7.5-9V wall wart power adaptor

Enclosure:
* one cardboard box that has a lid and is big enough for the breadboard, or some other enclosure you can modify to hold the selector knob and LCD, and cut ports for the Ethernet and power.
frank26080115 says: Feb 13, 2011. 10:30 PM
If your router has a serial port and runs linux, it might be cheaper to just communicate to it via serial instead of ethernet. You might need to write some code to do that though, but it will definitely be cheaper.
schazamp (author) in reply to frank26080115Feb 14, 2011. 6:34 AM
MightyOhm's build did involve opening up the router and hooking up the microcontroller to the serial port, but it involved soldering a header to the router's PCB, which I was hoping to avoid. I know the Arduino + Ethernet shield is a rather pricey route. I would like to use something like this: credit-card sized arduino ethernet controller  which has it all in one, and would be much cheaper, but I haven't been able to make up the PCB for it yet.
schazamp (author) in reply to schazampFeb 15, 2011. 4:39 AM
I was thinking yesterday, it might be possible to add a USB serial port (with a USB hub), and control it that way.
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!