If you’re an experienced hacker, you’ve probably run into a problem at some point and thought “let’s make a tool to automate that”. A few hours later you’ve got your tool, but then realize that the amount of work you put into making the tool vastly exceeds what you would have needed to solve the original problem manually. That really doesn’t matter though: developing a fancy tool can be a rewarding experience that teaches you way more about the original problem than you would have learned otherwise. [sjm4306]’s ATtiny High Voltage Fuse Reset-er is a clever device that firmly falls into this category.
The problem it solves is familiar to anyone who’s ever worked with Atmel/Microchip’s ATtiny series of microcontrollers: set one of the configuration fuses incorrectly and you’re no longer able to reprogram your chip. Getting the ATtiny back to its original configuration requires a high-voltage programming step that involves pulling the reset pin to 12 V in what’s otherwise a 5 V system. You could simply grab a spare 12 V supply and hack together a level shifter with a few transistors, but where’s the fun in that?
[sjm4306]’s solution is built on a pretty purple PCB that contains an ATmega328, an OLED display, and sockets to accommodate various versions of the ATtiny series microcontrollers. To generate the required 12 V, one could simply use an off-the-shelf boost converter IC. But instead, he decided it would be interesting to make such a circuit out of discrete components and control it using the ATmega. After all, this chip already contains timers to generate PWM signals and an ADC to measure the converter’s output voltage, so all it took was to write some control logic in the form of a PID controller.
The end result, as you can see in the video embedded below, is a convenient little PCB that runs off a 5 V USB power supply and resets the fuses on your ATtiny at the push of a button. Sometimes, simple tools that do one thing well are all you need; however, if you’re looking for an all-in-one AVR programmer that also supports HV programming, check out this AVR Multi-Tool.
It is a beautiful device.
“A few hours later you’ve got your tool, but then realize that the amount of work you put into making the tool vastly exceeds what you would have needed to solve the original problem manually.”
That’s when you share your new tool design on the internet knowing it will save others time. And you feel good about that because you know that everything else you are doing is built upon all the people who came before you and did the same.
^This
I’ve learned so much from projects on this site that openly shared info, so I pay it forward by doing the same.
Thank you! I was literally designing a very very similar device, but using an A23 battery for the 12V supply… I’ll probably just make yours instead – the OLED is a nice feature too:-)
Interesting, I didn’t know about these fuses. I’ve got an Attiny85 on a digispark that I intend to let hooked on an internal USB port on a machine and I was wondering how to prevent anybody to reprogram it (physical access isn’t in the threat model). Is there any documentation on how to prevent reprogramming (at least without a HV programmer like there) by playing with said fuses?
Look into the lockbit fuse for the attiny85, it prevents programming and/or verification
Thank you
Suitable for attiny2313 also?