Main Content

Building 'Arduino As ISP' Using Arduino Nano to Program ATtiny85

Unlike some other microcontrollers, such as the Arduino Uno, the ATtiny85 does not have a built-in USB interface for programming. Instead, it requires an external programmer to load the program code onto the microcontroller’s flash memory.

ATtiny85 has a different programming protocol than the Arduino Uno, which uses a bootloader to enable programming over USB. The ATtiny85 uses a protocol called In-System Programming (ISP), which requires a dedicated programmer to interface with the microcontroller’s programming pins.

ATtiny85 has a smaller pin count than the Arduino Uno, and its pins are multipurpose, which means that they can be used for both programming and general input/output. This makes it more challenging to use a single USB interface for both programming and communication with external devices. However, there are boards like ‘Digispark’ that provide USB interface for programming. In general, to program the ATtiny85, you need to use an external programmer, such as the AVRISP mkII or the USBtinyISP or USBasp which can connect to the microcontroller’s programming pins and transfer the program code to the flash memory.

If you are planning to develop a low power low footprint circuit based on ATiny, probably you may need a programmer for setting fuse bits and for flashing. Back in the day (around 15 years before, I had made an USBasp programmer that pretty well functioned its job and unfortunately it stopped service recently. So, I have decided to make a standalone programmer which can be used to program AVR controllers even without using Arduino IDE. This steps lead you for making such a programmer based on Arduino Nano.

Hardware requirements:

- Arduino Nano: 1 no.
- LEDs Blue, Red, Green: 1 each
- HDR 2x5 (10 pin ISP header): 1no.
- 10 pin to 6 pin ICSP adapter cable: 1no.
- Common PCB: 1no.
- 10uF Electrolytic capacitor: 1no.
- 1kΩ TH resistors: 3 nos.
- ATtiny85 Microcontroller: 1no.

Software requirements:

- Arduino IDE for program development
- AVRDUDESS GUI for programming flash and EEPROM of ATtiny85”

Link to article