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:


  • Pingback: Breadboard Arduino: Fast, Cheap and Fun | Limina.Log

  • Pingback: AVR Atmega Microcontroller Tutorial 4 Blink LED( Tishitu Electronics )

  • Pingback: Easy programming for breadboard Arduinos | Limina.Log | Guide 2 Serv Online

  • RBird

    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 (log.luminastudio.com).

    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!