USBasp
USBasp is a USB interface adapter for ATMEL ISP.
This is a cheap programmer.
Some boards contain jumpers to disable power delivery to the target device, otherwise they always supply power.
Linux
udev
SUBSYSTEMS=="usb",\ ATTRS{idVendor}=="16c0",\ ATTRS{idProduct}=="05dc",\ MODE:="0666"
Update firmware
Generic USBASP comes with an old firmware, you can upgrade it using a USBtiny like this
avrdude -c usbtiny -p atmega8 -e -U flash:w:usbasp.atmega8.2011-05-28.hex
Program
$ avrdude -c usbasp -B 5 -p m328p -D avrdude: set SCK frequency to 187500 Hz avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude: Device signature = 0x1e950f (probably m328p) avrdude: safemode: Fuses OK (E:FD, H:DA, L:FF) avrdude done. Thank you.