Raspberry Pi reaches critical mass as XBMC hardware

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.

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).

Control options

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.

Cost

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.

Conclusion

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.

As demonstrated by the Amazon Kindle Fire, and the Barnes & Noble Nook. Both use Netflix and Hulu plugins to provide their advertised media abilities. Both companies refuse to sell their product to people outside the US.
At least Amazon have the courage to warn buyers that, should they dare to take their product overseas, the media features stop working. Advice probably aimed at US military, serving tours in foreign countries.

I’d never heard of CEC before. I have my Pi running XBMC connected to a Samsung tellie. Apparently all HDMI Samsung devices support Anynet+, their brand of CEC. So in theory I can use my TV remote to control the Pi. Am stuck at work now but as soon as I get home I will have to give this a try. Thanks for mentioning it here or else I would never have heard of it!

We have been doing this for a while, with xbmc. A bit sluggish through the menus some times, but once the video is playing there is very rarely any problems. We mainly play 720P videos, but occasionally play 1080P videos aswell.
The videos are shared via NFS from a Linux file server.

It works great for small to medium sized 1080p video files with a reasonable bit rate. Most file types and codecs including x.264 and Dolby surround work. There are some limitations. I found that movie files over about 2.5gb are too much for the pi but can be down sampled first (search Handbrake).

Also, I use mine with 400/mb Ethernet-over-power-line adapters. Wi-fi N wasn’t fast/ stable enough at times as 1080p would pause to buffer a lot.

When you say “it’s too much for the Pi” do you mean that the 1080p files it can’t decode are encoded with a higher profile? (files would be actually smaller and take more cpu decoding than when files are encoded with lower profile). Please clarify or correct me.

It works normally with high profile encodes and will play near blu-ray quality 1080p. It seems that the hardware decoder is not fast enough to handle unnecessarily-high bit-rates. One other consideration, I’ve seen mention of windows file sharing having a high overhead and causing buffering problems on large files but I’ve had no problems with this.

Overall, this $35 media player beats anything I’ve seen at any retail store. I personally have a full media PC with XBMC, transmission (bit-torrent), and samba running in one room and a Raspbmc in another. They work very nicely and can both be controlled from any smartphone (check Yaste on Android) as well.

Ok, since I converted all my stuff in smaller formats, it would not be a problem if the RasPI would require licensed firmware to read DVD or images correctly because I don’t use them anymore. What concerns me, and likely a lot more people too, is if the RasPI can decode through ordinary software players the usual smaller formats we’re used to when converting a DVD (mpeg4, xvid, divx, h264 etc).

“Something that even my old Celeron 300A was doing fine?”
Your Celeron 300a was only able to decode PAL Mpeg2 fluently when it was equipped with a videocard able to help in decoding. Usually an ATI card in those years.
When using a “dumb” videocard all had to be done on the CPU and that was too much to handle, even for the mighty Celeron 300a :)

Only if you’re trying to watch unencoded DVDs. Nearly everything else, including encoded DVDs works without a license. If you have MPEG-2 format video, consider using Handbrake (free encoder) to batch convert all of them.

Nah. The Pi is just the new, ultracheap, reasonably useful low end. You can always go up a notch to something like those for more functionality at twice the price, or up again to a more conventional mini htpc for even more functionality at 2-3x’s that price, etc.

Options are good, low to high, and it’s impressive to get this kind of functionality out of a device that’s only a ten spot over an arduino. And nobody is saying it’s the only option… *that* would be silly.

I’ve been using my pi for a few months now with OpenElec and having great success – used to use an old laptop under the TV, but the picture quality with the pi is so much better. I’ve been using BBC IPlayer add-on, ITV add-on and Amazon Prime and Hulu movies. Finally getting points from the wife after all the wires lying next to the TV. Only thing I don’t like as mentioned above is the menu transition time. But once the movie is playing, it’s excellent.

It lacks the processing power to act as a PVR. All usb ports share a single root, which includes the network interface. So if you are using say, and HDHomeRun and a USB HDD, you will quickly find the raspi to be bottlenecked.

I just use a 3 year old Atom dual core mini PC. It’s palm-sized and has a full complement of USB, HDMI, optical, eSATA, SD, WiFi, Ethernet, and so on. It uses the NVidia ION accelerator chipset, which requires careful selection of binary drivers to get working properly with VDPAU and HDMI audio, but plays 1080p video flawlessly. XBMC runs great and I have a Media Center remote control operation the whole thing. Think it set me back less than $150.

@53T – Short answer, yes. XBMC on the Pi can now do everything your Xbox used to and a bit more besides (HD video for instance). It also has the advantage of running the regular plugins rather than the Xbox specific versions which are slowly dying off. On the downside loading menus is a LOT slower on the Pi than the Xbox (especially in plugins), but that’s sure to get better in the long run. Echoing other commentators here, once you get something playing it’s seamless (mkv, h.264, trusty old avi’s, I haven’t found a format yet it doesn’t like – unlike the Xbox).

Haven’t got around to loading it up with emulators and running them through XBMC like I did on my old Xbox yet, but I’m going to give it a try over the next few weeks. Also going to try and go wireless, though I’m thinking that’ll have a big impact on streaming from my NAS, which it manages with ease wired. Anyone had much luck with wireless yet?

I would gladly pay triple for a device with similar power consumption specifications, but with gigabit ethernet, USB3, 512 MB memory, and a slightly faster processor. At least then, the device could be used for some background linux stuff / sabnzbd / torrents etc – and also have sufficient grunt to process things like RAW photos etc.

Not quite. In some contexts saving one watt in exchange of 9/10 of computing power would be totally acceptable (especially when those solutions are truly open, which the Pi is not). The Pi is great for a lot of things but cannot replace smaller MCUs because a small MCU is not an inferior version of a bigger one, but rather a different thing aimed at different tasks.

I’m using a Beagleboard-xm for more than a year now and I cannot recommend it for XBMC:
– HDMI not fully supported (only DVI = HDMI display but no sound, no HDMI remote control )
– TI stopped OMAP support so the last kernel that supports cpu clk @ 1GHz is 2.6.xx ; they didn’t port their patches for the new kernel versions
– SGX (hw graphics acceleration) is nice if it runs but to play Quake 3 on borderline performance I can use my old notebook in a more confortable way
– Looking on the diy scene it looks like it’s a one man show by some guy named Robert Nelson.

It’s a nice low power board – as the raspi. So for homeserver use it’s fine, but I guess the Beagleboards/OMAP-series will die very soon. I’ve seen that before with the AP7 from Atmel.

I stopped reading when you said you had to seperately license MPEG2 decoding. I’m sick of hearing about how “open-source” the RasPi is. Nothing about that damn Broadcom SoC is open in any way shape or form. It’s no better than any other hardware out there, and if all I want is something cheap, the old PC collecting dust in the corner fits the bill nicely. At least that can actually run an open-source software decoder.

Whenever I buy a Blu-Ray my first action is to dump that onto my NAS and watch it later in a very convenient way. The RPI will not play any of these high bitrate AVC 1080p m2ts “dumps” with multiple audio tracks. Not going to happen with OpenElec, Raspbmc or XBian. Playback will stutter for a while before it will completely die on some random frame. Anything below 25 Mbps should be fine though via NFS or HTTP (uPnP/DLNA). Samba is a bit harder on the CPU, so max bitrate will be a bit lower here.

Funny fact: The standalone omxplayer will not suffer from that kind of buffer underruns followed by player crashes. I’ve tested that up to 30 Mbps/1080p/AVC with no serious issues. Must be the way XBMC deals with (pre)buffering and/or omxplayer integration which causes this kind of problems.

I haven’t read all of the comments, so I don’t know if this has been mentioned, but you can move the raspberry pi’s filesystem to an external drive and it will run faster. Often when people set up a media server they have a HDD connected, so you may as well put the file system on it. The read/write speeds are much better than to a SD card. It takes a little bit on know how, but it isn’t hard.

If only they dumped the silly camera and display connections, and put on a SATA connector… alas. Any external drive needs to connect via USB.
Since USB and network are shared, a network streamed video goes:
1. In via ethernet,
2. Out to buffer in hard drive,
3. In again to decode and play.
If you are booting and running your OS from that same drive, and its STILL faster than the built-in SD card, that says a lot about the SD card. None of it particularly nice.

I think you missed the point of the board, it was never meant for you to build a perfect board for XBMC or a server.
It is an educational board for getting people interested in coding etc and for teaching purposes!
The idea of the board was to provide a cheap way to learn, it being used as anything else is the cherry on the top.

Well I suppose an Educational device doesn’t need to be Practical, but it sure helps. Especially if your key concept is an “affordable” educational tool. I’ve yet to see a single device that hangs off either of the camera / display ports. Even if they exist, they sure ain’t common.
For learning, a SATA (or even IDE) port would mean less workload on the SD card. Which means they should last longer, and their speed becomes less relevant (ie. you can use cheaper ones).
Oh, and ditch the power-over-USB, just give me a hard-drive style power connector. Then take the mounting holes, and move them to line up with the mounting holes on the bottom of a hard drive.

Actually the small read write performance of higher class cards is horrible. Run CrystalMark on it and you will see. So far the best cards I have found for using as a file system are sandisk class 2 and 4, and even then I get a bad one ever fourth card or so.

The problem is the class rating is only for bulk sequential transfer, designed for taking pictures for example. The spec is worhless, and there is no rating on the package for the specs that matter for r/w filesystem access patterns.

Just be cause its cheap doesnt mean its good platform for xbmc
– Poor cpu makes menus very laggy and slow.
– Python (plugins) are very slow
– High bitrate video is crash prone
– No support for high bitrate audio either (Dolby TrueHD and DTS-HD and uncompressed 7.1 are all NO-GO)

An XBMC applicance is something that should just work, and ALWAYS work. Crashes, freezing, incompatable video are not acceptable. At least not with people other then yourself using the device.
The above problems are very unlikely to be solved. Hardware limitations et al.

If the only criteria is power consumption, size and the inclusion of HDMI-CEC, sure this might be a winner.
I value stability, usability, features, before power consumption and I think most other users do as well.

I would honestly recommend a the cheapest, smallest ivy bridge i3 you can find. Undervolt/clock the thing and enjoy. If you really want HDMI-CEC you can add an adapter fairly cheaply.

The current build of Raspbmc is RC5, which is a ‘release candidate’. It is still in development stage and is being tweaked to get rid of the bugs you mention above. I assume there was exactly the same issues with XBMC on the original xbox when it was being developed. Don’t get your knickers in a twist.

Probably a silly question, but the problem here might be that the capacitor on the Pi is inadequate as this is also a common problem with some external hard disks.
Adding an off board 4700uF 6V low ESR capacitor with a series choke to stop switching noise ought to smooth things out a bit enough to make it behave.

Re. not playing back reliably, has anyone tried 1) active cooling, or 2) connecting two Pi’s in parallel with a frame sequencer so that alternate frames are decoded by each.

I skipped to the bottom cause I’m sleepy do I apologise if I repeated another persons suggestion… I read somewhere that you can simply use the USB from your tv to power the PI I.e. that USB port that is only meant for firmware upgrades… It still provides juice and also the leggy menus could possibly be solved using the quartz skin as its meant to have a simplistic approach and therefore is less likely to lag

In case anyone is interested: The software that’s being used to control XBMC with your TV’s remote is libCEC, an open source software CEC stack. It can be ported to other platforms too, if the hardware is capable of doing CEC. The source code can be found on GitHub: https://github.com/pulse-eight/libcec/

I’m the author of libCEC, and also XBMC’s developer who added PVR support, so it’s nice to see an article here from someone who appreciates it ;-)

XBMC may be the best media player software out there. But it’s still terrible with major problems. The whole thing reeks of disorganization, the left hand does not know what the right is doing. I am speaking from my experience using RasPi/XBMC/OpenELEC

It doesn’t play old DivX. The interface is horribly inconsistant and weird. The control scheme includes useless and redundant buttons (the “play” button on one remote software is not the same as the “play” button on another, one plays folders, one doesn’t). Add-ons work inconsistantly. The “official” android remote app was deliberately broken by removing support from XBMC, and to date has not been updated.

It runs slowly on the RasbPi. It has retarded options like default to always show subtitles for all files.

I could go on. But what’s the point? There’s nothing better out there (which is really really sad). I wish someone would take XBMC away from the idiots currently coding it and fix it up the way it should be.

I just ordered one to replace the dual-core ION Foxconn nettop that I’m using currently. If I’m not happy with the functionality of XBMC on the Pi I will just set it up as a torrent/filesharing server.

The raspberry pi is pretty cool, but it really does seem like it’s somewhat underpowered and now, cost inefficient for a media player. Correct me if I’m wrong, but can’t I buy an Apple TV refurbished for $85, have built in wireless capability, decently powered hardware for media, and a pretty case to boot for less than it would cost me to procure all the components and assemble a raspi for the same purpose? Not to mention the performance issues and DRM problems. Thoughts?

I’ve found that the key to a good Raspbmc experience is overclocking the Pi and you MUST use USB for your drive for optimal performance. Most SD devices are too slow, and even though they should theoretically be faster than USB on the Pi, most people seem to have the best luck with USB. There just seem to be too many issues with bottlenecks and data corruption on the SD cards, especially if you overclock.

You still have to have a boot partition off of the SD card by nature of the way the Pi works, but in Raspbmc you can specify USB by simply placing a blank file called “usb” on the FAT partition before install, and it will install to USB.

These are conservative compared to the settings that some people use. This does not void the warranty unless you also force_turbo or current_limit_override. See overclocking section of: http://elinux.org/RPiconfig

I experience no disk corruption (Only from using USB!) and the performance is fine for playing everything I own in MPEG4 or FLAC format over a SAMBA share.

I’ve been pleased with this device with a bit of tweaking and numerous improvements that the Raspbmc develper has provided over the past two months. All for about $55 for the Pi, a case, power supply, and SD card. I dug up a USB cable and old USB flash drive and it works great, and I’ve ordered the two optional license keys today for just a few dollars.

It’s been my experience that the Android application “Yatse” is one of the most outstanding XMBC apps I’ve encountered. It’s free and registration (not required) is only $2.99.

A cheap media player has been something that I’ve wanted for years, and now it’s a reality for next to nothing. For me, this solution works better than a mini PC or other similar device.

This is fantastic! I’ve been running XBMC on my raspberry pi for months now and until I saw this I didn’t realize that my TV remote could control XBMC. I went home last night and it worked great! Thanks for this post!