Any AVR that uses the ISP interface for programming and has 64K or less of flash can be programmed.
Chips such as the Atmega1280/1281 and Atmega2560/2561 have more than 64K and cannot be programmed.
Chips that use TPI interface, such as Attiny4/5/9/10 cannot be programmed.
Some very old chips such as the AT90S1200 and similar cannot be programmed
- Put a fresh AVR chip (such as an Atmega328) into the Arduino in the correct orientation
- Remove the jumper from the USBtinyISP
- Plug in the USBtiny to USB
- Plug the Arduino into DC or USB so it is powered
- Plug the 6 pin cable from the USBtinyISP into the Arduino so that pin 1 mark is lined up with the red wire on the cable
- Start up Arduino IDE
- Select the chip/Arduino you are using in the Tools->Board menu
- Do not select a COM/Serial port
- Select Tools->Burn Bootloader->w/USBtinyISP
- The USBtinyISP red LED should light up. It will take a minute or two to program the chip
- When it is done, the IDE will tell you it has completed and the red LED will be off.
The USBtinyISP design as-is only works with the AVR core chips (ATtiny/ATmega/etc). However Lucas Chiesa and his peers have done an excellent job porting this version to support 8051-core chips.
The original USBtinyISP could be programmed by another programmer by jumpering a pin. This is not true anymore now that there is a buffer. You should ignore the jumper.
Also, you cannot program the usbtiny with itself.