/yaafr

This is Yet Another AVR Fusebit Rescuer. It is able to restore fuses in bricked AVR microcontrollers using high voltage programming.

Primary LanguageHTMLApache License 2.0Apache-2.0

What are this?

This is Yaafr, Yet Another AVR Fusebit Rescuer. It is large because of all the ZIF-sockets and does not even feature any mounting holes. It also has two IDC headers for expanding to programming clips or other adapters to rescue non-dip AVR microcontrollers.

It is be able to restore wrongly fused or locked AVR microcontrollers that support high voltage parallel (HVPP) programming or high voltage serial programming (HVSP).

This circuit has been inspired by these projects:

RescueAVR by Bernhard.
AVR Fuse Rescue Shield for Arduino Uno by Dmitry Melnichansky.
Arduino-based AVR High Voltage Programmer by Jeff Keyzer.
Atmega Fusebit Doctor by Paweł Kisielewski.

Firmware update 2.11 from the Atmega Fusebit Doctor for the atmega328p has been tested and is working. The original site does not exist anymore, but SukkoPera has been so kind to archive the remains: https://github.com/SukkoPera/avr-fusebit-doctor/

Firmware from RescueAVR in FBD_MODE works also, but may not contain support for all the chips (such as the AT90S1200).

Status

This project is working for me, I can rescue all my locked AVRs. See below for what I have tested and validated to be working.

While the schematic was carefully made, the PCB has not been fully tested yet.

I added the possibility to switch on and off AGND and AVCC because in many datasheets in one instance they must be connected and in the next they must not, however leaving the switches always on connected when it does not need to be then the rescues seem to work just fine.

Checklists

Functionality

Thing Tested and working?
40-pin DIP style A ☑️
40-pin DIP style B ☑️
28-pin DIP style A ☑️
20-pin DIP style A ☑️
20-pin DIP style B ☑️
14-pin DIP style A ☑️
8-pin DIP style A ☑️
AVR Atmega fusebit doctor firmware 2.11 ☑️
RescueAVR firmware ☑️
Serial connection ☑️
Fusebit doctor compatible expansion header ☑️
HVPP expansion header 🔲
HVSP expansion header 🔲

40-pin DIP style A (AT90S8535)

Model Signature Working
AT90S8535 0x1E 0x93 0x03 ☑️
ATmega8535 0x1E 0x93 0x08 ☑️
ATmega163 0x1E 0x94 0x02 ☑️
ATmega323 0x1E 0x95 0x01 ☑️
ATmega16A 0x1E 0x94 0x03 ☑️
ATmega32A 0x1E 0x95 0x02 ☑️
ATmega324A 0x1E 0x95 0x15 ☑️
ATmega644PA 0x1E 0x96 0x0A ☑️
ATmega1284P 0x1E 0x97 0x05 ☑️

40-pin DIP style B (AT90S8515)

Model Signature Working
AT90S4414 0x1E 0x92 0x01 ☑️
AT90S8515 0x1E 0x93 0x01 ☑️
ATmega8515 0x1E 0x93 0x06 ☑️
ATmega161 0x1E 0x94 0x01 ☑️
ATmega162 0x1E 0x94 0x04 ☑️

28-pin DIP style A (AT90S2333)

Model Signature Working
AT90S2333 0x1E 0x91 0x05 ☑️
AT90S4433 0x1E 0x92 0x03 ☑️
ATmega8 0x1E 0x93 0x07 ☑️
ATmega48 0x1E 0x92 0x05 ☑️
ATmega88 0x1E 0x93 0x0A ☑️
ATmega168 0x1E 0x94 0x06 ☑️
ATmega328 0x1E 0x95 0x14 ☑️
ATtiny48 0x1E 0x92 0x09 ☑️
ATtiny88 0x1E 0x93 0x11 ☑️

Adapter for TQFP32: https://github.com/atoomnetmarc/Fusebit-Doctor-TQFP32-adapter

20-pin DIP style A (AT90S1200)

Model Signature Working
AT90S1200 0x1E 0x90 0x01 ☑️
AT90S2313 0x1E 0x91 0x01 ☑️
ATtiny2313 0x1E 0x91 0x0A ☑️
ATtiny2313A 0x1E 0x91 0x0A ☑️
ATtiny4313 0x1E 0x92 0x0D ☑️

20-pin DIP style B (ATtiny26)

Model Signature Working
ATtiny26 0x1E 0x91 0x09 ☑️
ATtiny261A 0x1E 0x91 0x0C ☑️
ATtiny461 0x1E 0x92 0x08 ☑️
ATtiny461A 0x1E 0x92 0x08 ☑️
ATtiny861A 0x1E 0x93 0x0D ☑️

14-pin DIP style A (ATtiny24)

Model Signature Working
ATtiny24 0x1E 0x91 0x0B ☑️

8-pin DIP style A (AT90S2323)

Model Signature Working
AT90S2323 0x1E 0x91 0x02 ☑️
AT90S2343 0x1E 0x91 0x03 ☑️
ATtiny12 0x1E 0x90 0x05 ☑️
ATtiny15 0x1E 0x90 0x06 ☑️
ATtiny13 0x1E 0x90 0x07 ☑️
ATtiny25 0x1E 0x91 0x08 ☑️
ATtiny45 0x1E 0x92 0x06 ☑️
ATtiny85 0x1E 0x93 0x0B ☑️

Errata

PCB V1.1

  • No known erratum, however this pcb version has not been made yet.

PCB V1.0

  • 10.16mm wide 28-pin ZIF socket X3 seems to be unobtanium. Changed for 7.62mm wide 'narrow' 28-pin zif socket in V1.1 pcb.

License