Skip to content

Breadboard Arduino: Fast, Cheap and Fun

2011 May 2
by Tedb0t

If you’ve been enjoying making stuff with the Arduino, but don’t want to buy more Arduino boards just to make a new project, fear not—you don’t need them!

The Arduino board is just a convenient wrapper around the ATmega microprocessor, and it’s easy to recreate on a breadboard.  Here’s what you’ll need:

The bootloader is what makes the microprocessor easy to program with the Arduino environment.  You can also buy ATmegas without the bootloader for about a dollar cheaper, but they must have the bootloader manually loaded on to use Arduino.

The resonator is a handy package that combines a crystal, which is where the microprocessor gets its clock signal from, and two capacitors, so all you have to do is plug it into the ATmega.

If you have an ATmega that’s already loaded with your program, you can just build this board as-is without the capacitor and leave pin 1 (RESET) connected to +5V via the 10k “pull-up” resistor.  You can even program a chip on an Arduino, remove it and plug it into your breadboard setup.

The one part remaining that I haven’t mentioned is the programming header I made, on the top right of the top photo (fully visible in the second photo).  This connects to the FTDI USB board I describe in my easy breadboard Arduino programming tutorial.  The pins are, from top to bottom: Ground (Black), RX (White), TX (Green), DTR (Yellow).

Lastly, though not pictured here, it is good practice to use decoupling capacitors on your power supply to protect your microcontroller from any irregularities, as described in this tutorial (a few pages down).

Related Posts:


23 Responses leave one →
  1. Kevin permalink
    July 4, 2011

    Hey, this is great! just what I need for an RFID project :)
    Can you please tell me what that little black 4 holes device on the top right is doing please? can’t see where the wires are going…

    thank you!

  2. July 4, 2011

    Thanks! Yep, I updated the description to describe the programming header wires.

  3. September 9, 2011

    Can I use this 16MHZ quarts crystal: http://www.goldmine-elec-products.com/prodinfo.asp?number=G3842

    • September 9, 2011

      Yes, you can use that, but you sure as hell don’t need to pay $1.50 for a single crystal. If you want to use a bare crystal, remember that you’ll need two 18-22 pF capacitors (marked 180 or 220) on each leg of the crystal going to ground.

  4. Scott permalink
    October 19, 2011

    Do you need to connect the dtr pin and the cts pin on the usb breakout board to anything. I am having no luck getting the computer to recognize the uno.

    • October 19, 2011

      This tutorial is for a circuit on a breadboard that recreates an Arduino, it doesn’t involve using an existing Arduino at all. What are you trying to do?

      • Scott permalink
        October 19, 2011

        I may have been confusing when I said uno. I meant atmega 328. It is one with the bootloader already installed and a sticker to label all the pins (says uno at top). I have a slightly different breakout board, it is a FTDI Basic. It has a tx, which i connnected to rx on the 328, an rx which i connected to tx on 328, gnd to ground, and DTR to the capacitor that runs to the first pin 328. But my breakout board has 3v3 pin and a cts pin on it which im not sure if they are supposed to be connected to anything.

        And you were saying that I dont need the capacitor connecting the first pin and the breakout board? This means that DTR isnt connected to anything??
        Thanks

  5. Scott permalink
    October 19, 2011

    if it helps the errors i get are
    avrdude: stk500_getsync(): not in sync: resp=0x00
    avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

  6. Paul permalink
    November 4, 2011

    First of all, thanks for this tut!
    Second, I encounter a problem with my crystal, it does not seem to get enough power or anything when I turn the power on.
    I have connected 12 LEDs through a TLC5940 to my atmega 328. When I run the standard “Fades” program (should fade all LEDs individually), it does fade but the lights flicker. If I then touch a pin of the 22pF, there are two options: or all lights go out or the program starts to run as it should (gently fading).
    Do you have an idea what the problem could be?
    I already tried soldering caps and the crystal on a separate board with the rest still on a breadboard..
    Thanks in advance!

  7. Brian K permalink
    December 2, 2011

    Looks like you run the protoboard off of 5V but isn’t the FTDI USB breakout board 3.3V. I guess it gets its power from the USB cable to the PC?

    • December 2, 2011

      The FTDI breakout board can supply both 5V and 3.3V. The USB spec supplies 5V.

  8. Raini permalink
    December 30, 2011

    Hi Tedbot, this is AWESOME. Just what I needed for a project I’m working on. One question though, have you ever worked with the Arduino Ethernet Shield? I’m using one as well, but the Schematic is hard to read, I want to do the exact thing you are doing here but with the Shield, so I can make a single (one floor xD) PCB.

    • December 30, 2011

      I’ve used the WizNet ethernet shield. Off the top of my head, they usually use SPI to communicate with the microcontroller, which is generally just 4 wires (Clock, MOSI, MISO, Slave select). Redesigning that kind of circuit will be time-consuming. You might try to get an Eagle file of a similar board off of Sparkfun or similar.

  9. February 28, 2012

    so you have a headphone jack for the power connector?

    • February 28, 2012

      No, it’s a 5mm DC power jack that kind of looks like a 1/4″ phono plug from the outside ;)

  10. Davegior permalink
    April 2, 2012

    I found a dozen circuits for ATMega328. Half show pin 21 AREF floating and half have AREF to VCC. Which would be correct.

    • Ted Hayes permalink
      April 3, 2012

      If I recall correctly, if you don’t connect Analog Reference, the ATmega uses Vcc as AREF, so either way is fine.  Double check in the manual to be absolutely sure.

  11. December 12, 2012

    I just want to make sure I’m reading this correctly. If I have a programmed ATMega328, all I then need is a resonator and regulated 5V, correct? Oh, and a 10 ohm resistor from the 5V input. Anything else?

    • December 12, 2012

      Yes, but it’s a 10kohm resistor that pulls the reset pin high. Without this the microcontroller might randomly reset.

  12. Bret permalink
    October 22, 2013

    This is great, Made two of these, one Breadboard and one as a soldered circuit for use in a project

    I did find the image a little hard to follow at first so I made one in Fritzing

  13. boilerbugle permalink
    September 22, 2014

    what purpose does the capacitor between pin1 and the programmer serve?

Trackbacks and Pingbacks

  1. Easy programming for breadboard Arduinos | Limina.Log
  2. Under Cabinet LED Lighting – Part 1 | Ronald's Blog

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS