We've been taking a look at some Intel-based NASes from Thecus and ASUSTOR that are being promoted as HTPC replacements. While I'm waiting for another one to arrive, I thought I'd put my Raspberry Pi to good use and test Raspbmc on it. I wanted to see if it could do as well, or better, as a media player than NASes more than 20X more expensive and with much more powerful processors.
But first, I should define the Raspberry Pi for those that may not have heard about it. The Raspberry Pi is a credit-card sized computer that has been setting the DIY world afire with its many uses.
The original intent of the Raspberry Pi was to create an inexpensive computing platform for education, but once the $35 unit hit the market all sorts of uses were found for it. If you want to see some examples, just head over to The MagPi.
The Raspberry Pi comes in two models, the Model A with 256 MB of RAM, one USB port and no Ethernet. The Model B has 512 MB of RAM, two USB 2.0 ports, and an Ethernet port. Both models have composite audio and video and HDMI on the board.
The device boots to an SD card, which makes it nice and easy to have multiple uses, all on different cards. The little Pi uses a Broadcom BCM2835 High Definition 1080p Embedded Multimedia Applications Processor with an ARM1176JZFS core running at 700 MHz. The crowning gem is the embedded Videocore IV GPU, which is capable of Blu-ray quality playback.
The latter was quickly adopted in the open source community and XBMC was ported to the ARM processor, birthing Raspbmc. Raspbmc was created and is maintained by Sam Nazarko, a 19 year old student from London.
On the NASes I've tested, setting up XBMC or Boxee has simply been a matter of obtaining the software package and loading it up via the NAS' particular software manager. It was very easy, almost too easy at times.
Upon first look at the Raspbmc Technical Wiki I felt an overwhelming sense of dread with what appeared to be the steps to install Raspbmc, including building the filesystem, kernels and application. I'm very comfortable in Linux, but I hate spending hours chasing down package dependencies and looking up errors in compiling. I foresaw evenings of sitting up, modifying config files, wondering why it was not working this time and questioning the meaning of life.
My inhibitions quickly dissipated and I felt a sense of joy however when I read further down the page and found a Windows Installer that simply loads the SD card with XBMC, no configuration needed. The installer wipes your SD card, so that is a consideration. Luckily, SD cards are pretty cheap, so I just kept my original intact and bought a new one for Raspbmc. The image below shows the modest installation options.
Modest Raspbmc installation options
After a few minutes, Raspbmc was set up on the SD card and I was ready to reboot. The image below shows the Congratulations screen...quick and easy so far.
Congratulations, the first step is done!
Once I found there was a Windows installer I did what most Windows users do on an install, I let it run and I didn't read any directions. I had the Raspberry Pi hooked up with no display at this point, so I couldn't see what was going on in the new OS. It didn't appear to come back up. So I unhooked the Pi from my workbench and brought it down to the TV. I debated simply plugging the Pi's power source in to the TV's USB jack (the Pi uses a standard Android USB cable for power), but a quick test showed the TV to have no power to the USB ports when off.
Once plugged into the TV via HDMI, plugged its power wart into the wall and connected its Ethernet port to my LAN, the Raspberry Pi lit right up and I was able to see that it was setting up the OS and downloading Raspbmc for first time use. This was all completely seamless with no user input. I didn't time it, but it took around 10 minutes. The image below shows one of the setup screens upon first use.
Continuing setup upon reboot
Once the filesystem was set up and XBMC installed, I was finally presented with user input. I started to use the XMBC Remote for Android when my one year old daughter started playing with the TV remote. I was surprised to see she was controlling Raspbmc with our TV remote!
Upon doing a little research, I came to find that the Raspberry Pi has integrated support for HDMI-CEC. In a nutshell, this means that your TV remote can control Raspbmc (or other apps on the Pi) and apps on your Pi can control your TV and much more. This is a very cool feature that gives it a plus one over the NAS-as-HTPC options. Not having yet another remote is huge!
It did come with small drawbacks though, rebooting the Raspberry Pi via SSH would turn the TV on as the Pi came on. A small annoyance and I'm sure there are configuration steps around it, I just made sure not to do that unless I was present to turn the TV off. It was a small price to for being able to control all Raspbmc functions with my TV's remote.