Raspberry Pi is an amazing little computer that can be used as a complete XBMC media center solution with the right software and accessories. While just a bit slower than the Apple TV 2, it can run XBMC media center and provide output in 1080p H.264 video, all for $35.
In this complete and up-to-date tutorial, you will learn how to build a lightweight HTPC front-end by installing and configuring a minimal Raspberry Pi XBMC distribution called Raspbmc. You will also learn how to optimize Raspbmc to run significantly faster for better user experience.
There is also an OpenElec distribution available, and I have covered the more advanced OpenELEC installation steps in this guide.
*** This guide has been updated on August 18th, 2013 to include the latest Raspberry Pi performance tips and tricks. ***
To complete this tutorial, you will need:
The total price for the computer is about $75, plus $23 for the remote control (Flirc), for a total of $98. However, you may have most of the required accessories at home already.
The Raspberry Pi (RPi) is a tiny computer that plugs into your TV with a HDMI cable. It decodes 1080p H.264 HD video smoothly, and the XBMC user interface is quite responsive as long as you use a light weight skin.
You can also unlock MPEG-2 and VC-1 decoding by purchasing a license from the foundation’s online store.
You can buy the Raspberry Pi through official distributors Premier Farnell/Element 14 or RS Components.
You can buy a case for the board from an online store, such as RS Components, but due to high demand there can be a long delivery time.
Alternatively, you can build a case yourself. For example, in the time it took for the official case that I ordered to arrive, I was able to build a case from LEGO bricks with my kids.
Building your own case can add more fun to this project, so I’d recommend you try this as well. If you build a case from LEGOs, just remember that the base size is 13 bricks by 9 bricks.
Please note that many users report issues with various memory cards, so make sure to get a supported SD card. I tested 3 cards before I found one that works properly with Raspbmc. The card I am using successfully is the Transcend 32GB SDHC Class 10 (TS32GSDHC10).
It is also strongly recommended to use a USB memory stick as the Raspbmc will run a lot quicker when running the XBMC off the USB stick. Please do not use a slow USB stick, but get a fast USB 3.0 such as Transcend Jetflash 700 that I am using with my Raspbmc.
Even when the RPi has only USB 2.0, using a USB 3.0 stick with 2.0 sockets will give much better read times.
The RasPi does not come with a power adapter, so you will also need to get a supported power adapter. I am using mobile phone’s micro USB charger, which seems to work fine.
I tested this computer with the Microsoft Arc keyboard, Motorola NYXboard USB remote control and Flirc USB IR receiver. The Microsoft Arc keyboard worked, but it had some incompatibility issues as it often generated several key inputs when a key was pressed once.
Motorola NYXboard remote control worked quite well out of the box, but it seems that it is not available anymore at Pulse Eight’s website.
Therefore, the most cost efficient and working solution is the Flirc (get it here). Flirc learns any remote control, so you can use your old IR remote control and map it with the Flirc using a configuration application on Windows and Mac OSX.
After you have mapped the keys with the configuration application, you can plug the Flirc into Raspberry Pi and start controlling the XBMC.
The Raspbmc distribution is created and maintained by Sam Nazarko and you can download the latest version here. I will use the Windows installer in this tutorial.
Before launching the application, plug-in the SD card reader and unplug any other USB storage devices to make sure you will not format an incorrect drive by accident.
Now, launch the Raspbmc installer application and select the SD card reader from the devices list. As mentioned earlier, it is recommended to use a USB stick as a storage partition on the Raspberry Pi, so tick the box on “Install Raspbmc to a USB drive”.
After clicking the “Install” button, it will take less than a minute while the installer downloads and restores the image to the SD card.
After plugging in the memory card, USB stick, USB keyboard or remote control, Ethernet cable and power adapter, the computer will boot up and the installer program will run for about 15-20 minutes.
The Raspbmc will boot up the computer once the installer script is ready.
Congratulations, now you have Raspberry Pi XBMC ready to use.
In order to play MPEG-2 and VC1 video files, you will need to purchase codec licenses from the Raspberry Pi foundation.
Install the codecs by following these steps:
I think this online video streaming service is too cool to miss if you want to watch Hulu, Netflix, Amazon VOD, HBO Go and other premium content channels on your Raspberry Pi.
In order to watch premium channels on the RPi, you will need to install a commercial software called PlayOn Media Server on your Windows-based PC that allows you to stream premium content channels into XBMC running on any operating system.
The PlayOn Media Server costs about $45 (one-time fee), but according to my experience it is definitely worth it.
Just buy and download the PlayOn here and install it to your Windows-based computer. In order to register your copy, open PlayOn Settings (Go to Start / All Programs / PlayOn / PlayOn Settings) and enter the license information on the Registration tab.
Next, go to Videos menu in the XBMC. Select Files > Add Videos… > Browse > UPnP Devices > PlayOn (your computer name) and select OK.
Now, you are ready to browse the large collection of premium content channels on your Raspberry Pi. Continue reading more advanced instructions here, if you want to seamlessly integrate Netflix and Hulu into XBMC running on Raspberry Pi.
If you have not already installed the Raspbmc on the USB drive, you should definitely get a fast USB 3.0 stick such as Transcend Jetflash 700 and install XBMC on it. You will get much quicker menus and fast fan arts.
Please note that many SD cards are unsupported by the Raspberry Pi, so be sure to get one that is on the list of supported cards such as the Transcend 32GB Class 10 (TS32GSDHC10).
If you don’t watch 1080p videos, you should change the resolution to 720p as it will make the system and menus a bit faster.
Go to “Settings > System > Video Output > Resolution” to change the resolution.
Confluence skin works fine, but you can improve the responsiveness of the system by using even more lightweight skin. Quartz skin is very responsive skin, so I would recommend installing it.
I have been using the Quartz skin with my jail broken Apple TV 2 and it is a really fast and nice looking skin.
By default, XBMC will extract thumbnails from videos that have no thumbnail in the library. As this consumes quite a lot of CPU performance, you should disable this feature to speed up navigation in the library.
Go to Settings menu and select Video > File lists > disable “Extract thumbnail and video information”.
You can safely speed up the RPi by overclocking it. Go to “Programs > Raspbmc Settings > System Configuration. Next, change the “System Performance Profile” to Fast to overclock the system. At least for me, the “Fast mode” works reliably when running the Raspbmc off a USB stick.
Furthermore, running with USB helps to avoid corrupting the SD card that can happen when overclocking.
If you are using a Network Attached Storage (NAS) such as Synology Diskstation, it is recommended to use a NFS protocol instead of SMB protocol to access media files in XBMC. SMB networking protocol uses much more of the RPi’s CPU, so NFS is a faster option.
For example, during my tests, a 1080p video was buffering frequently over wireless network with SMB protocol, but with NFS it played smoothly without any buffering issues.
As this computer does not have a separate power button, a good trick is to connect it to your TV’s USB port, so that when you turn on your TV it will also boot up the computer. This way you will also need one less power plug.
I am using the Asus USB-N10 wireless adapter, which seems to work fine with Raspbmc. However, you will need to configure the WiFi adapter by following these steps.
Alternatively, if you have any problems in getting your WiFi adapter working, you should try the OpenELEC distribution.
The RasPi does not have hardware decoding support for any other video codec other than H.264 out of the box, so you will need to have all video files converted into H.264 format in order to play them smoothly. Alternatively, you can buy a license to unlock MPEG-2 and VC-1 decoding.
Fortunately, there is an easier way should you have another desktop PC or a media server. You can use Plex Media Server to transcode any media file you have in your library and stream it using a PleXBMC add-on for XBMC.
First, you will need to download and install the Plex Media Server application either on your Windows, Mac OS X or Linux based computer.
After installation, configure the movie library with the media manager (go to http://your-desktop-pc-ip-address:32400/manage/index.html with your Internet browser).
Next, download the PleXBMC add-on.
In order to copy the plugin file to the RPi, you can use an FTP client such as Filezilla to copy the plugin.video.plexbmc-3.1.5.zip to /home/pi folder on your RPi. The username is pi and the password is raspberry.
Go to Settings > Add-ons > Install from zip file > Home folder > plugin.video.plexbmc-3.1.5.zip to install the PleXBMC plugin.
Go to Settings > Add-ons > Enabled Add-ons > Video Add-ons > PleXBMC > Settings to configure the add-on.
Go to Videos > Video Add-ons > PleXBMC > Movies and launch your first movie.
All in all, the Raspberry Pi starts to be ready to replace your home theater PC, but it will require some tweaking before you can realize its full potential as a XBMC front-end.
The development around Raspbmc looks very promising and after fixing all the bugs and making the operating system more stable, it will be an excellent choice as a low cost media center.
As can be seen from the demonstration video below, it has a responsive user interface when using a light weight skin such as Quartz and enough performance to play H.264 HD video files.
If you are interested in building your own RasPi, check out the list of required components.
Next, continue customizing the XBMC 12 Frodo user interface with this extensive guide (over 3,000 words) to learn how to set up live TV on Raspberry Pi. You might also find these XBMC Netflix and Hulu integration tips useful.