USBtinyISP
USBtinyISP with jumper removed
The Arduino IDE knows this programmer as USBtinyUSB.
Supply voltage
If the target is a 3.3V device, it would be best to use a 3.3V compatible programmer, too. The USBtinyISP (since version 2) makes use of 3-state buffers for the signal lines, and has a jumper that can be removed to disconnect the 5V from the USB port from the target.
Using the programmer
AVRDUDE is a very popular command-line program for programming AVR chips. Avrdude version 5.5 and higher has built-in support for USBtinyISP!
https://learn.adafruit.com/usbtinyisp/avrdude
The tool avrdude knows this programmer as usbtiny.
See for a successful use of this programmer: BackDoorSensor.
How to use avrdude:
Usage: avrdude [options] Options: -p <partno> Required. Specify AVR device. -b <baudrate> Override RS-232 baud rate. -B <bitclock> Specify JTAG/STK500v2 bit clock period (us). -C <config-file> Specify location of configuration file. -c <programmer> Specify programmer type. -D Disable auto erase for flash memory -i <delay> ISP Clock Delay [in microseconds] -P <port> Specify connection port. -F Override invalid signature check. -e Perform a chip erase. -O Perform RC oscillator calibration (see AVR053). -U <memtype>:r|w|v:<filename>[:format] Memory operation specification. Multiple -U options are allowed, each request is performed in the order specified. -n Do not write anything to the device. -V Do not verify. -u Disable safemode, default when running from a script. -s Silent safemode operation, will not ask you if fuses should be changed back. -t Enter terminal mode. -E <exitspec>[,<exitspec>] List programmer exit specifications. -x <extended_param> Pass <extended_param> to programmer. -y Count # erase cycles in EEPROM. -Y <number> Initialize erase cycle # in EEPROM. -v Verbose output. -v -v for more. -q Quell progress output. -q -q for less. -l logfile Use logfile rather than stderr for diagnostics. -? Display this usage. avrdude version 6.3, URL: <http://savannah.nongnu.org/projects/avrdude/>
Comments: