Skip to content

Easy programming for breadboard Arduinos

2011 May 2
by Tedb0t

If you’ve never made a breadboard Arduino, you really ought to try it (I have a quick tutorial)—you’ll suddenly discover that you rarely need an actual (and expensive) Arduino anymore.  The Arduino is built around the Atmel ATmega microprocessor, which you can buy from various places for roughly only $4-5!

However, there are a few things about it that aren’t obvious at first, such as how to connect it to your computer via USB and make it programmable.
First off, be sure that your ATmega chip has the Arduino bootloader on it.  If you bought it from a major supplier such as Mouser or Digi-Key, it does not have the bootloader.  Sparkfun (among others) sells them with bootloaders.

Second, you’ll need an FTDI USB breakout board.  This connects to the TX and RX serial pins on the microprocessor and supplies a USB interface and firmware that your computer can recognize and use.  You’ll need the FTDI drivers for your system, which come with the Arduino software.

Third: the real work.  You need to connect some pins from the USB board to your breadboard:

  • GND
  • TX
  • RX
  • DTR
  • Optional: 5V (if your breakout board supplies it)

As you can see in the photo, I soldered up a handy little header so I can plug it right into a breadboard.  The serial pins are connected like so: TX→RX, RX→TX.  DTR is connected to a .1µF capacitor that goes to the RESET pin on the ATmega (pin 1).  That pin must also be connected to +5V via a 10kΩ resistor.

The DTR pin is the secret sauce: it pulls the reset pin down, which the Arduino bootloader requires to be programmed.  If you didn’t have this, you’d have to reset it by hand.  This way, it’s completely automatic, just like a regular Arduino board.

Let me know if this works for you!  Enjoy!

Related Posts:

7 Responses
  1. RBird permalink
    July 1, 2011

    I’m not adept at serial communications and I struggled with this for a long time, trying various wiring and configurations but nothing seemed to work. I finally got it working and thought I’d leave some hints for anyone else who is having difficulty.

    I read on one of the forums that the ATmega will not function at 3.3v if it has a 16MHz crystal installed (with a 22pF capacitor to ground on each leg of the crystal), so I removed the solder bridge from the FT232R and supplied 5v separately. I fed the 5v to VCC and VCCIO on the FT232R, along with the ground, TXD, RXD, and DTR as noted in Ted’s blog (

    The biggest discovery for me was to in the Arduino programming environment – you need to go into Tools | Board and select “Arduino Pro or Pro Mini(5v, 16MHz) w/ ATmega328”. I don’t know why nobody bothered to mention that in the various tutorials I found. Once I did that, presto! it works. Huzzah!

  2. jake permalink
    July 15, 2012

    Will the newest revision of the SparkFun breakout wire up the same as your example?

    • Ted Hayes permalink
      July 15, 2012

      Yes, you just need GND, RX, TX and DTR, all of which are pins on that board.

  3. January 12, 2013

    Gracias… DTR por eso no me funcionaba…Mil gracias. Thank you… DTR it my solution!!

Trackbacks and Pingbacks

  1. Breadboard Arduino: Fast, Cheap and Fun | Limina.Log
  2. AVR Atmega Microcontroller Tutorial 4 Blink LED( Tishitu Electronics )
  3. Easy programming for breadboard Arduinos | Limina.Log | Guide 2 Serv Online

Comments are closed.