I think that everyone should breadboard an Arduino at least
once (one approach here,
another here).
It’s a great learning experience that does a lot to de-mystify all that
circuitry, or perhaps more correctly, it shows just how simple “all that
circuitry” can really be.
For many projects, using breadboards makes a lot of sense to
me. But after three or four times, it gets pretty repetitious, not to mention
time-consuming and error-prone, putting all the basic wiring in place for the
MCU. I especially hate the FTDI and ICSP
programming headers. My memory being what it is, I always have to refer to some
cheat sheet to figure out all six connections for each!
I had the idea of using a pair of small breakout boards to
make the repetitious part easier and allow me to get to the interesting part of
the project sooner. One board provides
the FTDI header and the other provides the ICSP header. I call them “Breadboard Helpers” (with
apologies to Hamburger
Helper ™). With the first version of
the boards, I concentrated mostly on the programming headers, although I added
a reset button to the FTDI board and the Arduino “Pin 13” LED to the ICSP
board.
Then I thought that I could expand the idea a bit and make
things even easier. So the second
versions of the boards have the following features:
FTDI Breadboard Helper
- FTDI programming header (works well with Adafruit Industries’ FTDI Friend or with Sparkfun’s FTDI Basic Breakout)
- Reset button with associated capacitor and pull-up resistor
- Resonator or crystal with loading capacitors
- Power supply bypass and filter capacitors
- MCU power and ground connections
- Under one square inch
ICSP Breadboard Helper
- ICSP programming header
- Arduino “Pin 13” LED and current-limiting resistor
- AVcc bypass capacitor
- Power supply bypass and filter capacitors
- MCU power and ground connections
- Under ¾ square inch
With Breadboard Helpers, I can literally breadboard an Arduino in less than a minute. I don’t have to remember how to wire the programming connections, or worry about mixing up the power pins, RX/TX, or MOSI/MISO. Plus, I end up with a much neater breadboard and more room for the rest of my project.
The picture below is as compact as I think I can manage to breadboard an
Arduino; 46 of the 5-position tie points are used, only leaving 14 available on
this small breadboard. There’s only room for an 8-pin DIP device. I didn’t
watch the clock, but I’d bet it took me the better part of an hour.
Identical circuit as in the above picture, made with individual components. Not much room left on a small breadboard. |
A couple things to note with Breadboard Helpers. First, if you’re doing ICSP programming, you
will need one wire to go from the RST pin on the ICSP board to MCU pin 1, the
reset pin (this is the green wire in the first picture above).
Second, I have two kinds of breadboards. The larger ones have the holes in the power
rails aligned with the holes on the main part of the breadboard. The smaller breadboards have the holes in the
power rails staggered relative to the main part. Breadboard Helpers have two positions for the
power pins, to allow them to be built to work with one type breadboard or the
other.
Breadboard Helpers are also flexible. Several of the parts can be eliminated if you
don’t plan to use them, and can be added later if needed. Not doing ICSP programming? Leave the 2x3 header off. Don’t care about the LED? Leave it and its resistor off. If you’re using a resonator that has built-in
capacitors, then the crystal loading capacitors aren’t needed of course. If you don’t have any worries about power
supply filtering, the small electrolytic capacitors can be eliminated; however,
I do recommend retaining the 100nF bypass capacitors.
If you’d be interested in Arduino Breadboard Helpers, leave
me a comment. If there’s enough
interest, I might put a small run of kits together (soldering required!).
If you'd like to roll your own, the Eagle files are available on github, and a bill of materials with all the components needed, including the microcontroller and a breadboard, is available on the Mouser web site. Note that if you order the microcontroller from Mouser, it will need to be programmed with an Arduino bootloader.
If you'd like to roll your own, the Eagle files are available on github, and a bill of materials with all the components needed, including the microcontroller and a breadboard, is available on the Mouser web site. Note that if you order the microcontroller from Mouser, it will need to be programmed with an Arduino bootloader.