This is documentation for a simple open-source USB AVR programmer and SPI interface. It is low cost, easy to make, works great with avrdude, is AVRStudio-compatible and tested under Windows, Linux and MacOS X. Perfect for students and beginners, or as a backup programmer.
The project is based off of the USBtiny code & design. The main improvements are: adjusting the code to allow it to act as a SpokePOV interface, adding lowlevel bitbang commands, and addition of a "USB good" LED. Other changes are new VID/PID (to make it official), removing some of the commands, and moving around the pins a bit.
You can build this design using the schematic and firmware, or buy a kit from the Adafruit webshop. Having a full kit available solves the "chicken & egg" problem of purchasing or building a USB programmer that then needs a programmer of some sort to 'kick start'. (See USBasp, AVRdoper, USBprog)
All the firmware code is distributed under the GPL, the hardware design layout files are CC 2.5 Attrib./Share-alike.
- Ultra low cost: programmer is $16 in parts, less than half the price of the AVRISP v2 ! (Kits are $22 and available from the adafruit shop.)
- Kit comes with both 6-pin and 10-pin AVR-standard connectors and cables. Almost no programmers that are not from Atmel have both! (Including the AVRISP v2)
- Easy to build: All through-hole parts, all common and available from large distributors.
- AVRdude compatible - support for usbtiny added in v5.5!
- USB drivers available for Windows using libusb, no drivers needed for Mac OS X or Linux.
- Durable off-the-shelf enclosure
- High speed! Max clock rate is 400KHz. Write speed:1Kb/s, read speed: 2Kb/s. (Atmega8 takes 8s to write, 4s to read/verify)
- 2 LEDs to indicate "USB/Power good" and "Busy"
- I/O is buffered to allow programming of 2V-6V targets (v2)
- Works with any AVR ISP chip with 64K of flash (or less) - does not work with Atmega1281/1280/2561/2560
- Powered off of 5V USB bus at less than 100mA to allow it to be used with unpowered USB hubs
- Easily accessable jumper to power target project off of USB (target must be 5V tolerant, of course)
- Remove the jumper and it will self-power but buffer the I/O to match the target device. (v2)
- Easily interfaced with libusb
- Existing firmware allows for fast SPI interfacing using USB
- Bit-bang commands provide 8 bits of I/O control (including LED) for open-ended project ideas