[FIXED] Uno Tx light stuck on, board unresponsive

I just want to post this as I searched all over the place and couldn't find a solution that worked until I figured it out for myself, hopefully it'll help anyone else who lands in the same mess. I'm a horrendous noob to all this so apologies if I missed something obvious, apparently there's a semi-known issue with these boards becoming non-responsive if serial.write(); or similar functions go nuts.

Gear:
Arduino Uno
Ubuntu 10.10

Symptoms:

  • Shortly after power-up, Tx light flashed a few times, then went solid.
  • Serial monitor spewed out a constant stream of 3-digit numbers around the 190-205 range.
  • Reset button became non-responsive.
  • Attempt to upload a new sketch resulted in "protocol error, expect=0x14, resp=0x00"
  • Uploader lost the USB port (ttyACM0) and become incredibly sluggish, this cleared up instantly when I disconnected the USB cable.

If board was connected with reset button held down, ttyACM0 became visible momentarily and Rx light flashed before all the above symptoms kicked in again. Apparently this board listens for new instructions for 1 second after power-up regardless of the sketch, or something like that? Still, I couldn't upload the sketch I was working on (servo tutorial, CIRC-04 I think).

Fix:

  • Created the smallest valid sketch I could think of on the spot:
void setup {}
void loop {delay(9999);}
  • Connected board with the reset button down as above, kept hitting reset button every half-second with one hand while ensuring that uploader was set to ttyACM0 with the other.
  • Hit Upload and stopped resetting.
  • Tiny sketch uploaded successfully before the board had a chance to spack out again.
  • Emphatic fist pump of victory and a quiet but heartfelt "booya!"

So, back in business now but I'd really love a simpler bulletproof hardware-override method of wiping the installed sketch - a factory reset jumper connection or something. Is there one, or could this be a consideration for future revisions? Still an educational experience all round

So, back in business now but I'd really love a simpler bulletproof hardware-override method of wiping the installed sketch - a factory reset jumper connection or something. Is there one, or could this be a consideration for future revisions? Still an educational experience all round

If on uses a hardware ISP programmer then erasing a chip is a simple matter. The problem being the dual use of the internal USART hardware as a comm path for both the loaded running sketch and the bootloader program. As those two software functions never run at the same time it's usually not a problem. However I think the root cause of your problem symptom was a bug in the Uno's bootloader that has just recently been solved and if you search around you should be able find how you can update your bootloader program pretty easily if you have access to another arduino board to act as a ISP programmer.

Lefty

Thanks for the tip; I've got another board on the way, so I'll look into this when it arrives. At least I have a working Uno now :slight_smile:

Thanks for this, just got my Uno yesterday and after playing about with some examples I ended up with the same problem.
As I am running Ubuntu 10.10 as well this was the ideal solution so i am leaving a link to this on all the forums and groups to do with arduino that I find.
best wishes,
Norman

Read through this