In the mid-2000s, some of the staff at the University of Cambridge noticed that there were fewer and fewer students applying to study Computer Science each year, and that they had less and less experience. Something had to be done. The answer was the Raspberry Pi — a small, inexpensive computer that makes programming as accessible and as much fun as possible. The idea is that students can play with the Raspberry Pi during their spare time, and in the process, learn valuable core Computer Science skills. Since its creation, many other groups have discovered how useful the Raspberry Pi can be, including schools, adults who want to brush up on their skills with technology, and electronics hobbyists.
This chapter describes how to get a Raspberry Pi computer up and running. Once this is done, the Pi behaves just like any other ordinary computer, and is capable of standard tasks such as browsing the web and playing games. We will learn in later chapters that the Raspberry Pi is also capable of performing some tasks which ordinary computers can't do. The following figure shows a Raspberry Pi board:

This book assumes that a Raspberry Pi Model B is used, with its two USB ports and network connection (shown in the preceding figure). Model A (with one USB port and no network connection) will also work, but a USB hub (described later) will be needed to allow both a keyboard and a mouse to be used at the same time.
Along with a Raspberry Pi computer, you will need the following peripherals. In order to keep costs down, the Raspberry Pi was designed to work with devices that people already owned; so you may find many of these components around your house already. Just make sure they're not in use before you take them!
Note
http://elinux.org/RPi_VerifiedPeripherals is a useful website for checking whether a particular device will work with the Raspberry Pi.
The Raspberry Pi requires a Micro-USB connection (shown in the following figure), which is capable of supplying at least 700 mA (or 0.7 A) at 5V. Power supplies that can provide 1000 mA and more are available (and will be more reliable), but your chosen supply must give exactly 5 V. Most standard mobile phone chargers are suitable, and have their capabilities written on them, so you can check. Do not attempt to power your Pi from a USB port of another computer or hub as they are often incapable of supplying the required current.

The operating system and all files are stored on a standard SD card (shown in the following figure), which you may find in a digital camera. You will need at least 4 GB of space (preferably 8 GB+). The Raspberry Pi Foundation sells very affordable 8 GB SD cards with the operating system preinstalled at http://swag.raspberrypi.org/. You will also need a way to write data to an SD card from another computer. Many computers have built-in SD writers, but it is possible to buy USB dongles which do the job too.

We will use a monitor or a television with HDMI or DVI input, and a video cable connected from the Pi's HDMI port to the screen's input, as shown in the following figures. It is possible to connect to an older VGA or composite screen, but this is more complicated (refer to the Verified Peripherals link at the start of this section).

An Internet connection is not essential, but is very useful as it allows you to work directly on the Pi. The easiest approach is to use a wired Ethernet connection. It is also possible to use a USB Wi-Fi dongle. You will need a powered USB hub to provide additional USB ports, as shown in the following images:

You may also like to put your Raspberry Pi in a case to protect it, though this is certainly not necessary. There are many different companies that make many different styles, so choose one that suits you, or you could even make your own from Lego or card!
The first thing we need to do is put an operating system on the SD card using another computer. You can buy SD cards with preinstalled software, but doing it yourself guarantees that you get the latest updates and is also a useful learning experience. These instructions assume that you are using a computer running Microsoft Windows or Mac OS X; if you are using another operating system or having difficulties, detailed instructions are available online at http://www.raspberrypi.org/downloads.
There is a Troubleshooting section at the end of the chapter if you get stuck. We can prepare the SD card by performing the following steps:
Download the SD association's formatting tool, SD Formatter, from http://www.sdcard.org/downloads/formatter_4/.
Download the latest version of the NOOBS (offline install) operating system collection from http://www.raspberrypi.org/downloads.
Insert the SD card into the SD card writer (shown in the following image):
If the SD card writer is separate from your computer, plug it in.
Install and run the SD Formatter (shown in the following screenshot). Select the SD card you just inserted and click on Format. In this example, the SD card is drive G, but this will vary from computer to computer.
Note
Make absolutely sure that you have the right SD card selected. All the data will be lost from the formatted card.
Extract the contents of the NOOBS ZIP file to the SD card. The way this is done will vary depending on what software you have installed, but will typically involve double-clicking on
NOOBS.zip
, clicking on Extract or Extract to..., and selecting the SD card as the destination. There is a lot to extract, so this will take a few minutes to complete.Safely remove/eject the SD card and take it out of the SD writer, as shown in the following figure:
Now we can prepare the Raspberry Pi to start up for the first time. Place it securely on a desk or in a case. Make sure it is not in danger of falling on the floor, and do not rest it on top of the bag inside which it comes. We can start up the Rasberry Pi by performing the following steps:
Plug the SD card, screen, keyboard, and mouse into the Raspberry Pi. Also plug in the Internet cable if you have one, as shown in the following figure:
Plug the power cable into the Raspberry Pi. The red power light should come on, and the green Activity light should flash occasionally.
If necessary, adjust the screen settings to display the images from the Raspberry Pi's input.
You should see a selection of operating systems for you to install (refer to the following screenshot), each with a short description. This book relies on you having Raspbian installed, so select Raspbian and click on Install. You can always come back and select a different operating system later; I will explain how you can do this in the next section.
Wait. Operating systems are quite large, so the installation will take a few minutes. You can sit back and read some of the tips shown to you or read the next few steps in this book.
When the installation has completed, you should see a blue screen with a final list of options (shown in the following screenshot). This is the Raspberry Pi Software Configuration Tool. Most things should be set up the way we want them, but there are two useful settings to be changed. Select Enable Boot to Desktop/Scratch using the arrow keys and press Enter. Select the Desktop Log in option, and press Enter. You should now be back at the main menu. Next, select Internationalisation Options and choose your preferred language and keyboard layout. Use the right arrow key to move to Finish and press Enter. You can return to this menu any time by typing
sudo raspi-config
as a command line (refer to the next section for details).After a minute or so, the Raspberry Pi should finish rebooting, and you should see the Raspberry Pi desktop (shown in the following screenshot). This may be familiar to you. You can double-click on the icons to start programs, or select from a menu. We will mainly be using Scratch and Python in this book, but take a minute to explore what's available to you. In particular, there are several Python Games. These are the sorts of things that are possible after a little programming practice.
Now that your Raspberry Pi is up and running, you'll want to know how to keep it working properly and how to customize it to suit your needs.
Most of the time, it will be possible to do what you want to do using the mouse by clicking on different parts of the screen; however, at some point, you might find the need to use the command line, as shown in the following screenshot:

The command line is a completely text-based way of controlling a computer, and can be used to do just about anything that can be done by clicking and more. It is available on almost all computers, but is usually hidden away. Some computer users prefer using the command line because they can type faster than they can click the mouse!
Here is a very quick overview of some common commands. Open a command line by double-clicking on the LXTerminal icon on the desktop, and try these out. You will need to press Enter to inform the Raspberry Pi that your command has been executed. A longer introduction, including information on how to watch a movie in the command line, can be found online at http://www.techradar.com/news/computing/pc/1161712.
ls
: This lists directory contents. (Directory is Linux's word for a folder.) This command will list all the files and directories available to you in the current directory.cd <directory name>
: This changes the directory and allows you to move into another directory, so you can see its contents in the same way that double-clicking on a directory icon moves you into that directory. You can move through multiple levels of directories in one go by separating the directory names with/
, and you can go up to the parent directory (the directory that contains the current directory) using the special..
directory name.man <program name>
: This opens the manual and brings up lots of information about a particular program, including what it does and how to use it. It is very useful if you forget how to use something! Tryman ls
to see some advanced information about thels
command we tried earlier, and press q to quit. You can scroll through the information using the arrow keys or the Space bar.<program name> [extra information]
: This starts the program, and optionally passes some extra information to it. Try typing inscratch
to start the Scratch program (we'll cover more about this in the next chapter); or, if you are connected to the Internet, navigate tomidori
www.raspberrypi.org to open the Midori web browser and go straight to the Raspberry Pi home page.Tab: This key automatically completes a word. Even if you have not completely typed in the name of a program or file or folder, try pressing Tab. If there is only one option available that begins with the letters you have typed so far, the whole word will be completed for you. If there are multiple options (or none), nothing will change; you can press Tab again to display a list of possibilities.
The Raspberry Pi is an unusual sort of computer, so if you want to install a program, you either need to download a version that is specifically for the Raspberry Pi, or use Raspbian's package system.
A package is a program or a part of a program, and many versions of Linux (including Raspbian) maintain a list of all compatible packages, making it easy to keep all of your software up to date. You can update to the latest version of this list if you have an Internet connection by typing sudo apt-get update
in the command line.
Note
Be very careful when using the sudo
command. It forces the Raspberry Pi to do exactly what you tell it to do, without checking to make sure that the command is sensible. The command is useful in situations like this, where we want to make changes to the installed programs, but it also allows you to delete essential files. Double check your spelling before continuing.
You can search for available packages with keywords using the apt-cache search <keywords>
command. Try apt-cache search game
, for example, to see a list of the free games available. You could even try installing one (XBubble is good, for example). The name of the package is the first word of the line, and you can install a package using sudo apt-get install <package name>
.
To update all the installed packages to the latest available version, type sudo apt-get upgrade
.
Although the Raspberry Pi was designed to get people interested in computing, its cost and power make sure that it is also popular for other reasons. Since the Raspberry Pi is a general-purpose computer, it is capable of everything a traditional computer can do, but perhaps a little slower. There is a web browser (Midori), word processors, and web servers that are available. A common use case is similar to a media center, to watch films and view pictures.
There are many different operating systems included within the NOOBS package. You can see them if you click on Shift when the Raspberry Pi first starts to boot, as shown in the following screenshot:

This will take you back to the list you saw earlier when you started your Raspberry Pi for the first time. Each operating system comes with a short description. There are a couple of different flavors of Linux, the very fast RISC OS, and two different media centers, OpenELEC and Raspbmc.
If you want to try one of these operating systems, make sure you first back up all of your data as it will be erased when the new operating system is installed.
One of the main strengths of the Raspberry Pi is its fantastic community. If you ever have any difficulties, consider stopping by the Raspberry Pi forums at http://www.raspberrypi.org/forum/. Your question may have already been asked; if not, there are thousands of enthusiastic Pi owners on hand to help. The following are the most common issues:
My Raspberry Pi doesn't boot – only the red power light shows: This suggests that the SD card was not written correctly. Try following the instructions again, and if that fails, try a new SD card.
My Raspberry Pi randomly restarts by itself: This is usually because the Pi is not receiving enough power. Double check that your power supply is capable of supplying at least 700 mA (0.7A) at 5V. This should be written somewhere on the supply. Perhaps you can try upgrading to a 1000 mA (1.0A) supply if you continue to have problems. Also, make sure that you do not have particularly power-hungry peripherals plugged into your Raspberry Pi. For example, some Wi-Fi dongles and keyboards with very bright LEDs can cause problems.
I can't enter my password in the login screen: Nothing is displayed when the password is entered (not even stars) to minimize the information that others can gain from seeing the screen. It is likely that the keys are still being recognized; try typing in the whole password blindly and pressing Enter.
The display does not fill my screen or extends beyond the edges: This is because of overscan settings. Many old televisions had cabinets that overlapped a part of the screen, so images were given black borders to ensure that no part of the picture was lost. Many modern monitors, however, do not have this problem, so the black bars are just a nuisance. First try enabling or disabling the overscan settings by typing
sudo raspi-config
at a command line and selecting the appropriate option. If this still does not work, search on the Internet forRaspberry Pi overscan troubleshooting
for detailed guides.I can't see anything at all on the screen: If the Pi is definitely on and the OK/ACT light is lit or flashing, try pressing 1, 2, 3, or 4 on your keyboard to select different video modes.
In this chapter, we learned how to connect up a Raspberry Pi computer, write its operating system to an SD card, and start everything up. We learned that the Raspberry Pi is capable of doing everything a normal computer can do (and more), and that it is targeted at programming.
In the next chapter, we will use one of the provided programming languages, Scratch, to create our own version of Angry Birds.