Junk Box Arduino appeared earlier this summer from Jim Strickland, and I’ve been dipping into it gradually as time allows. In case you’re TL’DRing on me, I’ll give you the money quote: This is in fact the Assembly Language Step-By-Step of Arduino-based electronic tinkering. I’m a good test case: I’m passionate about electronics (some of you have seen my junkbox, which now fills one smallish garage and our repurposed tack house) and I have an Arduino board on my Heathkit ET-3200 logic breadboard box. Decades ago I did some modest embedded work with the RCA COSMAC CPU line, the most important of which was my robot, Cosmo Klein. Before that I did a lot of things with CMOS and TTL, using Don Lancaster’s books as guides.
Jim’s book is how you begin with Arduino if you have some grasp of computing (as most people do these days) but not electronics. And the book is the polar opposite of academic electronics texts with lots of equations but few photos and nothing at all in terms of bench smarts. The grit and grime of practical electronics is everywhere here: This is the first electonics book I’ve ever seen with warnings like jumper cables wear out. They do, and trying to troubleshoot a visually intact but electrically open jumper is a circle of Hell that I’ve visited more than once, in both digital and RF electronics.
Junk Box Arduino goes all the way down to the (literal) metal, and explains how to build an Arduino-compatible circuit right on a broadboard block. You don’t buy a Cestino board; Cestino (which is Italian for “recycle bin”) isn’t a board, but rather an original design from Jim that you wire up yourself out of loose parts, including an ATmega 1284P CPU chip and a 20 MHz can oscillator. Building the Cestino is in fact the first electronics lesson in the book, with Ohm’s Law looming large. The second lesson is building your own in-system programmer (ISP) so you can program the ATmega chip’s bootloader yourself. No, this isn’t a waste of time. Once you build your own ISP you will know how an ISP works, and teaching you how things work is Jim’s mission throughout the book.
The projects run from the simple and obvious (but still necessary) things like flashing an LED all the way up to highly sophisticated circuits like an ATA disk device reader, a Flash programmer, and even a Z80 CPU lashup that teaches how CPUs and memory work by letting the Cestino control the Z80 and allowing us to look at registers and memory while the Z80 executes slowly or pauses in its tracks. Along the way Jim explains assembly and machine language, object-oriented programming, transistor operation, serial communication, and much else.
Which leads to my only real complaint about the book, which has nothing to do with the writing and may be an old-guy thing: The type is fairly small and there is a great deal of material on the pages. This is really a 600-page book laid out in 400 pages, and I understand why with the sanguine clarity that comes of bloodying your own fingers (which I have) trying to get unit costs on books down.
Don’t let that stop you. The book is a helluva deal for $35 ($22 on Amazon.) It’s one of a bare handful of technical books that I wish I had published back when I was still a publisher. If you have any hopes of making an Arduino control anything electronic, this is a must-have. Highly recommended.