A website of the Watkiss Online Group. Also see the First Aid Quiz Website.

Penguin Image

Raspberry Pi - Linux computer for learning programming

What is the Raspberry Pi?

The Raspberry Pi is a small computer. It's about the same length and width as a credit card and costs only $32. It has been designed as a educational computer for school children to learn to program, but is also hugely popular due to it's small size and amazing low cost. To understand more about the reason behind the Raspberry Pi then read this story.

Raspberry Pi Linux computer

The story of computer programming in the UK

Long long ago (in the 1980s) it finally became affordable to have a computer at home. These became the must have Christmas presents for children. At this time the BBC launched the BBC micro to accompany a TV series in computer literacy. The BBC micro was a big success with schools. The key thing about these computers is that the computers didn't have any of the GUIs that we see today, but instead presented the user with a prompt for the basic programming language. As a result kids learned basic programming at a young age. By the time that the kids reached university they were already quite proficient in programming. The result of this is that the UK was one of the leading countries in the world for software and game development.

Move forward a decade or so and universities are seeing that the number of people applying for computer science courses has dropped and the experience of those that do apply are not as good as in the past.

The problem with the current generation is that children are not learning to program as they did before. Computers that used to present a programming shell have now been replaced by computers with icons and menu buttons. Users no longer need to know anything about programming to use a computer. In addition the school curriculum no longer focuses on teaching programming with computer science being all but replaced by IT courses focussing on using office applications and spreadsheets.

The Raspberry Pi foundation hopes to restore computer programming as a key part of children's education, with the Raspberry Pi as a primary tool in achieving this. The low cost of the Raspberry Pi means that these are affordable for schools and so that children can have their own computer to play with. As this is dedicated there is no risk of the child breaking the family computer or of losing important data and the worst case is that the operating system can be re-imaged.

Learning Linux, programming and embedded computer

I am fully behind the objectives of the Raspberry Pi foundation. I also think that there are other things that can be useful for the UKs IT and technology industries as well.

As someone that has worked in the IT industry since 1996 I have found programming to be a very useful tool, but is only a small aspect of the work I've done. I believe that networking and system administration are also vital skills that the Raspberry Pi can also help to teach. This was the motivation around creating the PenguinTutor website to assist with children and adults learning the skills to become a system administrator and Linux certification through the LPI exams. The cost is low enough to allow these to be used to create clustered computers or load balanced systems which would otherwise be too expensive to setup.

Another area that I believe the Raspberry Pi could be useful for is as an embedded computer for use in learning electronics. In the past I was quite active with hobby electronics. After completing my electronics degree I stopped my interest in hobby electronics for a while as the cost and functionality of commercial devices compared with hobby electronics became too great. I became interested in electronics again when the Arduino was released as it opened up a new area of electronics in a way that is easy to use and low cost. The Raspberry Pi provides even more processing power and combined with the Arduino provides a great potential for embedded electronics, robotics and other systems.

The specification of the Raspberry Pi

The Raspberry Pi is an ARM based personal computer. It uses a broadcom System On Chip (SOC) processor that has integrated graphics capability. It has 256Mb of RAM (not upgradeable) and uses an SD card in place of a hard disk drive. There is a mini-USB port for power which needs to be connected to a USB or mobile phone charger to power the device. Video output is handled by a HDMI port or a composite video out. This allows the Raspberry Pi to be connected directly to a TV (either digital or analogue) without needing a dedicated monitor. If you would rather connect to a monitor then if it has DVI (unlikely on budget monitors) then that is compatible with HDMI; those with only vga input will need a convertor which are fairly cheap but with varying results. There are two USB ports for connecting to a keyboard and mouse or to a USB hub for connecting to other devices. There is insufficient power available at the USB ports to run any USB devices that need to pull a lot of power (eg portable hard disk drives), but those can be connected to a powered USB hub.

There are two versions of the Raspberry Pi. The model A is as defined above, the model B has the same spec, but also includes an Ethernet port. The Raspberry Pi does not come with a case. There are 3rd party cases available and there will be an official case in future.

Up and running

To get the Raspberry Pi working an SD card needs to be prepared with the Linux operating system installed. This can be done on a computer running Linux, Mac OS X or Windows with an SD card reader. There are different distributions available, I used the Debian image for this initial review.

The computer boots into a text prompt where you can then login and start the GUI (if required) by entering startx. This boots into X with the LXDE desktop environment. The look and feel will be familiar to most computer users looking a little similar to Windows XP, although with the addition of some Linux features such as the Virtual desktops.

The installed software is a little limited, mainly a browser and some programming languages. This is however Linux and is capable of running much of the open source software. There is a lot of open source software already ported to the ARM processor.

For those used to running a modern personal computer the Raspberry Pi may seam a little basic, but remember this is a very low spec computer. In terms of processing power and memory it's the equivalent of what computers were like several years ago. It is however truly remarkable that something so small and inexpensive can still run a modern day operating system and be usable. This is a thanks to both the hardware and the flexibility of Linux and the LXDE desktop environment. If this is your first look at Linux then you may be mistaken into believing that Linux looks a bit dated and lacks some of the features of other operating systems. That would be wrong, Linux is capable of far more and is much easier to use if regular distribution is installed onto a more powerful computer see beginners guide to Linux and choosing a distribution. For the purposes of learning to program (and also learning system adminstration skills and for providing a processor linked to electronics projects) then the Raspberry Pi is ideal.

Installed software

The following software is installed by default on the Debian Raspberry Pi image.

  • Browser - Basic but capable web browsing (no support for Flash)
  • Scratch - Simple programming language for young children based around drag and dropping actions
  • Python - Powerful programming language which is a good starting point for learning programming
  • Music player - Listen to you favourite music whilst you do a bit of programming

As mentioned already there is a huge range of other open source software that just needs to be installed, or in some cases ported.

What it's not and what it could be

There are a number of reviews of the Raspberry Pi that are comparing the functionality of the Raspberry Pi with a normal desktop PC or laptop. The reviews suggest that the Pi is underpowered or needs more memory and various other fixes. This is however missing the point. The Raspberry Pi is not a replacement for a modern computer. You shouldn't expect it to run as fast as even a low spec netbook, but then you shouldn't expect it for something that costs one tenth of the amount of other computers.

Having said that this is not a powerful processor there is a surprisingly large amount of things that you can do with it that go beyond the original objectives. It could be used as a basic webbrowser, as a simple webserver (just don't expect it to serve thousands of pages a second) or even as a media PC. It can even run some games, but we are talking about much older games such as Quake III; don't expect to get Call of Duty running on one just yet.

Summary

The Raspberry Pi is a small computer ideal for learning to program and learn system administration skills. It's also a great platform for driving electronic circuits (perhaps combined with the Arduino) or for dedicated computers such as media device.

The low cost and flexible connectivity options (HDMI / TV out) make it ideal for a child's bedroom without the expense of a computer monitor.

Using an SD card as the main storage allows full experimentation withe ability to start again if things go wrong.

It is not a desktop PC replacement.

Getting the Raspberry Pi

The Raspberry Pi has been a huge success since it was launched. I was up early on the launch day and managed to get one just over 2 months after the launch. Those that ordered later may be waiting up to 4 months for theirs. They have now ramped up production so in future the availability should be much better.

The Raspberry Pi is available from Farnell Element 14 or RS, although at the time of writing there is still a long waiting list.

More information

See the guides and blog posts relating to the Raspberry Pi. Also see the Linux Tutorials for more information on using Linux.

Electronics and add-ons

Projects

Next Linux documentation and help reference guide
Linux documentation and help reference guide