Friday, October 1, 2010

Simple & Cheap Breadboard Arduino

If you're like me, you want to play with Arduino but you're on a ridiculously tight budget.   Some nice, inexpensive Arduino-compatible kits are available like the Solarbotics Ardweeny or the Boarduino.

Here's how to make a simple, cheap breadboard Arduino. Depending on the chip and bootloader, you can end up with an Arduino Uno or Duemilanove.

  • Atmel ATmega328P w/ bootloader $5.50 + shipping from Sparkfun
  • Electronics parts $4 + shipping
  • FTDI programmer $14 (which you can reuse) + shipping
  • Breadboard ($5-15 but if you're like me, you have several laying around)
We're talking $15 for the basic parts and shipping. Add some extra money for an Arduino-compatible programmer, wire, and a breadboard, all of which you will no doubt use for many projects. Not bad. Not as cheap as an Ardweeny, which you could substitute onto a breadboard leaving more room for circuits... but what the hey.

Breadboard and Protoboard Arduinos

Buying Parts

To make it super simple, here are most of the parts at Mouser (just order qty 1 of the whole project). Now just buy the wire, the FTDI programmer for Arduino, ATmega328P with Arduino bootloader (from Sparkfun; they are now using the Uno bootloader) and a breadboard from Radio Shack, etc.

If you want to source parts on your own here's the list. You can use this list as a guide to order from Digikey to get free shipping by mail order.
  • ATmega328P with Arduino Uno bootloader (Sparkfun)
  • 5V FTDI breakout board programmer (Sparkfun)
  • Breadboard (30 row minimum) (Sparkfun, Radio Shack 276-0003)
  • (opt) 2 x 1K resistors
  • 6 pin breakaway header
  • 4 x 0.1uF capacitors (MLCC)
  • (opt) 3 x 1uF electrolytic capacitors
  • 3mm diffused LED (or, really any standard LED)
  • 470 ohm resistor
  • 16.0000 MHz crystal and 2 x 22pF capacitors -or- 16MHz ceramic resonator (try Sparkfun, Electronics Goldmine, etc)
  • Tactile momentary switch (take apart that broken DVD player, VCR, etc)
  • 10K resistor
  • Hookup wire (red, black, and one other color for the reset line)
  • (opt) 7805 voltage regulator (available just about everywhere)
  • (opt) 9V battery connector (Radio Shack)

Assembly Instructions

These instructions are for the type of breadboard with two power rows at top and bottom (like the Radio Shack 276-0003) and it uses a two-pin crystal/resonator, that is, one without capacitors built in.

An older Arduino with Duemilanove bootloader
  • Install the ATmega328P on the board with pin 1 at row E9.
  • Install a 6 pin header at D1-6 for the Sparkfun FTDI programmer
  • Wire up power and ground wires as shown above (the AVR uses VCC, Analog VCC, and Analog REFerence)
  • Install 0.1 (104) capacitors across 9V power at F1-2 and across G15,17
FYI, the 7805 will be installed at I1-3. I got sick of 9V pigtails pulling out of proto boards, so I finally solder a pigtail right onto a 7805. (below) with marine (gluey) heatshrink holding the pigtails to the case.

Now install optional 1uF electrolytic capacitors as above, across 9V power G1-2 and both 5V power rails.

Install the 7805 at I1-3.

Install a reset button at H6,8 with a line from I6 to ground and G8 to pin 1 of the ATmega, D9. I used a reset button I salvaged from a junk CD player.  I chose a right angle as it fit best. I cut off the support part of the case to make it fit. See below.

Install the 1k TX/RX resistors across C5,11 and A4,10 (pins 2 and 3 of the ATmega) The serial ports and the reset port are used by the Arduino bootloader.

Install the 10k pull-up resistor across A3,9, that is, between VCC on the FTDI header and ATmega pin 1.

Now squeeze a 0.1 uF (104) capacitor between C6,9, that is DTR on the FTDI and ATmega pin 1

Might as well put a 0.1uF (104) capacitor across the ATmega Vcc/GND pins C15,A16. Install 27pF capacitors for the crystal: one at D16,17 the other at C16,D17. Install the crystal across ATmega pins 9 and 10. I had to install mine diagonally: A16,C17 as below: Or, use my eeZee Breadboard Crystal.

For the final touch, to make it fully compatible with the Arduino, add the LED circuit: a 470 ohm resistor from G18,23 and an LED at F23,24 (digital pin 13 on the Arduino).

And that's it, you now have an Arduino on a prototyping breadboard. I've built a half dozen of these along the way for various prototyping and experimenting.

They work great, they're easy to do once you've done a few. Even better when your Arduino bootloader enabled ATmega has a decal on top labeling pins. Most do, nowadays.

No comments:

Post a Comment