After some searching online, I managed to find a blog post where somebody built an HV programmer to fix pretty much exactly the issue that I’ve had as well. While programming their AVR chips through a USBTiny, they accidentally set the reset disable fuse, locking themselves out of the AVR programming. They point out exactly the frustrating part of that: the microchip is perfectly fine – it absolutely works, and could be used still. It’s just that SPI programming is unavailable. Now, the post is from 2008, so the claim that there are few to no HV programmers are available might be quite outdated (I hope so, at least). I’ll first try to find a cheap programmer, but at least I now have an alternative available as well.
EDIT: In fact, I’ve found another blog post with an even easier solution. That looks like one I’ll put on a bit of perfboard, as I doubt this will be the last time I run into this problem.
I’m trying to learn a bit about in-system programming of microchips, and specifically some of the Atmel chips. I have an Arduino Uno lying around, on which I programmed a simple Pomodoro timer, as well as an ATtiny that I wanted to use to experiment more with.
That Pomodoro timer idea was a lot of fun to make, and taught me a bit about bit masking and so on, but I never got to putting it on some perf board, because that would either require getting a 16Mhz crystal in (something I’d just not gotten around to) or otherwise setting some fuses in the Atmega328P (something I had no idea how to do). Recently, I found this tutorial on Assembly programming microchips that seemed quite fun, and it require the purchase of an AVR programmer. Fortunately, you can pick one up for about €5 if you go off-brand, so I just got one. As luck would have it, that’s exactly what I need for both purposes.
The tutorial on Assembly I’m intending to follow is written for Windows, and so includes plenty of references to Atmel Studio. As is usual in these cases, Atmel Studio is not available on Linux, so I had to explore alternatives. After a lot of hits and misses (usually involving using an Arduino Uno as a programmer), I end up finding a YouTube channel where somebody made a helpful tutorial series on moving from using an Arduino to going as close to “bare metal” (i.e. using little software) as possible. So, not only do I learn I can use AVRDude on Linux to achieve my goal of following the Assembly tutorial, I also learn that I can flash my Atmega328P with this thing so that I can break that out of the Uno board and use it standalone. Score!
I look forward to being able to complete that Pomodoro project in its first iteration soon, and thereby picking up some relevant skills for the later tutorial as well.