ATtiny Devices...

The ATtiny devices come in either 8, 14 or 20 pin packages as far as DIP products are concerned. I will discuss the ATtiny85 here but the principles are the same for most the ATtiny devices.

ATtiny24/44/84 are 14 pin devices and ATtiny25/45/85 are 8 pin devices (the ATtiny 2313 & 4313 are 20 pin devices). Both have 2K/4K/8K of Flash memory respectively and 128/256/512 Bytes of RAM respectively.

First of all, despite what you may have read, ATtiny devices DO NOT require a bootloader because they do not have a USART for serial uploading and because they have so little Flash memory available that a bootloader would be an inconvenience at the very least. There are one or two bootloaders to be found on the Internet which can take upwards of 25% of the available memory so my advice is to forget bootloaders altogether.

I will only cover programming with the ArduinoISP_Multi sketch (you could use the standard ArduinoISP sketch but why complicate things?). You get the 8MHz clock with my sketch for free anyway.

The circuit for the ATtiny85 with the ArduinoISP_Multi sketch is shown above and the only difference is the pins used on the device. I personally don't use these devices but a correspondent asked me if I would do a tutorial and here it is, I hope it is what you wanted Bernie?

There are a few things to take into account with the ATtiny devices as they need some special support in the form of "boards.txt" profiles and, something that is not discussed as much as it should be, updated AVRDUDE "avrdude.conf" files.

Why the latter? well, as good as AVRDUDE is, the author seems to have run out of steam while writing the "avrdude.conf" file for AVRDUDE 5.1 (currently shipped with the Arduino IDE) and some entries are missing. This does not prevent you programming ATtiny devices but errors appear during programming especially regarding the "lock" byte.

I have seen so many mentions of these errors and the fact that they can be ignored but I won't accept that approach so, later on I'll provide a new "avrdude.conf" file with the error causing modifications made.

As with the ArduinoISP example using the ATmega328, the 10uF capacitor is included if you experience resetting of your Arduino board at the start of programming, If you do, once the ArduinoISP_Multi sketch is uploaded, connect the capacitor as shown but be sure to remove it before you try to use your Arduino board for something else.

The ATtiny devices are shipped with their internal 8MHz clock divided by 8 so they run at 1MHz. This is actually quite useful to some people as power consumption is reduced, especially if use a 3.3V supply or less. Others may want to have a faster device so here's the "boards.txt" profiles you need:

For the ATTIny85 1MHz: attiny85-1.name=ATtiny85 (INT 1MHz Clock ArduinoISP)
attiny85-1.upload.using=arduino:arduinoisp
attiny85-1.upload.maximum_size=8192 (4096 for ATtiny44/45 and 2048 for ATtiny24/25)
attiny85-1.bootloader.low_fuses=0x62
attiny85-1.bootloader.high_fuses=0xDF
attiny85-1.bootloader.extended_fuses=0xFF
attiny85-1.bootloader.unlock_bits=0xFF
attiny85-1.bootloader.lock_bits=0xFF
attiny85-1.build.mcu=attiny85
attiny85-1.build.f_cpu=1000000L
attiny85-1.build.core=tiny

For the ATtiny85 8MHz:

attiny85-8.name=ATtiny85 (INT 8MHz Clock ArduinoISP)
attiny85-8.upload.using=arduino:arduinoisp
attiny85-8.upload.maximum_size=8192 (4096 for ATtiny44/45 and 2048 for ATtiny24/25)
attiny85-8.bootloader.low_fuses=0xE2
attiny85-8.bootloader.high_fuses=0xDF
attiny85-8.bootloader.extended_fuses=0xFF
attiny85-8.bootloader.unlock_bits=0xFF
attiny85-8.bootloader.lock_bits=0xFF
attiny85-8.build.mcu=attiny85
attiny85-8.build.f_cpu=8000000L
attiny85-8.build.core=tiny

Note the "build.core=tiny" entry which specifies a special set of core files.