Manual override: Raspberry Pi beginners' books

Feature The Raspberry Pi has been out for just over a year now. It has undergone a couple of revisions during that time, most recently around October 2012, but a short while ago I decided it was time I ought to try it out and see what the diminutive, Linux-running micro can do.

Entirely coincidentally, the Raspberry Pi Owners’ Workshop Manual arrived on my desk from Haynes, the amateur mechanic’s friend - which has long since widened its remit beyond motor cars. It’s written by Gray Girling, who briefly worked at Acorn in the early days and has been involved in serious programming projects, much of them at an academic level, ever since.

The Raspberry Pi User Guide, on the other hand, is co-written by Eben Upton, one of the device’s creators, with help from writer Gareth Halfacree. It was the first professionally published Pi book, and the one any fan of the device is most likely to take a look at first. I asked publisher Wiley for a copy, which it kindly supplied, along with the just-published Raspberry Pi for Dummies, written by author Sean McManus and electronics buff and erstwhile physics lecturer Mike Cook. The Dummies book is nominally pitched at the same kind of audience as Raspberry Pi in Easy Steps, written by Mike McGrath.

Finally, O’Reilly’s Getting Started with Raspberry Pi, by relative youngsters Matt Richardson and Shawn Wallace, comes out of the "maker" hardware hacking community that has grown up in the US around the likes of the Arduino board and is embracing the Pi too. I wanted to see if it would give new Pi users a more hardware-centric introduction to using the diminutive micro.

Less than a year old, the Raspberry Pi User Guide is showing its age
Click for larger page sample

If the Pi is the modern answer to the BBC Micro, the Commodore 64, the Dragon 32, the ZX81 and the Spectrum - though it owes as much to the early "board computers" like the Nascom 1 and original Acorn Microcomputer - then all of these books are notionally the equivalent of the Basic programming manuals, user guides and "extra information for machine code programmers" sheets that were bundled with all of those 1980s micros.

Unless your old man bought your computer for you from Boots or WHSmith, you had to send off for it, clipping out a coupon from a magazine like Personal Computer World and posting it off with a cheque. Maybe your computer would come in a month, maybe it wouldn’t. These days, at least, you can pass the time while you're waiting for your Pi to be delivered by downloading the all software you’ll need, and acquiring the accessories you’ll require.

RTFM

PCW has long since gone off to the great sale-or-return warehouse in the sky, and the wait for your Pi is thankfully not quite as protracted as the one for a Spectrum. With manual separate from machine, you have time before delivery to read through the guides’ introductory chapters and, in the case of the Raspberry Pi Owners’ Workshop Manual, explore some of the theoretical background to programming languages and operating systems, which Girling includes as a preliminary to his introductions to coding in Python and making use of the Linux command line interface.

All of the book listed here walk you through the process of setting up your Pi’s storage card, though the Haynes book neglects Mac users, providing set-up instructions only for Windows and Linux. Most of other books cover each of the three major operating systems, but Raspberry Pi in Easy Steps is only aimed at Windows users. That said, it does give Linux newbies help understanding what’s what on the LXDE desktop. Raspberry Pi for Dummies does too, though in less detail, and the others focus on the command line.

Only two of them provide much in the way of troubleshooting assistance: the Raspberry Pi User Guide and Raspberry Pi for Dummies. Follow any of the books’ instructions and you shouldn’t run into difficulty, but there’s always the chance you have quirky or incompatible add-on hardware, and these two at least offer some guidance as to how you might resolve your problems.

Upton and Halfacree also take you through the Pi’s three central configuration files - config.txt, cmdline.txt and start.elf - something Girling and the others neglect, though the Raspberry Pi Owners’ Workshop Manual does at least include an appendix listing many of the Pi-specific settings config.txt contains - handy for the advanced Linux user but nicely tucked out of the way so it doesn’t scare the bejesus out of novices.

Just published, Raspberry Pi for Dummies is ebulliently written but packed with information
Click for larger page sample

This is how it should be. After all, the Pi comes with its own configuration utility, raspi-config, which starts up automatically the first time you boot the device up. This tool hides the contents of those configuration files behind an accessible UI, tweaking them on your behalf. Girling reasonably assumes this is how you’ll configure your Pi, as do most of his fellow authors. Only Upton and Halfacree have you hacking the configuration files directly, though they don’t get there until Chapter 6, after a chapter on partitioning drives - surely a step too far for newcomers, but one long-time Linux users will already be well acquainted with.

To be fair to the pair, hacking configuration files might have been how you had to tweak the Pi back in mid-2012 and the "early" days of the computer. But the community doesn’t sit still, and both the Pi’s standard OS and its tools have been updated since then. At various points, the Raspberry Pi User Guide has you download code that is now incorporated into the Pi’s Raspbian Linux distro, or re-adjust the configuration files, for example to give the CPU an even bigger share of the Ram than the GPU gets, tasks more easily and safely performed with raspi-config. The User Guide is already becoming out of date.

Up to Scratch

Still, you can see its influence on the other, later books. All of them follow its template, walking the reader through setting up the computer and getting to grips with the Linux command line. Python tutorials and assorted software projects follow, before wrapping up with a look at the hardware. The same kinds of projects - Pi as media centre, Pi as web server, Pi to control connected LEDs - are largely repeated from book to book.

Raspberry Pi for Dummies is the most extensive of the Pi guides, taking in getting office apps onto the Pi - the User Guide covers this too - along with writing HTML and CSS for websites, and even using GIMP for basic photo editing. Despite warning that the Pi is too underpowered to replace a regular machine, Dummies nevertheless does what it can to assist folk who want to use the Pi that way, in the series’ established chirpy, propellor-head style. Getting Started with Raspberry Pi’s authors are enthusiastic too, but fortunately not on the same perpetual high as the Dummies editors.

Getting Started with Raspberry Pi is a great introduction to the Pi, but not a reference work
Click for larger page sample

Girling, as I say, prefaces his Raspberry Pi Owners’ Workshop Manual coverage of Python with some general theory of programming technique which is interesting, but helps lend his book a didactic air that makes it feel like a coursework at times. It’s certainly less engaging than the more informal Getting Started with Raspberry Pi or even the Raspberry Pi User Guide. With its frequent references to the history of computing, and of the ARM chip and its BBC Micro heritage in particular, and its emphasis on writing programs rather than scripts or interpreter input, the Raspberry Pi Owners’ Workshop Manual feels as if it was written with the fortysomething former user of one of the 1980s home computers and computer science undergraduates in mind rather than the youngsters the Pi was created for, or non-techies keen to try their hand at coding.

A case in point: Girling completely ignores the Pi’s preloaded Python tool, IDLE, leaving the reader in the dark as to the function of the applications they’ll see on the desktop the first time they boot into the Pi’s GUI. He opts instead for a more sophisticated IDE, Geany, which is a better choice for coders who want to maintain multiple source code files and have them all open at the same time. That’s how college kids are taught, in preparation for writing large, modular programs, but it’s an approach programming newbies and amateurs are unlikely to consider.

The Haynes manual also leaves aside Scratch, the child-centric flowchart-as-coding tool. Scratch is a great basis for getting kids to think logically and to assemble programs without getting bogged down typing and remembering keywords. My 10-year-old loves it. But he got no help from Girling and Haynes.

I pointed him toward Raspberry Pi in Easy Steps at first. Its approach to Scratch - and, indeed, all of the Pi features it covers - is to provide a series of short step-by-step walkthroughs. They’re easy to follow but light on explanation. Chapters build on what has gone before, so it’s not a book for dipping into. I spent a lot of time answering questions which the book’s author, Mike McGrath, doesn’t address. It’s a book for people who want to follow instructions, not folk who want to understand "why" as well as "how".

Have a Bash

Raspberry Pi for Dummies, Getting Started with Raspberry Pi and the Raspberry Pi User Guide are perhaps too wordy for young kids eager to create games with Scratch - no RTFM for them - but of the two Dummies offers by far the best exploration of the application and is the more thorough. Upton and Halfacree nod toward further uses, such as feeding Scratch with sensor data - as does Getting Started with Raspberry Pi - and using it to control robots assembled out of Lego.

The Raspberry Pi Owners’ Workshop Manual may take no notice of Scratch, but it covers shell scripting and the C language - another pointer to its real audience. Only within the various software projects, though. There’s no extensive introduction to either of these languages of the kind as he provides for Python, yet there’s rather too much "oh, and you can also do this in Python" in later parts of the book. This may well be handy for the more experienced user, but it makes the Haynes manual more confusing for the novice than it need be.

Having been taught to think about programming the Pi with Python, newbies are then forced to negotiate C code in order to access certain Pi components and features before they’re told how to do so with their new language - and in a way that often amounts to converting the C code into Python.

Looking for easy and untaxing? Raspberry Pi in Easy Steps is for you
Click for larger page sample

It’s easier for an experienced user to spot and skip the parts of a book they don’t need to read, than for a novice to do so. Better then to have written the Raspberry Pi Owners’ Workshop Manual from the newcomer’s perspective and provided the more advanced information as supplements to each chapter.

Girling doesn’t provide standalone chapters as the others do on the pygame Python library of code for games - Raspberry Pi in Easy Steps even covers the Tkinter library, used to give Python apps standard GUI elements, though in its usual cursory fashion - but he introduces it and other libraries through the projects he provides. You can argue that this is a better approach: give readers the information when they need it, but it makes the Raspberry Pi Owners’ Workshop Manual less useful for looking things up, or as a read-through Python tutorial.

Getting Started with Raspberry Pi, Raspberry Pi for Dummies and the Raspberry Pi User Guide work better read cover to cover. The former is particularly successful in this mode, as it’s not pretending to be a reference work the way the User Guide is. Neither is it as verbose as Raspberry Pi for Dummies. Like Raspberry Pi in Easy Steps, it’s a book you can start on page one go straight through to the end. Getting Started, however, will leave you feeling you’ve learned something and not simply repeated page after page of instructions.

Soldering on

Richardson and Wallace uniquely provide a guide to connecting the Pi up to the Arduino board, and they also detail some basic hardware projects that builds on their introduction to Python and pygame and is more involved than turning on some LEDs, which is as far as Easy Steps takes you. They spoil it a little with their rough, imprecise sketchbook illustrations. Not so the colourful, large size Raspberry Pi Owners’ Workshop Manual - though its tactic of highlighting all the program code, the better to make it stand out in a two-column page format, actually works against its intentions. Still, Girling’s projects are all well-illustrated - and there are a lot more of them than the other books offer, even though it’s a shorter work than Raspberry Pi for Dummies.

Getting Started does present some nice beginners’ projects, including a household lighting timer which is later expanded with internet connectivity, and a cute augmented reality project using a webcam. The Raspberry Pi Owners’ Workshop Manual provides a more reference-style, bus-by-bus guide to the Pi’s General Purpose Input/Output (GPIO) - how the User Guide does it too - though there's a nice Twitter alert project that ties into the Pi-Face add-on board. The User Guide takes in Fen Logic’s Gertboard and a couple of others as well: Ciseco’s Slice of Pi and Adafruit’s Pi Plate.

Not quite the Raspberry Pi bible, but the Raspberry Pi Owner’s Manual is a good reference
Click for larger page sample

The project-centric Dummies, like Getting Started, takes a "here's what you can do" approach rather than the "here are what the pins do" perspective of the other books. It's comprehensive: you’ll find a refresher on electronics theory and a guide to good soldering if you need one. It covers GPIO input and output through a pair of physical game units you can build, and takes you out into the analogue world too. It even has you building your own breakout board.

The Reg Verdict

Raspberry Pi in Easy Steps is very accessible, but I soon found its pared back approach too limiting. I wanted to know more than it’s able to provide. Getting Started with the Raspberry Pi is a short book too but, unlike Easy Steps, you can read it - and you can dip back into it later when you want to refresh your memory on a point or two.

It’s also honestly titled: it is a guide to get you started with the Pi and makes no pretence that it’s a reference book too. This is a problem with the Raspberry Pi User Guide. It’s a very readable getting started book too, but its name suggests to me it also contains information you can look up rather than read sequentially, which in fact it lacks. It’s also quickly becoming out of date in many respects, which makes Raspberry Pi for Dummies - just out from the same publisher - seem even like 'User Guide 2.0'. The two books’ structures are almost identical, though I found the User Guide a better read because of its straightforward style. Dummies is too exclamatory for me.

I have to admit I enjoyed reading the Raspberry Pi Owners’ Workshop Manual less than some of the other books I’ve covered here, but that’s mostly because of Gray Girling’s academic style and because - to be fair - this isn’t a book written for reading cover to cover. It’s intended, I think, to be a more dip in, dip out work. But there’s no question that Girling offers far more things to do, in much more detail than any of the other authors do.

This is a book I will return to, though I’d be even more inclined to so if it was available in digital form. All the others are. I’m a long-time Classic Mac OS and Mac OS X programmer, but I hadn’t done any Python coding until I got my Pi. Getting Started with Raspberry Pi had me using the language quickly and gave me good understanding of the Python way of doing things, but the Raspberry Pi Owners’ Workshop Manual offers me more ideas about things to try next - not that Getting Started is short of suggestions. Personally, I’ll ignore many of the software projects it contains - I already have a media centre and I've no desire to run a web server - but I am interested in trying out the Pi’s facilities for controlling connected hardware, and there are many starting points for such exploration here. Likewise Raspberry Pi for Dummies.

Girling crams a lot of information in too, though with so much data presented through tasks - and the book is, as it says, a manual - you miss useful things by not working through them. Of the five books I’ve looked at here, the Raspberry Pi Owners’ Workshop Manual comes the closest to being the Raspberry Pi Bible, but it’s not there yet.

True, there’s a lot of this kind of information in Wikis, but I’m an old-fashioned kind of gent, and I rather like having that information at my fingertips in a format I can quickly flick through from index to entry. And one I can enjoy reading. Publishers, please take note. ®