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.

Cost
  • 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

http://arduinofun.com/blog/2009/10/15/breadboard-arduino/
http://tinkerlog.com/2008/01/07/arduino-on-a-prototype-board/
http://tom.stoopdice.com/blog/?p=670
http://blog.makezine.com/archive/2009/04/breadboard_arduino_from_oomlout.htmlhttp://www.instructables.com/id/How-to-Breadboard-Arduino-Compatible/

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