Fio Keyboard program out of control, how to reset? My question involves a Sparkfun Fio v3, similar to the Arduino Fio.

I had a student who was testing his understanding of the Keyboard library.  He uploaded a sketch that continuously sends output, emulating a keyboard, saying "Hello!If you're reading this, then you did things right!" (I don't have his code, unfortunately, so I can't post it.)

So, now, whenever I connect it via the USB, I can't upload a new sketch because the Serial channel is clogged with this output.  (Error Message: "avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00" and so on)  

I've tried putting the cursor inside the header comment in 'Blink', so that the new characters that are being spammed to my code are all inside a comment, and this makes it possible to compile, but it won't sync and upload.  I've tried burning a new bootloader, and this fails as well (Message: "Error while burning bootloader.").

It seems to me that the only way to get this device back is to reset the memory without connecting to a computer, but I can't find any way to do this.

Is there any way to rescue this device?
Hehe... This is a fun one to try and get out of. The normal way is to reflash the bootloader...  

If it's the same as the Leonardo you get about 8 seconds after a reset while just the bootloader runs before it starts to spam everything with text. So you can try:


Open notepad or something similar
Plug in the board
Press and hold the RESET button (or connect the RESET pin to GND with wire)
Open the IDE and load Blink.ino


Now the tricky bit.  If the correct serial port isn't selected, you need to, within the space of 8 seconds:


Release the reset button.
Let the PC enumerate the device
Open the serial ports menu and select the right port
Press and hold the RESET button again.


Now you can program it, in a similar way:


Press UPLOAD in the IDE. 
Just before it finishes compiling (turn on verbose output can help you time it better) release the RESET button.


If you timed it right the bootloader should run and accept the new program before the existing sketch runs and starts spamming everything.