The USBisp is another AVR programmer. Compared to the other freely available programmers out there mine has some advantages, I think:
USB-Interface
The USBisp is very interesting on notebooks where no serial or parallel port is available
STK500-Protocol
The USBisp is compatible to AVR Studio but also to much other programs supporting this protocol. For Example, these programs are avrdude and uisp.
fast
The USBisp is due to the fast USB interface but also due to the high SPI clock very fast compared to the original AVRisp from Atmel or the simple parallel dongles. The isp clock frequency is adjustable from 2MHz down to about 60kHz via the STK500 protocol. More, even slower, frequencies are planned to be implemented so that AVR with slower clock rates can be programmed.
updates are easy
The firmware of the USBisp is easy to upgrade. A software upgrade works also via the USB interface. The package contains a STK500 compatible bootloader so you can use avrdude to update the firmware. There are 7k of flash left in the ATMega8
open
The USBisp is not only a AVR programmer. Due to the open schematic and the bootloader you can use the hardware also as a general USB platform. With a simple port expander (some shift registers) you can develop your own USB light show or a USBlcd.
The hardware:
There are two important chips on the USBisp. One is the FT245BM which connects the other important chip, an ATMega8, to the USB. Due to the parellel interface between the FT245BM and the ATMega8 the data throughput between them and the PC can reach easily 6MBit. The PC driver creates a virtual COM port (COMx respectively /dev/ttyUSBx) so that no special software is needed to talk to the USBisp. The ATMega8 is responsible for the conversion between the STK500 protocol and the SPI data channel to the target AVR. Additionally there is a EEPROM connected to the FT245BM which contains some configuration for that chip. Also there is a 4MBit dataflash in the schematic but this is not necessary for the USBisp. It's a hangover from another project with the same hardware. The PCB (I will not release the CAD data of it) has the same outline than that of the original AVRISP from Atmel. So you can easily update your current AVRisp to USB.
The software:
Application and bootloader are written in C. The bootloader is a minimized of the application so that it fits into 1024 byte.