The kind folks over at Wiley have sent me a few books to review and here’s the first!
The Raspberry Pi User Guide couldn’t come from better stock. It’s the work of Eben Upton, co-creator of the Raspberry Pi, and freelance technology journalist Gareth Halfacree. It has recently been updated and so this is the second edition that I’m reviewing.
The book opens with a great introduction, highlighting that programming is fun and giving an extensive behind-the-scenes look at the creation of the Pi. This introduction alone should be required reading for any Pi owner as it shows the original inspiration for the computer and talks about some of the minds behind it. After the intro, we start to get into the meat of the book. There is an illustrated section in which the various parts of the boards are described. I say boards, plural, because the differences between the model A and both revisions of model B are discussed. Each port on the board is also described in detail so you know why you’re plugging in the various bits and pieces. There is an extensive explanation of installing an operating system, though only NOOBS and Raspbian are really covered in any sort of depth.
The next chapter is all about Linux system administration. This is a great chapter as it shows you basic commands that you’ll need to organise your operating system. There’s also, slightly bizarrely, a section on the Pi Store. This would, I feel, have been better placed in a chapter on the GUI, X Windows, but I’m glad it’s covered.
An entire chapter is devoted to various troubleshooting issues that you might come across. Most of this boils down to power supply problems, something which affects a lot of Pi owners. It’s good to have this in the book, though, as it re-enforces the good advice that a good power supply is essential. Network configuration comes next and comes in two flavours: wired and wireless. The writers go very in-depth here, even down to installing firmware for your wifi dongle (which is less necessary nowadays as many dongles are supported by Raspbian out-of-the-box) and they cover setting up wifi with a GUI and via the command line, manually editing configuration files. It’s a good guide to a complex subject.
The next thing to be covered is the raspi-config tool. This is clearly very up-to-date as it includes registering your Pi with Rastrack, a relatively new addition to the tool. I would have liked to see this chapter before the networking chapter – it is, after all, the first thing you hit when booting up your Pi for the first time. The following chapter goes into more advanced configuration, including manually editing configuration files to achieve, for example, a different overclocking setting.
The next few chapters cover using the Pi as a media centre, an office computer and a web server. The web server chapter is excellent as it describes how to install a LAMP stack and WordPress to give you a full-functioning blog platform.
The next set of chapters is all about programming and this is where the book hits its stride as a guide for beginners. There’s an introduction to both Scratch and Python and sample type-in programs for both. After that, we’re onto hardware hacking using both breadboard and stripboard. There’s a rather nice guide to soldering, which could do with a few more pictures to show you how to hold the iron against components, but it’s a welcome addition as many people are ‘all at sea’ when it comes to soldering. The hacking continues through a thorough investigation of the GPIO and the various buses available. There is then a chapter on the camera module (a reference guide to the basic commands is at the back of the book). This is presumably a new addition to the book as the first edition was, I believe, published before the advent of the camera. This chapter is a nice touch as it takes you through connecting up the camera, through taking stills and video before finishing off with timelapse photography. The final chapter describes three GPIO add-on boards: the Slice of Pi (from Ciseco), the Adafruit prototyping plate and the Gertboard. I would like to have seen more boards covered here – these seem to just be the authors’ favourites – and perhaps this could be expanded on in future editions. Finally, there are a few reference chapters at the back – one with Python program listings, one on the camera module, as mentioned before, and one on HDMI display modes.
Overall, this is a very comprehensive book. Perhaps a reshuffling of the chapters and some of the sections would improve the ‘through-line’ so that you could build on your knowledge as you go. Some chapters, like the one on raspi-config, seem to be slightly out of place. The book is also slightly… schizophrenic. On the one hand, in my mind a User Guide should be for beginners and should have a feel of narrative, introducing concepts and then building on them from the ground up. This book, however, tends to use terms that only non-beginners would understand. It goes, perhaps, too deeply into some concepts without first of all ensuring that the reader is comfortable with the building blocks. That’s not to say that a beginner couldn’t get to grips with it eventually, however. It is more, I would say, at a reference guide level, rather than at an ‘introductory’ level.
I’d rather not criticise it further as it is clearly a well-thought out, well-written and well-researched book. All things considered, I think I’d give it 7.5/10.