I’ve had a few meetings with people recently that are new to the whole RaspberryPi story. It’s becoming clearer to me now that as a technologist, it’s easy for me and others “in the club” to forget that a lot of the jargon associated with computers is still a bit alien to most people.
I have put together this cheat-sheet to describe some of the key jargon associated with the Raspberry Pi, to allow those people to quickly engage and “join the club”.
What is the Raspberry Pi?
The Raspberry Pi is a small computer about the size of a credit card. It was designed by the Raspberry Pi Foundation, which was set up with an initial goal of increasing the influx of undergraduate applications to university computing courses. The original idea was to build about 1000 and hand them out at school events – when the kids turned up at the application process a few years later, they would be asked “what did you do with that computer we gave you a few years ago”, in the hope that they had experimented with it and learnt some computer science (and not limited themselves to using software but also creating software of their own).
A blog posting by Rory Cellan-Jones of the BBC helped to change the Raspberry Pi from 1000 devices as a giveaway, to what turned out on it’s first birthday to be 1 million devices shipped. Clearly a lot of infrastructure and a whole eco system has been built to support this.
You can find much about the history and design of the Raspberry Pi on the wiki page.
Where can I buy one?
What can I do with it?
The Raspberry Pi is a general purpose computer. It runs the open source operating system Linux, which means that there is a huge amount of free software out there that you can run on it. The operating system is stored on an SD-card like you would use with an older digital camera. The maplin bundle includes a pre-loaded SD-card but you can download free images from the raspberry pi website
The pre-built operating system images have a complete windowing system, a file manager, a web browser, some games, some programming languages, and a collection of utilities. It is easy to update and install new software.
There are many uses for the Raspberry Pi, many people download a prebuilt SD-card image for xbmc and plug it into their TV to use it as a media server
You can write programs for it, there are two main built-in programming languages with icons already on the desktop, scratch is a visual programming environment aimed at kids, and python is a textual programming language that is very powerful. But there are many other languages that will run on the Raspberry Pi.
What else do I need?
At a minimum you also need:
- USB power supply
- 2GB or bigger SD-card with a Raspberry Pi OS installed
- screen (HDMI or composite) and lead
- USB keyboard
- USB mouse
The SD card is the same as used in older digital cameras. You probably have one already. You can download the OS for free from the web and use a laptop with a card reader to program it.
The screen supports a composite (phono/RCA) feed to an old TV, or a HDMI connection to a newer TV. You probably have one already. You can read more about supported screens here, but note you need a HDMI to VGA adaptor to get the Pi to work with an old VGA monitor. You can pick these up as cheap as £7 on amazon now.
The USB keyboard is a standard keyboard. You probably have one already, or can buy one for £1 in a charity shop or boot sale or get a spare from a friend.
The USB mouse is a standard mouse. You probably have one already, or can buy one for £1 in a charity shop or boot sale or get a spare from a friend.
Why is it important to schools?
The computing in schools story is changing. For the last few years, schools have mainly taught ICT (Information and Communications Technology), which focuses mainly on using computers. Children leave schools knowing how to consume content, but not how to create it.
A number of keynote speeches over the last few years have created the necessary drive to turn our next generation of engineers and scientists from consumers into creators. One of the key speeches was this by Eric Schmidt from Google. Google have since offered funding to support this move to computer science in UK Schools.
A new computing curriculum is being rolled out in schools that includes more technical aspects of content creation, programming, and computer science. The Computing at School group have a really good set of documents about the curriculum here.
Why it it important to children?
The Raspberry Pi is important to children, because it puts computers back into the hands of the children.
In the 1980′s there were many home computers, and much of today’s generation of professionals grew up learning how to program using the BBC Micro, ZX Spectrum, Commodore, and countless other home computers. These home computers were affordable on a modest budget, and allowed children to experiment and learn how to create new programs.
With the advent of modern computing, modern gaming consoles, and fantastic sound and graphics and immersible experiences, a lot of the tools required to write programs are now hidden away or not even provided on these new modern platforms.
The Raspberry Pi in particular provides a cheap, affordable, almost disposable computer that a child can own and use and learn on. They are not frightened to experiment because it is not mum or dad’s expensive £1000 laptop, it is £25 computer they can easily replace.
What are some of the problems with it?
The power supply is one of the biggest problems that has been seen in real use to cause problems. The effects of this are often seen as the keyboard generating repeat characters as the USB resets, the Pi getting “stuck” sometimes temporarily and sometimes crashing, and in extreme cases, getting stuck in a power on reset loop where it starts for a bit, then keeps resetting every few seconds.
Some of these problems can be solved by using a better USB charger with a higher current output (more than about 700mA recommended), but even with that problems can be seen if you start plugging in wifi adapters, USB keyboards with LEDs on them, and other adapter boards such as the PiFace or GertBoard.
Be choosy over what devices you plug into the USB, some WiFi adapters are power hungry especially at the higher power levels if you are a long way from your wireless router.
Find a way to power your external devices independently, such as using a powered USB hub (included in the maplin bundle), or an external power supply (the GertBoard has a way to plug in an auxiliary PSU into the GertBoard itself).
Fitting it into a box – The connectors are around all edges of the Pi, and it can be a bit of a challenge to get it to fit nicely into a box due to this. The neatest way to box it is to by one of the many third party boxes, the PiBow being the nicest looking one, but there are many others.
Mechanical Stability – I’ve not seen too many problems with this, although USB in particular is quite bad at mechanical stability and I have seen problems with USB on laptops in an environment where vibration is concerned (in vehicle use), and the Pi might suffer the same fate in similar environments, although it’s USB connectors are a nice tight fit. The SD-card is slotted in under the board, and might also be subject to vibration problems in certain environments and may need extra support. Again, the connectors are quite tight when new.
What sorts of things can you plug into it?
The Raspberry Pi has USB ports, so you can plug in most modern peripherals. The more common peripherals like keyboards, mice, hard disks, webcams all work by just plugging them in. Some devices might require a driver to be downloaded to make it work, and some devices might not yet have a driver written for them so will not work.
There are lists on the internet that detail what is known to work already with the Raspberry Pi, and more drivers and devices are being supported almost daily.
There is an Ethernet socket that you can plug into your wired router, or you can plug this directly into a PC or another Raspberry Pi. If you plug it into a router, it will connect automatically. If you plug it into another computer, you will need to set up Static IP addressing. You can also plug in various WiFi adapters into the USB of the Pi to get wireless internet access.
What are all those pins for on the board?
The Raspberry Pi has a 26 way pin header that can be used for expansion. Some of these pins provide power to external boards, but most of them are General Purpose Input Output pins (GPIO). Most of these are digital pins, so they provide either 0V or 3.3V when used as an output, or read an input voltage up to 3.3V when used as an input.
It is possible to use the GPIO pins without any programming, as their driver is built into the operating system, and there are many ways to access this driver. Probably the simplest way is to write a little python script, there is a sample at the bottom of this page.
What other devices can I connect
The Raspberry Pi processor has an impressive collection of on board hardware peripherals, including a complete audio synthesiser connected to the headphone jack. But staying with the pin header for now, here are the other interfaces you can connect to:
Serial UART – A UART is a Universal Asynchronous Receiver Transmitter – data is transmitted and received on a transmit pin and a receive pin, and the timing of each bit transmitted is assumed to be at an agreed rate that is the same at both ends (the baud rate).
A serial connection can be used for many things, including connecting to other computers, connecting to printers, connecting to musical instruments. A full list of example uses for a serial port is on this wiki page.
SPI – Serial Peripheral Interface – this is a digital interface that provides clock and data pins to external devices. Binary bits are clocked in and out of this interface at high speed, and large amounts of data can be transferred between the Pi and external devices serially using this interface.
SPI works like a big shift-register, it takes a byte of data from the Pi memory and shifts it out of the MOSI pin (Master Out Slave In) one bit at a time. At the same time, the peripheral you plug in takes a byte of data in it’s memory and shifts it out of the MISO pin (Master In Slave Out). This is all managed by the SCLK (serial clock) pin which can run at pretty much any speed. You can connect multiple devices to the same bus using CS (chip selects), one chip select per device.
Devices that support SPI include memory chips, LCD screens, digital cameras and sensors of many types (e.g. temperature, proximity, movement and many others). The Raspberry Pi has built in SPI hardware. The PiFace board for example uses SPI to expand the number of I/O pins available to the PI, and you can plug many PiFace boards in at the same time as a result. All SPI devices have a data sheet that explain the commands that the device accepts and the format of data generated.
I2C – Inter Integrated Circuit – I2C uses less pins, but a more complex protocol than SPI. Again, you can connect I2C to many different types of devices.
I2C was designed by Phillips as a way of connecting together a number of intelligent chips on a circuit board with a high speed serial interface. Unlike SPI, it puts extra bits of data in the messages that identify a device by a unique address. The address of the device is documented in the device data sheet. Most devices have some select pins that alter the address slightly in case you are using multiple devices.
Apart from power, two pins are used SCL and SDA – SCL is a clock that is normally transmitted from the Raspberry Pi and SDA is a bi-directional data bit. Data is clocked out serially one bit at a time supervised by SCL clock, and transfers on the SDA data pin. The protocol used requires that any device can control the bus, and the hardware pin drivers built into I2C devices require a pullup resistor on both SCL and SDA in order to work correctly.
I2S PCM – Inter Integrated circuit Sound/Pulse Code Modulation – this is used for streaming audio between devices. There is some documentation about how to get this working here from Gert Van Loo. However, if you want sound working, it’s easier to just plug in headphones or a speaker – this interface is for connecting to external digital audio devices.
DSI – Digital Serial Interface – this is a standardised connector that can be used to connect digital LCD panels. At time of writing the use of this port is limited and the only real use of this seems to be to support the up and coming digital camera module.