The Pi Has Landed
It arrived. After quite some delay my Model B Raspberry Pi has arrived.
The Raspberry Pi is powered by the Broadcom BCM2835 SoC which includes an ARM1176JZF-S core running at 700Mhz, 256MB SDRAM and a Videocore 4 GPU which is capable of BluRay quality playback (H.264/MPEG-4 AVC at 40MBits/s) which puts it roughly on par with a 1st generation Xbox with slightly better graphics.
There are two models of Pi. The Model B which is ‘available’ at the moment comes with two USB ports, Ethernet connectivity and 256MB RAM and the lesser-equipped Model A which was originally going to have half the RAM, no Ethernet and only one USB port but is now predicted to have the full 256MB of the Model B so there may be other changes as well.
These differences aside, the Pi come equipped with a decent assortment of ports, including HDMI and composite video and will boot from an SD card, or as I found out, a MicroSD in an SD Adaptor!
The highly capable GPU and HDMI output are what clinched the purchase for me – if I couldn’t think of anything cooler to do with it, I could port XBMC to it and use it as a very affordable Home Theatre PC.
As many of you are no doubt aware, there has been a phenomenal amount of interest in getting hold of a Pi as I too found out and by the time it had arrived the RaspBMC project had been created which uses a minimal Debian based-distribution to bring XBMC to the Raspberry Pi.
I grabbed the beta installer binary from the site (available here) and used the Linux utility dd to write it to the SD card which had appeared as /dev/sdb on my Fedora machine.
gunzip -c ~/Downloads/installer-testing.img.gz | dd of=/dev/sdb
This command simply gunzips the .gz file to STDOUT which is piped through to dd and subsequently written raw to the SD card.
I unmounted the disk and plugged it into the Raspberry Pi along with HDMI to the television, Ethernet cable to the router and finally USB power from a 5V phone charger and within moments was watching a Debian boot.
I’m not sure whether it’s a rather noisy driver or a really bad SD card but I was seeing a *lot* of console output from the mmc0 module about timeouts and codes but I chose to ignore this and wait for the installer to spring into life.
The installer itself is an ncurses based system that is incredibly hands off and robust unlike many quick hacks which can drop you into a rescue shell with no hope of getting out!
It guides you through and provides useful information on what is happening as it repartitions your SD card, fetches the latest RootFS and kernel.
Eventually you will be prompted to reboot the Pi – which I did with an unplug/replug – and the system will now boot you into the latest environment. It’s worth noting that the RaspBMC distribution will keep itself upto date, checking for updates every time it is powered on.
For those keeping count, it took approximately a minute for XBMC to finally launch but it did so in full 1080 with working sound.
I tested with some HD trailers I had and the graphics seemed to struggle a bit with some of the 1080p media I threw at it with dark lines appearing on screen and occasional drop outs where the TV could not detect an HDMI signal, but it was playing from a USB drive and had full DTS audio so it may have proved too much.
One of the killer features of XBMC is how extensible it is given that the plugins are all Python based which means no binary incompatibility – I was able to install the TED Talks, 4oD and BBC iPlayer plugins with ease and was impressed with the performance which saw no issues at all.
By default FTP and SSH services run on the platform which means that it can be used for light file serving/server needs and RaspBMC also has full access to the ARMEL Debian repositories which provide a wealth of software that is just an apt-get away.
I’m not sure if I’ll continue to use the Pi as a media centre as there may be more interesting projects I can do with it but at the moment it is a good showcase for the Pi and provides a project that may garner heavy interest in the future. It’s a bit rough around the edges and it looks like RaspBMC really pushes the hardware but it’s a great piece of kit and I’d recommend giving RaspBMC a spin.
- Disassembling a Cortex-M raw binary file with Ghidra - December 20, 2022
- Using final in C++ to improve performance - November 14, 2022
- Understanding Arm Cortex-M Intel-Hex (ihex) files - October 12, 2022
Co-Founder and Director of Feabhas since 1995.
Niall has been designing and programming embedded systems for over 30 years. He has worked in different sectors, including aerospace, telecomms, government and banking.
His current interest lie in IoT Security and Agile for Embedded Systems.
How did you find using it as a media centre in the long term? Is it capable of playing many video formats? Is playback smooth?
Hey ilias, I've found it incredibly capable. It's been tested with MPEG4 bluray quality video right down to FLV. The XBMC software is incredibly well done and will play pretty much anything you throw at it - the Pi will only struggle if it can't use HW acceleration.
This blog article reflects an early beta of Raspbmc; later versions are even smoother and the guy behind it, Sam Nazarko, is very quick to respond to issues.
It's great little device, and with the 512MB version coming, I think we're going to be seeing some cool developments in the future.
Also, for XBMC, I'd recommend Quartz over Confluence. Much lighter as a skin.
My thoughts so far:
I want to use it for watching stuff and not tinker it every other day.
OpenElec now is more stable than Raspbmc. The best is r12055 http://openelec.thestateofme.com/official_images/
Enable DirtyRegions on xbmc
Use Tom Briden's fork of the Android remote. Install the latest APK from his github download page:
I always get random freezes
The Phillips TV remote never worked through libCEC
I like the helpful information you provide in your articles.
I'll bookmark your weblog and check again here frequently. I'm quite sure I'll learn many new stuff right here! Best of luck for the next!