Arduino Uno, no more serial communication

Hi everybody,

for a couple of weeks I am fighting with an Arduino Uno causing some trouble. I already posted a question on the german forum but it did not lead to a solution, so I hope somebody here can help. For those capable of understanding german, here is the link to the thread: http://tinyurl.com/88b7p9z

My arduino did (and still does) not allow uploading code with the IDE (1.0) - it always says "programmer not responding". I got the advice to re-flash the bootloader, therefore I bought a ISP programmer (mysmartUSB light) and reflashed succesfully the bootloader. Here is what I did step-by-step:

  • I updated the programmers.txt, so that my programmer shows up in the IDE -> and yes it does
  • I select the serial port, the Board and the programmer and hit Burn Bootloader -> I receive the message from the IDE "Done Burning Bootloader"

I tried to upload a Code Example ("Blink") with the IDE - no success, same errors :-( !

If I try to upload the same example with the ISP programmer - it works, I can upload the code and the arduino is executing it.

But if I upload something (with the ISP) with serial communication (from Ardunio -> PC) in the code, there is no serial communication through the USB connection, no data is sent from the arduino to the PC.

I am grateful for every hint....

Somebody told me I should update the firmware of the UART chip - but I don't know how to do that...

Thanks Christian

1) Try the loop-back test if you have not. 2) It isn't the first time someone had this error in the forum. Search around for those threads. 3) If you used pins 0 or 1 (RX/TX) in your code, you might have prevent the Arduino from communicating with the computer. I recommend not to use those pins, ever. 4) What did you do before encountering this problem? What code were you using?

1) Try the loop-back test if you have not.

No Success!

2) It isn't the first time someone had this error in the forum. Search around for those threads.

I keep on searching, but most hits I get recommend re-flashing the bootloader - and that's what I already did..... or the problem is the wrong port.....I am searching for a while and tried a lot of solutions, but none of them worked for me.

3) If you used pins 0 or 1 (RX/TX) in your code, you might have prevent the Arduino from communicating with the computer. I recommend not to use those pins, ever.

No - I am using very basic code to test the serial communication:

void setup () {  
  Serial.begin(9600);  
}

void loop () {
  Serial.print ("test");
}

4) What did you do before encountering this problem? What code were you using?

As far as I can remember, I tried to upload code, while I had the serial monitor open and of course received data.

This is not an uncommon problem. I searched the forum, and many people got "avrdude: stk500_recv(): programmer is not responding". However, there were no clear solutions that I found. Maybe you can try this: http://www.arduino.cc/en/Guide/Troubleshooting#toc1 ?

As far as I can remember, I tried to upload code, while I had the serial monitor open and of course received data.

Can you remember what you did right before this happened? I'm not talking about the test sketch; I'm talking about the code you used before this error occurred.

I have another arduino and this one is working without any problems - uploading via IDE, serial communication - if I unplug this one and try the same things with the second one it fails - it's not a problem in the PC or the connection or driver..... it must be a problem of the arduino itself, right?

As far as I can see, the only thing in the troubleshooting guide referring to the arduino itself is burning a new bootloader - and that's what I already did.

If it still doesn't work, you can ask for help in the forum.

So here I am ;-) !

What I forgot to say:

Make sure there's a bootloader burned on your Arduino board. To check, reset the board. The built-in L LED (which is connected to pin 13) should blink. If it doesn't, there may not be a bootloader on your board.

If I hit the reset button, the LED is NOT flashing, although I burned a new one on it. Is it possible that burning the bootloader fails and the IDE does not tell me? But this would not explain, why there is no serial communication, right?

Can you remember what you did right before this happened? I'm not talking about the test sketch; I'm talking about the code you used before this error occurred.

That's what I understood - it's what I mentioned. More precise: I am working on my version of the miniE from www.openmoco.org and for debugging purposes I had some Serial.print commands in the code. While working on the code and uploading and running it again and again, once I forgot to close the serial monitor before uploading again.

Since the loopback test failed, it's possible the firmware in the 8U2/16U2 has been corrupted. This chip is responsible for the USB to serial conversion on the Arduino.

Here are instructions to update the firmware on the 8U2/16U2: http://arduino.cc/en/Hacking/DFUProgramming8U2

Since you already have an ISP programmer, you can update the firmware on the 8U2/16U2 using your ISP programmer, instead of using the DFU method. If using the ISP, make sure to use the correct version of the firmware:

UNO Rev 1 and 2 UNO-dfu_and_usbserial_combined.hex

UNO Rev 3 \arduino-1.0\hardware\arduino\firmwares\Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex

Allright - it sounds if this would lead in the right direction.

I am not quite sure what exactly I have to do if I want to use the ISP - the link on the Arduino website to this tutorial is broken :-(.

I tried it with avrdude:

avrdude -cavr910 -P /dev/ttyUSB0 -p m328p -U flash:w:Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex

but I get the "programmer not responding" error.

Thanks Christian

The ISP header for the 16U2 is located in the upper left corner of the board, next to the AREF label. (See the attached image)

This is the ISP header you need to connect to in order to program the 16U2. You also need to change the processor type in your avrdude command to target the 16U2. (-p m16u2 )

The ISP header for the 16U2 is located in the upper left corner of the board, next to the AREF label. (See the attached image)

I got this already ;-) !

You also need to change the processor type in your avrdude command to target the 16U2. (-p m16u2 )

After changing this, I found out that my ISP programmer (mySmart USB light) is not supporting the chip:

avrdude: error: selected device is not supported by programmer: m16u2

Eventually I was able to update the firmware of the 16U2 chip. But unfortunately this did not solve the problem ! There is still no serial communication with my arduino possible.

Another thing which I found out: if I upload the blink example the onboard led does not blink, while an led plugged into pin13 does blink....