Authors: Eben Upton and Gareth Halfacree
Audience: New users of Raspberry Pi
Reviewer: Harry Fairhead
A guide to the Raspberry Pi co-authored by the man who invented it. What more could you want?
This book isn't an official manual, but many readers expect it to be an authoritative guide. It isn't because it is aimed at the non-expert reader. It is an introductory guide to the Pi and its biggest problem is that it tries to cover far too much ground.
After some history of the project and a look at the sorts of things you can do with a Pi the book starts proper with Chapter 1 of Part 1. This is provides a general introduction to the Pi's hardware, including the recently released B+ model. There are no insider details just a fairly standard and complete description.
Next we move on to the topic of connecting the Pi. There are good accounts of connecting video, audio and other USB devices.
Chapter 3 goes into using Linux - mainly about setting up users, file systems and managing software. Next we have a look at troubleshooting which does go into Pi specific issues such as inadequate power supplies and odd keyboard problems.
Chapter 5 is specifically on the topic of networking. Getting connected via wired or WiFi. The command line configuration of WiFi is also discussed including how to download the firmware needed for each chip type - information difficult to find in one place. Chapter 6 moves on to the software configuration tool which is so easy to use it hardly needs a chapter to itself. Chapter 7 extends this to advanced configuration. A lot of the information supplied isn't going to do the average user a lot of good but, who knows,you might need it!
Part II is about using the Pi in various ways. Chapter 8 explains how to us it as a home theatre device - mostly Raspbmc. Chapter 9 is about using the Pi as a desktop replacement - using cloud based apps, then LibreOffice and finally as a web server using LAMP and WordPress. All good stuff, but a lot of the information is perfectly standard for any Linux based machine.
Part III is an introduction to programming with a chapter each on using Scratch, Python and Minecraft. What can you expect a single chapter to do by way of teaching you anything about programming? These are no more than tasters to alert you to the fact the Pi has these facilities already installed. Even so each chapter goes a bit further than it probably should for a complete beginner. So if you find that you get lost, don't worry - you just need more time to let it all sink in. It is a shame that the Python chapter uses Python 2 - if we keep introducing beginners to Python 2 we are never going to be able to forget it and move on to Python 3.
Part IV does the same for hardware as Part III does for software. It starts off with some explanations of what hardware you need - resistors, colour codes and where to buy components, which has a UK bias. Then comes a section on how to solder which is also out of place. If you are a beginner then you need a lot more help than this to get started. If you aren't a beginner the chances are you already know where to buy components from - and why not mention of Amazon as an easy to use source of otherwise hard to find components?
Chapter 15 explains the GPIO port in more detail and lists its additional features such as the UART, I2C Bus and SPI Bus. However. these explanations aren't enough to actually do anything much with. The only practical application is how to flash an LED and read a switch setting using Python. This isn't enough.
Chapter 16 is a look at using the Pi camera in both still and video mode and the final chapter is a catalog of add-on boards. Again neither chapter is more than a starter look at the topics and neither provides more than a list of possibilities.
The book closes with Part V which is a collection of appendices and program listings.
It is easy to be hard on this book because it doesn't go far enough, but it is supposed to be a user guide and hence it probably shouldn't go too deep into anything. If it has a failing it is probably trying to aim too high at various points. In the programming section there is the possibility that the reader will be put off learning Python because the pace is too quick and doesn't emphasise what the key ideas of programming are. In the hardware section the problem is the while it provides resistor codes and even a section on how to calculate a current limiting resistor for an LED, there isn't much to bootstrap the beginner's knowledge of electricity. It might be better just to go through explaining what the GPIO is and then supply a recipe to flash an LED and detect a switch - and leave soldering for another book.
If you want a fairly basic introduction to the Pi this is not a bad choice and it has some interesting bits of information that will keep you reading, but an authoritative guide book it isn't and it will disappoint even the moderately knowledgeable Pi user.