here. They’re usually more difficult to interface hardware to than simpler controllers. For experienced
programmers, it’s too tempting to stay in software
rather than experimenting with circuits attached to
their board. For software beginners, the challenge
of getting an operating system started from the
bootloader can be an insurmountable hurdle.
PICKING YOUR FIRST CONTROLLER
Focus on ease of use. You’re learning to program
and learning to build a computer. Starting simple
will keep your enthusiasm high.
Don’t be seduced by features. Apollo spacecraft
made it to the moon and back with less processing
power than most microcontrollers have. Don’t be
tempted by the fastest, or the one with the most
memory or I/O, at the expense of simplicity.
GET A STARTER KIT
Here are some components you’ll need regardless
of the platform you choose:
10k » Ω resistors
220 » Ω resistors
Wire strippers »
Diagonal cutters »
Jumper wire »
discussion threads. Do a few web searches for the
microcontroller you’re considering. Is there a lot
of collected knowledge available in a form you
understand? If nobody besides you is using your
controller, you’ll find it much harder to learn, no
matter how great its features are.
What’s the “Getting Started” guide like?
The time you’re most likely to give up on microcontrollers is in the first hour. The Getting Started
guide should take you from zero to blinking an LED
or reading a switch in a short time. Read it before
you buy. If you don’t understand any of it, or it
doesn’t exist, be wary.
How easy is it to add extra components?
If there’s a particular component you want to work
with, check to see if someone’s written an example
for how to use it with the controller you’re considering. Most controllers offer 16 or so I/O connections,
which is plenty enough to get started. Tools for
expanding your I/O, such as shift registers and
multiplexers, are compatible with most controllers.
How complicated is the programming environment? The program in which you write your code,
called the integrated development environment
(IDE), should be easy to understand. Download the
IDE and check it out before you buy hardware. If
you don’t feel you can understand it quickly, keep
Is your operating system supported? Most
microcontroller manufacturers focus on the
Windows operating system. Some have third-party
support for Mac OS X and Linux. Learning from
friends is common, and being able to have the
same user experience on different operating
systems is helpful for that.
How expandable is the programming environment? I/O boards and very simple languages make
getting started easy, but you’ll reach their limits
quickly. If you’re experienced in programming or
electronics, you want to feel liberated by a platform’s simplicity, not limited by it.
What’s the community knowledge base like?
You’re not just getting hardware, you’re getting a
community. Every controller has websites and email
lists dedicated to its use; check them out, look at
the code samples and application notes, read a few
WHAT SHOULD YOU CHOOSE?
For beginners, I recommend starting at the middle
level, with programmable modules. You can get your
first few projects going for under $100 including
the controller and components. You’ll save yourself
time not having to learn some of the messy details
of the support circuitry, hardware programmers, or
setting up a development environment.
The first microcontroller you learn will most likely
not be the last. It’s addictive. So start simple, and
grow into the advanced tools as you go.
There are lots of microcontroller environments
out there! I looked at 25 for this article, and only
scratched the surface. The following table covers 8
that I think are most interesting, ranging from I/O
boards to bare microcontrollers.
Is the programming environment free? If not,
don’t bother. There are too many good free environments for a beginner to bother paying for the