For years I’ve been dreaming of a streaming media device that could just be stuck to the back of a television. Since XBMC has been far and away my favorite set-top box software, I’ve closely monitored hardware developments that can run that package. Now I think it’s time to declare that the Raspberry Pi has achieved the base specifications to be branded the XBMC device that rules them all.
There are a huge range of opinions on this topic, but please hear me out after the break to see what has brought me to this conclusion.
Media playback and high-definition
When I first tried out XBMC on the Raspberry Pi, I was floored to learn that the board ships without MPEG-2 hardware decoding. That is a huge deal breaker as everything I record over the air (using ATSC tuners and MythTV) uses that codec. Well, that issue has been remedied. For a few bucks (I think it cost me $3.30) you can now buy a license that is extremely easy to install. I paid with Paypal, then copied and pasted the code that was sent back to me into a text file to the SD card.
Now the RPi can playback the 1080i mpeg recordings with ease. I’m running OpenElec and there’s even support on the way to use XBMC as a PVR frontend (the MythTV add-on isn’t quite ready for beta testing yet but soon).
There are several control options for the board, but in my mind the best is Consumer Electronic Control (CEC). This lets you use your TV to control XBMC via the HDMI cable. Not all TVs have this, but mine does. The remote control seen here has direction buttons, OK, menu, return, those four colored buttons, the number pad, and the DVR controls at the bottom (play, pause, stop, etc.). This is automatically enabled in the recent builds of OpenElec for some zero configuration goodness.
As with all modern builds of XBMC it is possible to control them through your home network. You can use XBMC remote apps for Android and iPhone, or even write your own.
The fact that this is a Linux distro means it can even use lirc. This is the package that has long been used to add IR remote control to home theater PCs. I remember building my own USB IR receiver using the V-USB stack and an ATtiny2313. But this type of work isn’t required to get an IR receiver connected to the RPi. Thanks to the GPIO header you can be up and running quite easily. I had a TSOP4838 on hand. This runs on 5V which can be supplied by the header. But the I/O pins on the RPi are not 5V tolerant so I included a voltage divider on the signal pin. I found this post of the utmost help in getting the receiver and Lirc working.
The final aspect I like to consider is the cost of the device. With the Raspberry Pi board, a power supply, and the license for the decoder all coming in quite a bit under $100 how can you go wrong? I’d bet you can purchase a nice little case and still not surpass the one Benjamin threshold.
The software that I’m using for testing is all in the development stages, and yet things seem to work great. Like I said, high-definition video plays without a hitch. Add-ons for XBMC work a bit slowly in the menus, but playback is perfect.
As you can see here I’m going to be doing some long-term testing. Instead of attaching the board to the back of my television with some Velcro I’ve zip-tied it to the underside of my entertainment center. I haven’t figured out how much power this thing consumes when not being used, but there isn’t really an option to hibernate (the problem lies in waking from a power-down state). I’m not sure if this will be solved in the future, but for now I’m just unplugging the device when I’m done using it. In my mind this is a small hiccup that can be solved with a smart power strip that switches when the TV is turned off. I’m going to wait to see if there’s a more eloquent solution that pops up in the near future.
I feel it necessary to mention that I would love to have Netflix streaming on this device. But that is a shortfall of Netflix, not of XBMC or Raspberry Pi. It should be able to play Hulu Plus and Amazon Prime via unofficial Add-ons.