Programming ATtiny85 with Arduino Uno

Simple and easy way to use Arduino Uno as ATtiny programmer.

0. Turn the Arduino into a AVRISP

(AVR is a family of microcontrollers. ISP means In System Programmer)

Connect Arduino and open Arduino IDE -> File -> Examples -> 11.ArduinoISP ->ArduinoISP and upload to Arduino.

Ekraanipilt 2018-12-23 18-02-03

1. Install hardware package for ATtiny85

1.1 Open Arduino IDE -> File -> Preferences go to Additional Boards Manager URLs and copy this: http://drazzy.com/package_drazzy.com_index.json

Ekraanipilt 2018-12-23 18-06-55

1.2 Open Arduino IDE -> Tools -> Board -> Boards manager. Find “ATtinyCore by Spence Konde” and click Install.

More about ATtinyCore: https://github.com/SpenceKonde/ATTinyCore

2. Connect the hardware

Schematic_Attiny-programmer_Sheet-1_20181223175111

3. Arduino IDE settings

Go to Arduino IDE -> Tools and select:

  • Board: “ATtiny 25/45/85”
  • Chip: “ATtiny85”
  • Clock: 8 MHz internal
  • B.O.D Level: “B.O.D. Disabled”
  • Save EEPROM: “EEPROM retained”
  • Timer 1 clock: “CPU”
  • LTO: “Disabled”
  • Port: (Your Arduino port)
  • Programmer: “Arduino as ISP”

Ekraanipilt 2018-12-23 18-15-55

4. Burn Bootloader

(You only need to do this once per chip)

Go to Arduino IDE -> Tools -> Burn Bootloader

5. Upload sketch

Go to: Arduino IDE -> Sketch -> Upload Using Programmer

3 thoughts on “Programming ATtiny85 with Arduino Uno

  1. Arduino:1.8.13 (Windows Store 1.8.42.0) (Windows 10), Kort”ATtiny25/45/85, ATtiny85, External 8 MHz”

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x03

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x03

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x03

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x03

    avrdude: stk500_recv(): programmer is not responding

    Feil oppstod under skriving av oppstartslaster.

    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x03

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x03

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x03

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x03

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x03

      1. “External 8 MHz is a mistake”, the good way is” Internal 8MHZ”

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.