This post’s electronics experience rating: ABSOLUTE BEGINNER
A question I field often is: “What kind of board should I buy to learn how to do this stuff? Where do I start, hardware-wise?” And there are two boards I tend to recommend, in the end—which is why they figure so prominently in my book (Don’t worry, I’ve provided some other educational links for each in case my shameless plug is…shameless).
What’s a Development Board?
Let’s not go off half-cocked with a major undefined or vague term. What’s a development board, anyway? In my book I use the following definition:
Development boards, also called prototyping boards or just boards, are physical development platforms that combine a microcontroller or other processing component with useful supporting features. They are the bread and butter of the hardware-hacking lifestyle. Boards range in cost from just a few bucks to over $100 for high-end [Single-Board Computers, a.k.a.] SBCs.
When setting off on a learn-electronics journey, choosing a board is a solid first step. It’ll determine the trajectory of your explorations.
Photo: A selection of development boards. Clockwise from top left: Texas Instruments Launch Pad, Arduino Uno R3, Adafruit Trinket 5V, Particle Photon
Ideal Things for a Beginner
Features that make a development board ideal for beginners include clarity, constraints and ubiquity. Put another way, good dev boards for n00bs have simple, obvious features and are used by a whole crapload of folks.
Clear, Intuitive Features
A good beginner dev board should support a reasonable set of I/O features (note: this is usually dictated by what features the board’s microcontroller can support). Different pins on the board support different features, which should include—at the least—digital I/O, analog input, PWM (pulse-width modulation), ADC (analog-to-digital conversion) and serial support (including I2C and SPI). Don’t worry a tick if you haven’t heard of any or all of those things yet.
Pins should be sensibly laid out and named (or, often, numbered). Many boards have pin numbering and capability information helpfully silkscreened onto the board itself. A board with missing key features, nonsensical pin layout or a confusing pinout diagram can make you wish you hadn’t bothered.
Photo: Detail of the Arduino Uno (R3) board showing silkscreened pin numbers.
The more things you can do with a dev board, the more distracted you can get. While a juiced-up microcontroller, or more flash memory for your programs, or additional peripherals and goodies sound tempting, they’re also potentially pits to wallow in and get overwhelmed.
Limits to the oomph of your first dev board can paradoxically be freeing, allowing you to zero in on the fundamentals of electronics hackery without suffering from the angst of overchoice.
For example, despite their popularity, I’d recommend against the Raspberry Pi family for introductory electronics explorations. So much is possible with the Pi platform that it can be distracting and overwhelming if you want to focus on electronics fundamentals for a bit.
Also, Pis fall short in feature complement: while they certainly have some on-board I/O capabilities, their convoluted pin numbering, limited PWM (pulse-width modulation) support and complete lack of ADC (analog-to-digital conversion) makes introductory I/O hackery potentially confusing and frustrating.
An aside, though: If you want to tinker around with projects that make use of the Pi’s general-computing powers—for example, cobbling together a tablet-like PC for your kitchen—by all means, do! They are fantastic tiny computers, just not the most ideal beginner electronics platforms.The newer Pi 3 is especially fantastic, by the way.
When you’re choosing your first dev board, you’re focused on learning how to do things with electronics. Getting sidetracked by a platform’s idiosyncrasies (or, even, bugs) is not only annoying, it can be derailing. At this point in your journey, it shouldn’t be your job to figure out whether a component or project is misbehaving because of some arcane wonkiness in the hardware (or supporting firmware) itself. Working on a well-tested platform is helpful here: when an LED fails to blink, it’s more than likely pilot error; you can factor out most (but never all, truth be told) random flakiness when trying to figure out what’s up.
And when you do get stuck or confused, it’s awfully nice to have a big corpus of support to turn to.
For both of these—stability and support—an underlying core factor is the platform’s popularity, its relative ubiquity. For beginners, choosing a platform that is widely used and has been around for a while can be a sanity-saving tactic.
Two Different Approaches
At the end of the day, there are certain dev boards that tick most of the boxes time and time again, for each of two approaches (and you choose your own adventure here!):
- Learning key electronic fundamentals: In this path, you’re really focused on understanding electronic principles on a fundamental level. This is for you if you’re innately curious about the interactions of current, resistance and voltage (howdy, Ohm’s Law!) and, really, how things work physically. This path is lower-level but leads to a wide competence in low-voltage DC circuitry (believe me, this really does come in handy in life!).
npmecosystem of Node.js available to you. This will require a more sophisticated microcontroller/processor than those needed for the first path.
First Choice for Learning Electronics Fundamentals: Arduino Uno R3
Ohmigod, how boring! you might be lamenting. I’ve just held up the non-cutting-edgiest, pedestrian, and basically first open-source board as a shining example of newbie awesome.
Illustration: A bad artist’s impression of the Arduino Uno (R3) board.
Yes, it’s true, the Uno has been around since a long time, and, also true, is seriously not flashy, but it really is a platform of the people. Its relative stodginess is a blessing when compared to the immaturity and fragility of many boards. Sure, working with one won’t give you the smug frisson of novelty, but it will, in most cases, actually work. The Uno does what it says it does. If it didn’t, there are a lot of people who’d be irked.
Statistics are spotty at best, but even back in 2013, 700,000 official Arduino boards had been “registered”, with an estimated 700,000 additional “derivative or clone board[s]”, that is, about a one-to-one ratio (source).
Let’s talk about a couple of things here. First: Arduino is a family of boards, and the 700k number references Arduino boards of all stripes, not specifically the Uno (though the Uno is the most popular, and, no, I don’t have a good source for that but it certainly seems to be the damned case). At the same time, it’s been several years so surely there are many more. All right, that’s out of the way.
The “derivative or clone board” notion arises because while Arduino is open-source, “official” ones carry the Arduino logo and can only be made by certain blessed manufacturers. Non-official ones are fine, too, but there is a bit of a thing with knock-offs that have the logo but shouldn’t, so-called “counterfeit” Arduinos, which are cheaper to buy but potentially shoddy.
Here’s how the Arduino Uno R3 stacks up:
- Clear, Intuitive Features: Unos have clearly-marked I/O pins, laid out sensibly. An added bonus: pins that support PWM are marked with a tilde (~) and, once again, don’t worry if you don’t know what that is, yet. While Unos certainly aren’t the most svelte form factor, their roominess gives you plenty of space to maneuver. Unos, or, more accurately, their ATmega328P microcontrollers, support all the requisite basic features just fine.
- Constraints: That selfsame ATmega328P microcontroller is 8-bit, running at something like 20MHz, and it only has 32kB of Flash memory (space for your programs). That’s really constrained. You’re not going to run any kind of (recognizable, let’s not get clever here) OS on that, that’s for sure. But it totally fits the bill for doing all the classic things you do when learning embedded electronics.
- Ubiquity: It doesn’t get more ubiquitous. Also, the ATmega328P is a battle-tested microcontroller; it’s reliable and sensible.
Expect to pay about US$25 for a certified Arduino Uno R3, considerably cheaper if you’re willing to take a risk on reliability, which, at this stage in the game, I wouldn’t?
The Uno: unglamorous, reliable, and the sui generis for educational hardware hacking. There is really no substitute.
Learning Electronics with the Arduino Uno
OK, so there is this fantastic book—brilliant visual design, clear instructions, just in all ways excellent. It’s called Arduino Projects Book. But there’s a pretty major downside: you can only get it if you purchase the (official) Arduino Starter Kit. That’s a bit of a bummer, but I will say: that starter kit rocks. It’s worth getting if you can spare the extra funds (they’re currently retailing at $85). Of course, there are tons of other getting-started books on the market if you Google around a bit.
First Choice for Web-Connected Devices: Tessel 2
And now for something completely different, and lightly violating what I said about constraints and ubiquity: the Tessel 2 board. The Tessel runs an optimized-for-embedded Linux distribution, OpenWRT, and has enough oomph to run Node.js on-board. So, if you’ve selected the “Web-Connected Devices” adventure, you can
npm to your heart’s content and do some pretty complex, nifty software things in short order.
Like the Arduino, Tessel is an open-source platform. Also like the Arduino Uno, the Tessel’s pins are sanely organized and labeled and the board supports all the major features you’d expect. It’s a more sophisticated device than the Uno, with a separate co-processor for handling I/O. There are some frills. You’ll likely put the on-board WiFi to use straightaway. There are two USB peripheral ports, which are fun to play with but I’d recommend keeping it simple to start and ignoring those initially.
Here’s how the Tessel 2 Stacks Up:
- Clear, Intuitive Features: Tessel 2’s pins are organized into two “ports” of 10 pins each (two power pins and 8 I/O). They’re straightforward to figure out. The workflow will feel familiar to web and Node.js developers. The on-board WiFi is a real boon for building web-connected things.
- Constraints: The Tessel can do more stuff than the Uno and that’s potentially overwhelming, but if you resist the temptation to futz around with interesting features of its OpenWRT OS and the USB peripherals right away, it can provide a focused learning platform, especially paired with Johnny-Five.
- Ubiquity: Straight up, the Tessel 2 doesn’t have a massive user base. But it’s growing into itself and maturing. Johnny-Five recently had its fifth birthday, and has a wide community of contributors and supporters.
Learning Electronics with the Tessel 2
SparkFun sells a complete Johnny-Five Inventor’s Kit, which includes a Tessel and a bunch of components (disclaimer: I was involved in writing the experiment guide. Even if you don’t buy the kit, that guide is pretty exhaustive (tons of great effort from several committed people!).
You may have noticed I don’t have any commenting enabled...yet. Hit me up @lyzadanger with thoughts; maybe I’ll add commenting soon.