Something unexpected happened when I was writing new code to the flash memory of my Baby-O recently. I’m using AVRDUDE on a Mac to do all of my programming. I have written hundreds of different programs to this Baby-O with the same USB AVR Programmer and I’ve never had an issue like this.
While the programmer was writing to the flash, the progress bar stopped and I believe there was a STK500v2 timeout message that appeared. The progress bar continued on a new line and eventually finished, although very slowly. Then, during the verification process, I was informed that the lfuse bits had been changed! (from f6 to 0) I was asked if I wanted to change them back, to which I answered yes. Unfortunately, there was subsequent timeout messages that continued forever. Eventually, I canceled the process.
I was unable to connect to the Baby-O after that. Even if I use the -F option.
I grabbed a second brand new Baby-O and tried to program that one, but the programmer did the same thing! Needless to say, I was quite disappointed at having seemingly burned up $20.
I took the new Baby-O to a different computer (again, AVRDUDE on a Mac) and using a brand new USB AVR Programmer, I was able to erase the Baby-O and restore functionality. Then, using the same new USB AVR Programmer, I attempted to do the same thing with the malfunctioning Baby-O but I’m still unable to communicate with it. Whenever I try, I get the following message:
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
avrdude done. Thank you.
To which I say, ‘You’re welcome.’
So, I essentially have two questions:
Is my original USB AVR Programmer bad?
Is my original Baby-O unrecoverable?
Thanks in advance for any responses.