What is a Raspberry Pi?
This was a question I had to ask a friend of mine after I ordered on, without even knowing what it was. In simple terms it’s a computer a tiny computer, about the size of a pack of cards. The Raspberry Pi contains everything that a normal computer contains; it has a CPU, GPU, RAM and HDMI out. It has USB ports to plug a keyboard and mouse into. It has an HDMI port for display, even a RCA video out if you do not have a monitor capable of HDMI input. Sound comes courtesy of either a 3.5mm jack or sound over HDMI.
The Raspberry Pi runs Linux, as well as quite a few other flavours. Most distros will run, but the more “official” distros are Raspbian, Arch Linux, Debian and QtonPi. In theory you could run any operating system on the Raspberry PI as long as you can compile the operating system. The most popular distro is Raspbian. It is based on Debian but things have been tweaked by an amazing community (I use the phrase “Tweaked” liberally here). There are some community members who have spent many late nights, working on the distros. You install a Linux distro on an SD card. The Raspberry Pi foundation decided to go with an SD card for permanent storage as it’s cheap, but it has a wonderful side effect that allows you to store different Linux distros on different SD cards, which means that to switch operating systems is a simple swapping of the SD cards.
What does it do?
I suppose the correct question is “What does it not do?” It has a pretty powerful GPU in it, so it’ll play games. The most noteworthy game currently being played is Quake III which you can actually compile on your Raspberry Pi. It’s an amazing feeling when you are playing Quake III after you compiled it. It also has the ability to play 1080p videos on something the size of a deck of playing cards. It also comes with something really cool called GPIO (General purpose input/output). This is a bunch of pins that can be used for almost anything, for instance you can use these pins to switch on an LED from code. The implications here are massive. You can write code which interacts with the pins, meaning that your code can interact with the real world. There is even a scout group who have used a Raspberry Pi to control a robot using their mind. And you thought controlling LEDs was unimpressive.
What can I do with it?
Over at the Raspberry Pi forums, people have been coming up with the most amazing things to do with your Raspberry Pi. Here are some of the things I have done:
- Installed XBMC and turned it into a media centre.
- Plugged an external hard drive into it to share files on my home network.
- Ran a Torrent server. I just have torrents constantly seeding, things like Ubuntu and the Raspberry Pi distros.
- I’ve compiled Quake III from source and also played it quite extensively.
- I have my Raspberry Pi running SSH and XRDP. So from pretty much anywhere with an internet connection I can remotely login to my Raspberry Pi to do something. This means that I can run my Raspberry Pi without a screen, or “headless” if you prefer.
Why make it?
The Raspberry Pi was originally created to get school kids into using computers on a more technical level. There was never really a big drive to teach kids how to program, computers are seen more as a tool to teach kids about other subjects, and less about teaching kids about actual computers. One of the main reasons I bought a Raspberry Pi is that it runs Linux, and I’ve always wanted to get into Linux more seriously. It’s really nice having a separate computer to run Linux on, you don’t have to worry about breaking anything. If you do manage to stuff something up and you have no idea how to fix it, you can re-image the SD card. You can even backup the entire SD card from another computer, so you can backup your current SD card before you have a weekend experimenting.
Some Technical Details
Note that the GPU, RAM and CPU are on a SOC (System On a Chip), which is essentially everything under 1 chip.
- SOC : Broadcom BCM2835.
- CPU : ARM1176JZFS, with floating point, running at 700 MHz.
- GPU : (Dual Core) Videocore 4. Open GL ES 2.0. OpenVG. (Roughly comparable to an Xbox 1.)
- RAM : 256MB SDRAM 400Mhz
- GPIO (General purpose input/output). Essentially a whole bunch of pins. (Read the post to find out what these things do.)
- Header Expansion Slot : Think of this as a PCI slot, you can plug other peripherals into it. This really allows anything to be added to the Raspberry Pi, a good example of this is the not-yet released Raspberry Pi Camera.
Go check out my High Resolution photos of my Raspberry Pi, in all its glory.