USBtinyISP AVR ISP Bootloader Programmer for AVR/Arduino
USBtinyISP is a simple open-source USB AVR programmer and SPI interface. It is low cost, easy to make, works great with avrdude, has both 6 and 10 pin standard ISP cables, is AVRStudio-compatible and tested under Windows XP and MacOS X, it may or may not work with your specific Vista/Windows 7 system, please visit the Adafruit forums before purchase.
Using this programmer and avrdude you can program any in-circuit "serial" programmable chip that avrdude supports (which is nearly all of them). It does not do JTAG or High Voltage programming. You can re-program Arduino's (and 'minimal arduinos') using this programmer. It cannot program chips with more than 64K of flash, such as the Atmega1280/1281, or Atmega2560/2561
This USB AVR programmer is also supported by Arduino IDE. In case you need to reload the Arduino with bootloader, use this programmer to reburn the bootloader and save the dead Arduino. This programmer works really well for ATmega168 and ATmega328 and should work with all the AVR micros supported by AVRDUDE. Both 10-pin and 6-pin targets supported (cable included) which makes the progrmmer suitable for most AVR boards. This programmer is based on USBtiny code & design Version 2.0
This device also functions as a USB SpokePOV dongle
For more information, check out the USBtinyISP page