The computer I’m currently on doesn’t have a parallel port, so I can’t use the STK-200 style AVR-ISP to program/flash AVR chips. So, looking for the USB alternative, I stumbled across the USBasp. From the site, “USBasp is a USB in-circuit programmer for Atmel AVR controllers. It simply consists of an ATMega48 or an ATMega8 and a couple of passive components. The programmer uses a firmware-only USB driver, no special USB controller is needed.”
It’s cross-platform (Linux, Windows, Mac OS X), and since it implements USB as firmware in the AVR, it keeps the parts count pretty low.
I’ve gotten around to building the USBasp on a perf board, since I’m too cheap for a real pcb. I have confirmed it working on both Windows and Mac OS X (and as of today Linux too), and have used it extensively the last couple of days to write an LC7981/HD61830 driver on an ATMega32 (will post this up soon) without any problems.
If you’re looking for an reliable, inexpensive, easy-to-build, and dedicated USB AVR programmer, this is the one to go with.
There is also USBtiny, which is probably the fastest way to get up and running with USB AVR programming if you already have a parallel port STK200 clone. Like the USBasp, it implements USB entirely on the AVR firmware, but is actually more of a parallel-port to USB converter (it interfaces to an existing STK200-style AVR-ISP parallel port programmer).
USBasp Perf. Build Pictures: