A year ago at OSCON I was on the exhibition floor and discovered a great booth called Maker’s Shed. They’re connected with O’Reilly’s Make magazine, which is a quarterly journal for harware hackers — folks who actually enjoy dissecting electronics, building hardware gadgets, modifying things, and aren’t afraid of either circuits or soldering irons. But it wasn’t until this year back at the conference I really got “sucked in”. I really had no idea what a huge cottage industry this hobby has become! The net is full of websites with all sorts of do-it-yourself electronics projects and discussion boards for sharing tips and ideas.
In particular, a huge hub of activity has centered around the Arduino board, which is a little circuit board containing a basic 16mhz Atmega CPU. It has multiple digital and analog input and output pins; it can be powered either by a 9V battery or by a USB cable; it’s able to speak to a host computer via that same USB cable as well. The thing is tiny, and the spec is entirely open source. While the original Italian manufacturer still sells them like hotcakes for $30, the open-source spec has spawned a bunch of clone competitors as well. Whatever the case, the Arduino seems to be ground zero for a lot of crazy experimentation these days. All you need to do is add sensors (switches, knobs, photo-sensors, temperature sensors, tilt and accelerometer sensors, microphones, etc.) and add whatever actuators you want (motors, LEDs, or network modules!) You download a simple programming environment, write code in a simplified java/C hybrid language (see the Processing site), and poof, the IDE cross-compiles your code and pushes it down to the Arduino. The CPU starts executing it in a loop right away!
It’s the low barrier to entry that seems to have caused this hobby to take off. The USB cable is an incredibly simple way to supply both power and data/communications. The board itself has +5V to power most simple sensors and actuators: just use jumpers to connect the pins to a solderless breadboard, and you can prototype any gadget in just a few minutes! A whole secondary “accessory” industry has taken off as well: if you look at this list of parts, you’ll see all sorts of Arduino extensions for sale: bluetooth modules, ethernet modules (which speak TCP/IP on-board!), motor modules, wi-fi mesh-network modules, GPS modules, sound modules… even an autonomous blimp you can control via IR or RF!
Youtube and other places are full of all sorts of videos demonstrating how to build things, solder things correctly, test circuits with a multimeter, and so on. I’ve been particularly enthralled with Lady Ada’s site. She’s got instructions to build a dozen crazy-cool projects, and seems to be doing well by selling all the parts to her readers as convenient little “kits”. I particularly like her design for a DIY “TV-B-Gone”, and the pocket-sized RF jammer. No, she won’t sell the parts for the jammer, since it’s technically an illegal device. 🙂
So I dived in last week and bought the Advanced Starter Kit, which is fairly good. Lots of parts (though unlabeled/undocumented), and comes with a big book of recipes. For people starting with very little EE background, however, you’ve absolutely got to get the Getting Started with Arduino book, which is written by a company co-founder and is a quick read. For my first project, I built something similar to what he demonstrates at the end of the book: a tri-color RGB LED hooked up to a solderless breadboard, then linked into the Arduino:
…just pop it all into a travel soap-box, and pop a ping-pong ball on top to diffuse the light:
Voila! Just plug it into a big computer, and write a program to poll some internet data and then send RGB colors to the device. You can make it any color you want, have it flash, pulse, whatever. I’ve set it up in my office in the middle of our cube space, such that it reflects the status of our team’s continuous build. Sweet.
One last thing I’ve discovered: I have no real electronics background. Sure, I remember adding up resistors and capacitors in series and parallel back in high school, but it didn’t mean anything to me. Now I find myself asking questions like “why did they put a resistor at that point in the circuit?”, and it frustrates me not to be able to design a sound circuit the same way I design software. One of the more experienced EE folk here at the office advised me that “hardware engineers do the same thing as software engineers: they use high-level design patterns. They memorize circuits for accomplishing certain things and then plug them together.” I guess that makes sense, but I’m a top-down learner and really craved the underlying theory of semiconductors and such. So I ran off to my local Radio Shack and bought this classic Forrest Mims book on the fundamentals of electronics. It was written in 1983, seems to have been re-printed a dozen times, and seems to be the most popular intro book ever written. It’s really awesome, and I’d recommend it to everyone starting to fool with the Arduino. It’s in stock at almost every Radio Shack store, and the website will even tell you which stores have it.