So even though I said FTDI adapters are not for programming 'raw' AVRs, it turns out you can 'convince' the chip to do it with a bit of manipulation. One way that is documented so far doesnt require soldering but it does require updating the AVRDUDE software and installing a different driver . (see also this post and this link for using an FTDI adapter instead of an Arduino )

If you have an FTDI friend or other breakout where you can get to the DTR line, I found a way to do it that requires soldering a wire but no AVRDUDE/driver messing. The trade off is that it is really slow - good for maybe burning a bootloader on, not good for day-to-day AVR development

Turn over the FTDI friend, and solder a dot of solder onto the DTR pin on the bottom left.

Solder a wire onto it, making sure you dont short it to the gold square just to the right. We'll use a white wire.
Plug in wires into the FTDI breakout, black is ground, blue is CTS, red is VCC, orange is TX and green is RTS.

Now you have to make a text edit to your avrdude.conf.

If you've installed WinAVR or similar (say for Mac or Linux ) , it'll be in something like C:\WinAVR\bin\avrdude.conf or C:\WinAVR\etc\avrdude.conf if you aren't sure where it is, but you have avrdude installed, you can runavrdude -c xyzwhich will dump the programmer list, if you look to the right, the name of the conf file will be printed

A common reason for wanting to program an AVR is to put the Arduino bootloader on there, in which case, you may not have WinAVR installed. Luckily, avrdude is there, its just 'hidden' in the IDE package (for Mac users,you need to actually "explore" the App) if you're running windows, go to the folder where you have the IDE installed and go into the hardware\tools\avr\etc folder to open up avrdude.conf

OK! Now that you have avrdude.conf open, find the string ponyser, then add the following bold text right before hand so the avrdude.conf looks like this:

# some ultra cheap programmers use bitbanging on the 
# serialport.
# PC - DB9 - Pins for RS232:
# GND   5   -- |O
#              |   O| <-   9   RI
# DTR   4   <- |O   |
#              |   O| <-   8   CTS
# TXD   3   <- |O   |
#              |   O| ->   7   RTS
# RXD   2   -> |O   |
#              |   O| <-   6   DSR
# DCD   1   -> |O
# Using RXD is currently not supported.
# Using RI is not supported under Win32 but is supported under Posix.
# serial ponyprog design (dasa2 in uisp)
# reset=!txd sck=rts mosi=dtr miso=cts
  id    = "ftdifriend";
  desc  = "design ftdi adatper, reset=dtr sck=tx mosi=rts miso=cts";
  type  = serbb;
  reset = ~4;
  sck   = ~3;
  mosi  = ~7;
  miso  = ~8;
# serial ponyprog design (dasa2 in uisp)
# reset=!txd sck=rts mosi=dtr miso=cts
  id    = "ponyser";
  desc  = "design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts";
  type  = "serbb";
  reset = ~3;
  sck   = 7;
  mosi  = 4;
  miso  = 8;
Save the file.

This guide was first published on Jan 29, 2013. It was last updated on Jan 29, 2013.

This page (Programming Blank AVRs) was last updated on Jan 28, 2013.

Text editor powered by tinymce.