Author: Brendan Horan
Reviewer: Harry Fairhead
Practical Raspberry Pi sounds like a cooking lesson but this is about hardware rather than pastryware. For the right reader it might be just as tasty.
There are lots of beginner's books on Raspberry Pi, the low-cost, single-board, ARM-based computer that can be used for an amazing range of tasks. With a title like "Practical Raspberry Pi" you would expect a focus on projects and indeed there are quite a few, but they might not be the sort of thing you really want.
This also isn't a beginner's book. It has a feel of the sort of book that was produced early in the days of the microprocessor revolution in that it tells you a lot about the hardware.
Chapter 1 is a complete breakdown of the Pi's architecture at a level that most other books skip over. I found this really interesting but at the end of the chapter I was left thinking that while what I had just learned might have been interesting, it wasn't particularly useful. The information isn't complete enough to do anything with. You are told something about the instruction set but not a single line of assembly language is exhibited to show you what it looks like. Many times over the fact that parts of the Pi are proprietary trade secrets is discussed and how sad it is that this is the case and what a lot we can't use because of it. Again interesting but not practically useful.
Chapter 2 moves on to installing Fedora Linux rather than the off- the-shelf Raspbian. There isn't much logic for this other than the author's preference. However, it does give you some idea of how to build your own installations.
Chapter 3 gets on with the first project which is a temperature and humidity sensor. This really an excuse for introducing serial asynchronous interfacing and the one-wire bus. These hardware concepts are described quite well, but be prepared for a leap of understanding when we switch to the software. There isn't much introduction to what is going on and before you realize it you are reading a file that gives you the temperature via some Linux commands. Fine if you realize that Linux lets you mount hardware devices to the file system and you know that this means you can read the data as if the device was a sequential file. If you don't know this then its all going to look like magic.
The next few chapters deal with similar level hardware projects - an LCD display and a security device using a PIR and a pressure mat. These are described in enough detail for a beginner but only just and the big problem is that the software is in the form of shell scripts or Ruby rather than the usual easy to use Python.
Chapter 6 moves on from hardware to consider the technique of cross compilation, i.e. using a desktop machine to create programs for the Pi. Chapter 7 is about building a media center using OpenELEC and the well known XBMC. Chapter 8 adds a real time clock to the Pi; Chapter 9 is about working with serial interfaces and Chapter 10 is about controlling mains voltages.
The final chapter is very strange - a look at using other operating systems including Android, RISC OS, Plan 9 and Gentoo. It isn't entirely clear why you would want to do this except as part of a learning process.
The author's style is a bit odd and might put some readers off. It is very casual, tends to be repetitive and the level changes rapidly. The first time you hit the phrase "the magic smoke" it is vaguely amusing but it is well over-used as a way of indicating a problem. The text would have benefited from the sort of copy editing that just doesn't seem to happen these days.
The content is more the sort of thing you might find in a constructor's notebook rather than a coherent logical account. It is strongest on hardware and very weak on software - all of the software is command line old school Unix/Linux, which some readers might prefer.
It certainly isn't for the beginner but there are enough low level explanations to annoy an impatient intermediate reader.
I enjoyed reading this book despite being irritated by the style and sometimes the content. However, I can't really recommend it unless you are looking for something idiosyncratic and are prepared to be very tolerant of the approach.