Aruino UNO Rev3 Bricked ? (ATMEGA16U2)

Hi,

I am using an Arduino UNO Rev3 since a few weeks without problems on my Windows 7 SP1 computer.
I have recently purchased a few naked ATMEGA328p-pu that i wanted to use in projects.
I have used Arduino-ISP sketch to burn bootloader into each ones and have tried to put them into the Arduino board's IC Connector and everything was working perfectly. I have tried uploading some led blinking sketch and it worked.

BUT
I did some bad connection in my last test (some sort of short circuit...). I didn't found what i did but after my arduino was powered since a few seconds, i start smelling some "electronic component heating"... I briefly stoped power supply and unplugged everything.

I thought Arduino was still working because the ATMEGA328P-PU was still working.

I then realized that i can no more upload new sketches...

I have of course checked if my board was correct, if the com port was selected, if the good programmer was selected...

When i try to upload (with verbose mode) i am getting :

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "E:\dev\arduino\arduino-1.0.2\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM3
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Recv: 
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done.  Thank you.

The fact are :

  • my ATMEGA328P-PU seems to works : the "L" led blink when powering up and then get fixed.
  • when trying to upload, i see no led activity at all (no RX or TX blinking)...
  • The Arduino is still detected on my computer as "Aduino UNO R3 (COM3)" (i have tried to remove the device and drivers and reinstall but it is still the same).

I was thinking about some problem on the ATMEGA16U2
I tried to apply some tutorials about reflashing the atmega16U2 using DFU Mode but i cannot manage to go into DFU Mode :

  • I have tried to put a jumper on the icsp connector on the 2 pin nearest to the USB Connector but nothing happend in the device manager (the "Arduino UNO R3 (COM3)") is still here...
  • I know i have read that you have to put some resistor on the backside of the Arduino board but i cannot manage to see if it is still necessary on REV3 version.
  • I have found on the front side of my Board the "RESET-EN" pin hole which seems to be at the same place as the resistor which should be in place in some tutorials. I tried to put a resistor on this 2 pin holes while using a jumper on the reset/gnd part of the icsp header near the usb port, but still nothing...

I don't know if i am doing something wrong.
I don't know if it could some other componnent related to this ATMEGA (capacitor ?) that i could change maybe ?

I would really appreciate if anyone of you had any clues to help me fix my Arduino...

Sincerly,

elfrancesco

I should mention that i have also tried to communicate with my ATMEGA328P-PU using RX and TX as mentionned on http://arduino.cc/en/Tutorial/ArduinoToBreadboard

And i am getting this result :

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "E:\dev\arduino\arduino-1.0.2\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM3
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 57600
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Recv: 
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done.  Thank you.

It seems to be the samee problem...
I definatly think my atmega16u2 is dead...

Thanks for any help

HI again,
I suppose that since nobody answer me my atmega16u2 may be dead...
Is there a way to check if it is right please ?

The LoopBack test was not working

But my computer still detect correctly the chip (deletting and then reinstalling drivers)

Any clues ?

Thanks

I have exactly the same problem after connecting the Arduino to L298 module :frowning:
"avrdude: stk500_getsync(): not in sync: resp=0x00" generally means the Arduino is not responding but given that Rx/Tx lights didn't blink while uploading code; This is not an error cause by corrupt bootloader (which is easier to fix).
Do you have a AVR programmer to re-flash the firmware for that Atmega16u2 ?

I am also having the same problem. i.e. "avrdude: stk500_getsync(): not in sync: resp=0x00", and the RX/TX LEDs are not flashing. I have no idea how it happened, but it's hard to believe I could have blown the Atmega16u2 completely.

You said something about AVR programmer - do you have any guidance about that technique?

You will notice the 6 pin header near the Atmega16U2, just connect an AVR programmer to those pins then re-flash the chip.
With this I can make sure either the chip is dead or it has corrupt firmware. In worse case, use it to program the Atmega328p directly.
// I think i'll have that programmer in my mailbox later today.

Starzz:
You will notice the 6 pin header near the Atmega16U2, just connect an AVR programmer to those pins then re-flash the chip.
With this I can make sure either the chip is dead or it has corrupt firmware. In worse case, use it to program the Atmega328p directly.
// I think i'll have that programmer in my mailbox later today.

i have a similar problem when i connect the card there is no hardware detected but i used the ICSP header for the atmega16u2 and it accepted the firmware which means the chip is not dead but still when i try to connect it to PC there is no hardware i tried several PCs and i tried a working and test USB cable but still no luck ? what else might be the reason for this ???

@pixema: How did you re-flash the chip ? my AVR ISP programmer showed up as a "USB Input device" under the "Human Interface Device" section.
I was expecting some kind of virtual COM port ? that's all I know for now.

// The bootloader of Atmega328P is still working so currently I use a Serial-USB converter to upload the code via UART interface, bad thing is it requires manual reset during the upload progress.

Starzz:
// The bootloader of Atmega328P is still working so currently I use a Serial-USB converter to upload the code via UART interface, bad thing is it requires manual reset during the upload progress.

i used another Arduino as a programmer using the ArduinoISP example connected the pins on the ICSP near the Atmega16u2 chip then i used Winavr to flash the chip with this command

avrdude -p m16u2 -F -P COM12 -c avrisp -U flash:w:Arduino-usbserial-atmega16u2-Uno-Rev3.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m -b 19200

erased the chip then wrote the new firmware and returned successful
but still no luck i am wondering what else might cause the problem
i also tried swaping the atmega328p with no luck i am really pulling my hair here not sure what else i could try

You may want to check the resistors of D- and D+ line, UNO R3 Eagle file and Atmega16u2 datasheet would be useful.

I think my problem is the same as elfrancesco's, which seems to be unanswered yet.

I was trying to build a motor board based on Adafruit's one. When it seemed to work off of USB, I tried to power my Arduino Uno R3 using a 12V 1.2A DC adapter, to provide more power for the motors. It still worked fine, only from that point on, I couldn't upload new sketches.

The board still works. The sketch still works. Resetting works and causes Led 13 to blink.

What doesn't work, is uploading. It seems to time-out, and the leds near RX and TX don't blink anymore.

The information I get is "avrdude: stk500_getsync(): not in sync: resp=0x00"
When showing verbose output on upload, I get:

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Dev\arduino-1.0.2\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM7
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Recv: 
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done.  Thank you.

Like elfrancesco, I'm scared that I fried my ATMega16U2, which is responsible for the serial communication. But I'm not sure.

I bought the Atmel AVRISP 2.0 STK 500 USB ISP Programmer, hoping that it would help me to try and revive my chip, but actually, I don't know where to start.

I've read some stuff about dfu-programmer to reset the ATMega16U2. One of them is a seemingly clear explanation: Bring your dead Uno/Mega back to life! How to fix ATMEGAXXU2 issues.
That seems allright, but getting the Arduino in dfu mode in the first place, doesn't seem to work. I briefly connected the two pins of the 6 pins near the USB connector, which should do the trick and show a different device, but instead the Arduino remains an Arduino UNO R3, instead of an Arduino DFU. The Arduino IDE still shows the COM port. Also, an usbviewer which I downloaded and the Device Manager of Windows keep showing the Arduino. So I'm not sure what to do.

I also tried the loopback test, which doesn't work. I've connected Reset to GND, and RX to TX. I typed in the serial monitor in the Arduino IDE, which worked, but I received nothing back.

Now I realize I'm just a beginner. It has been only a week or two since I purchased my Arduino, and I hadn't done much with with microprocessors or electronics in general before that, so I hope my explanation doesn't sound like utter nonsense. :slight_smile:

I should have mentioned, I'm also open to any information about uploading sketches through the AVRISP.

[edit]

I found two tutorials on uploading through an AVRISP mk II programmer, here and here. Now it seems that I haven't got the mkII, but the 'old' AVRISP, which exposes itself a a COM port rather than a USB device.
This means that now, in the Arduino IDE 1.0, I can choose from COM7 (Arduino) and COM9 (AVRISP).

To try the latter, I select COM9 in the Tools -> Serial Port menu, choose 'AVR ISP' (not mkII) in the Tools -> Programmer menu, and choose 'Upload Using Programmer' (Shift Upload).

Surprisingly, I get the same error:

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Dev\arduino-1.0.2\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM9
         Using Programmer              : stk500v1
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Recv: 
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done.  Thank you.

As you can see it uses COM9, and uses the programmer, but still no luck with the sync.

I thought this method wouldn't need the built in serial communication, but apparently it does, or something else is broken.

I should mention that I've tried plugging in a different ATMega 328P-PU microprocessor, that I bootloaded before. It still runs the Blink sketch that I uploaded before, but this one also doesn't accept new uploads, so I think that rules out the possibility of the processor itself being (partially) broken.
It also tells me that the sketch itself continues to run when I try to get the Arduino in dfu mode. I don't know if that should be the case, but it it. The LED near pin 13 keeps blinking (because of the Blink program, no fast blinks like when you reset).

Success after I thought all hope was lost!

Background:
I was convinced my first Arduino Uno Rev3 was fried when the "avrdude: stk500_getsync(): not in sync: resp=0x00" message started coming up out of nowhere. Disabling and enabling the COM4 in the device manager did not help. The TX/RX LEDs did not light up, and I assumed the FTDI chip (ATMEGA16U2) had been blown. I was working with a MOSFET for driving a motor on 9V, so it seemed plausible.
I bought a new Arduino Uno Rev3 which worked out of the box for a couple weeks... then it started telling me "avrdude: stk500_getsync(): not in sync: resp=0x00". Another blown FTDI chip! So I grumbled and bought a FTDI dedicated board from Amazon.
While the new FTDI board was en-route I tried the following simple steps, and got lucky.

What finally worked:
From the Device Manager (Note, this is on XP), uninstall the COM4 while plugged into the Arduino.
The board disappears.
Scan for new hardware changes.
The board reappears, but is unrecognized, and Windows wants you to install drivers.
Go through the Arduino's officially recommended XP install steps.
The board now accepts program uploads again, the TX/RX LEDs light up, all is well.

I fully expect to lose the board again, but hopefully this technique works again.
My question is now how to get two boards to work?
When I use two different COM ports (COM3 and COM4) the second one I install cannot sync ("avrdude ... not in sync").
Why can't I use one COM port (COM3) to upload to two different boards?

If you have a second Uno or similar you can run the sketch here:

You can test whether your main processor, or the USB processor, is responding. That should clarify if, at least, the chips are working or not.

GolezTrol:
I think my problem is the same as elfrancesco's, which seems to be unanswered yet.

Once you get the "burning smell" there isn't much more to say. :slight_smile:

Nick, thank you for your answer.

Unfortunately I haven't got a second Uno (yet). I do have a couple of separate ATMega328P microprocessors, and switching to one I preloaded before. It didn't make a difference. That one (also) worked (it still had Blink on it), but still I couldn't upload new sketches.

I didn't get a burning smell at any point during these experiments. I did about two days before, but that was quite unrelated, I think, and I've used the uploading mechanism quite a lot since.

I was running the AFMotor MotorParty example from Adafruit, which you can download to test their board, which I was replicating. It was running fine on 5V, only the motors started stuttering when I attached three (I've never had more than 3 attached). That's why I tried the 12V adapter, which should be well within the limits accepted by the Arduino board. I plugged it in the Arduino itself. When I did that, the sketch just started running again, no problem. The motors were spinning a little faster and better, as expected. Only after that, the communication with the PC turned out to be dead.
So I've had no burning smell, and I'm surprised that, of all things I could have blown up, it appears to be this part.

I've attached the Arduino to a different PC that didn't have anything installed before, but that also gives me the same sync-error, ruling out any problem with my USB ports.

I'm afraid I will have to buy another one, which might be a good idea anyway, although I'm afraid it might be bricked just as easily, making a cheap board expensive after all..

I have quite a few Unos, and have only bricked one, probably by incautiously touching it when my hands had "static" on them.

As a general rule the Uno board should be used to supply logic, not power to motors.

That's why I tried the 12V adapter, which should be well within the limits accepted by the Arduino board. I plugged it in the Arduino itself. When I did that, the sketch just started running again, no problem. The motors were spinning a little faster and better, as expected. Only after that, the communication with the PC turned out to be dead.

You need to define how much power the motors took, and in what way everything was hooked up. Possibly a snubber diode was required to stop reverse voltages going back into the Uno.

I tried to power my Arduino Uno R3 using a 12V 1.2A DC adapter, to provide more power for the motors.

It might be worth investigating motor driver boards, or transistor drivers. Using the Uno to provide "more power for the motors" is a fundamentally flawed approach. This isn't intended as a criticism, a couple of years ago I would have done the same thing. :slight_smile:

Nick, thanks again for your quick response.

Wiring 3 motors directly to Arduino output pins is not a very good idea. I actually found that out before I tried. :slight_smile:

So, in order to learn a little as well, I have read quite a lot about motor controllers and how they work.
I bought a couple of L293D IC's, which can be used as an H-bridge and have internal snubber diodes. I started to read about motor controllers, which proved difficult enough, because everybody seems to have a different opinion of whether, how and where to place any capacitators.

I finally stumbled upon the motor controller by Adafruit, which is sold as a kit. They have an excellent and detailed description of how to solder it together, but they also have put the schematics for version 1.0 of that shield online. I tried to build that schema on my breadboard.

I've attached a picture to show what I've done.

This picture was taken when I still had the 5V power source attached to my breadboard (grey cable in the right upper corner), which actually is a generic USB charger.

The jumper wires are attached to the various different digital ports, GND and Vin. The wire to Vin shouldn't be needed, but I added it, as it would be wired if you had a shield with its own power supply. Vin is also the pin that would feed the shield if you attached a power supply to the jack barrel on the Arduino itself, which was what I did.

The left and right ICs are the L293D dual half H-bridges. The chip in the middle is a 74HC595N shift register controlling the lot. The right L293D isn't wired yet, so it's actually only half of the motor controller of Adafruit. The left one is fully wired, though, including capacitators and resistors.

As you can see, Vin is attached to a separate rail, which powers (red wires) only pin 8 of the L293D, because it needs to send that voltage to the motors. It also powers the power line of the servos, and it powers a voltage regulator to provide 5V (green wires) to the 'logic' part of the board. Did I maybe miss something there?

So in this schema, the breadboard draws its power from Vin, is grounded to the (common) ground, and is controlled by the digital pins. The regulated voltage on the Arduino (3.3V and 5V) are not even connected to the breadboard.

So: Did I use a motor driver board? Yes.
Did I do that properly, or use a proper one? I don't know. XD

I tried my best replicating it as good as I can, but I might have made a mistake (will look into that). I also found that the schema for v1.2 of the Adafruit motor shield is also available, so I will check it for differences agains the 1.0.

But you're probably right. Maybe I made a mistake I didn't notice, or I messed up the chip while being static.
After all, I've only been in the Arduino business for two or three weeks, and the last electronics lessons before that were in high school, about 18 years ago, and involved no more than a couple of LEDs and resistors, a paperclip and a battery. :slight_smile: So I think I'm not doing too bad.

I will buy a new Arduino, and maybe some device that allows me to program the other one. Do you have any experience with the FTDI Basic Breakout - 5V? Apparently it is used to upload to Arduino Pro. Should I be able to use to upload sketches or programs to this Arduino, or to a separate ATMega328P on a breadboard?

What wonders me the most, is how to know which capacity the capacitators must be. If I read posts on various fora, people sometimes just seem to guess. In this case I had a schema and I've used ones that were as close to the displayed values as I had available in my toolbox, but I wouldn't be able to figure out these numbers myself.

I won't ask you to review my attempts in detail, based on this single picture, although I'm open to any general advice, of course. No one has ever died of constructive criticism. :slight_smile:

Should I be able to use [Sparkfun's FTDI Basic Breakout] to upload sketches or programs to this Arduino, or to a separate ATMega328P on a breadboard?

I think I've answered that one myself by finding this blog: :slight_smile: