Resetting ATTiny85 Fuses

ATTiny85
Last Updated on

The Story Behind

ATTiny85’s are sweet

Almost everyone who mess with the ATTiny85 end at least one time with a dead one caused by bad fuses. I’m in that group ūüôā

So, I was looking for a solution.
The solutions are:

  1. Use 12V programmer  or use another AVR with 12V to flash the fuses back.
  2.  Add an external clock or crysal
  3.  Use JTAG

I decided to go on with the first solution and ordered the parts from Taydaelectronics.com

I found few posts about how to build it:
https://sites.google.com/site/wayneholder/attiny-fuse-reset
http://www.gammon.com.au/forum/?id=12898
http://www.simpleavr.com/avr/hvsp-fuse-resetter

I received the parts (I wanted the last one) and started to build.
But…
I was too lazy.
I searched for more ways and found this one: Link
But It didn’t work for me, even the Anonymous guy method down in the comments who gave some codes of ISP to try.

I googled again and found my hero!
http://www.larsen-b.com/Article/260.html

How to use an external clock?

I needed some more search to find out how to use the External Clock of another AVR but in the end I found it.

I’ve used a fresh ATTiny85 for this.
The steps to make it work:

  1.  Flash your Arduino Uno as ISP with the regular example from the menu.
  2. Connect the new ATTiny85 to the ISP as shown here (courtesy of http://highlowtech.org):
    ATTINY85 ISP SCHEME
  3.  And flash this code via the Arduino IDE:
    int main()
    {
    
      DDRB = 0xFF;
      while (1)
      {
    
       PORTB = ~PINB;
       asm volatile("nop");
       asm volatile("nop");
      }
    return 0;
    }
  4. Download WinAVR or use the Avrdude.exe from the Arduino IDE folder and burn those fuses to the new ATTiny85:

    -U lfuse:w:0xa2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
    (Usually goes like this: avrdude -p attiny85 -c stk500v1 -P YOURCOMPORT -b 19200 -U lfuse:w:0xa2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m)

  5.  Connect dead ATTiny85 to the ISP and put the new one next to it.
  6.  Connect 5V and GND to the new one and add another wire from pin 5 to pin 2 on the broken one.
  7. ¬†Open the Arduino IDE and choose ATTiny85 on boards menu, click on “Burn Bootloader” and your’e DONE!
Did you like it?

Leave a Comment

Your email address will not be published. Required fields are marked *