EmbDev.net

Forum: µC & Digital Electronics Bricked Arduino - fixing an Atmega16u2


von Gerrit R. (gorenje)


Rate this post
useful
not useful
Hello,

I've been trying to unbrick an Arduino UNO Rev3 using an USBtinyISP(1). 
Basically what happened
was that I short-circuited the arduino with 12V and didn't notice it 
until it started smoking!
I've purchased a second arduino UNO rev3 so I've been testing my usage 
of the USBtinyISP on
the working Arduino.

On the bricked Arduino, the ON-led and the L-led still light up but the 
Arduino software does
not see the serial port of the arduino.

I've basically done two things, flash the bootloader of the Atmega328(2) 
and then flashed the
bootloader of the Atmega16U2 with the result the that bricked arduino 
still doesn't respond.

What I've noticed is that I can flash the bootloader of the working 
Atmega328 using either board,
i.e. I've replaced the Atmega328 on the bricked board with the Atmega328 
from the working
arduino. On the other hand, the Atmega328 from the bricked arduino does 
not respond on either
board, i.e. I can't flash the bootloader of bricked Atmega328.

I then found this command line(3) to flash the Atmega16U2:
1
avrdude -p at90usb162 -F -P usb -c usbtiny -U flash:w:UNO-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m

Once again, this works perfectly on the working Arduino but on the 
bricked Arduino, I only get:
1
avrdude: initialization failed, rc=-1
2
avrdude: AVR device initialized and ready to accept instructions
3
avrdude: Device signature = 0x000000
4
avrdude: Yikes!  Invalid device signature.
5
avrdude: Expected signature for AT90USB162 is 1E 94 82
6
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
7
         To disable this feature, specify the -D option.
8
9
avrdude done.  Thank you.

So I would conclude that both the Atmega16U2 and the Atmega328 need 
replacing on the bricked
Arduino. Obviously this is not that easy with the Atmega16U2, is there 
an alternative?

Is there anything else I could do? Perhaps force flash the Atmega16U2?

Thanks for reading this far :)

1=http://www.adafruit.com/products/46
2=Using the Arduino's Tools -> Burn Bootloader
3=http://forum.arduino.cc/index.php?topic=127797.0

von Peter L. (luidoltp)


Rate this post
useful
not useful
When smoke came out of the µC it is most likely that the device is 
permanently damaged. You need to replace the ICs.

Maybe you could just unsolder the 16u2 (or cut the wires to it) and 
replace the Atmega328.
Then you should be able to use the Arduino (without the programming and 
serial interface).

Best regards,
Lui

: Edited by User
von Gerrit R. (gorenje)


Rate this post
useful
not useful
Ok so there is not much more that I can do other than remove or replace 
the 16u2 (either of which don't seem that easy). Can the Atmega328 then 
still be programmed via the Arduino software (i.e. via interfacing with 
the USBtiny) or won't that be possible?

Thanks,
gorenje

von Peter L. (luidoltp)


Rate this post
useful
not useful
Gerrit R. wrote:
> Ok so there is not much more that I can do other than remove or replace
> the 16u2 (either of which don't seem that easy).

Crude but ... maybe its possible to cut alonge the edge of the 16u2 with 
a sharp knife. I haven't looked at the layout in detail but probably 
there are no important wires (that are needed for the operation of the 
Atmega328) there. Be careful not to short anything.

> Can the Atmega328 then
> still be programmed via the Arduino software (i.e. via interfacing with
> the USBtiny) or won't that be possible?

If you can do that on a working borad you should also be able to do that 
after the 16u2 is removed. No garantees.

Just in case you haven't done that:
Be sure to check the voltage regulator. Maybe thats the culprit.

Best regards,
Lui

von Gerrit R. (gorenje)


Rate this post
useful
not useful
The bricked arduino seems to definitely have an issue with the 16u2 - 
I've just plugged a programmed working atmega328 onto it and it works, 
i.e. the program works, intefacing with the pins.

So I'll use my good arduino to program atmega328 for the broken arduino, 
which is a lot better than throwing the arduino away!

As an aside, the TX LED doesn't work - I'm sending some Serial output 
but the TX LED does not flash. So I assume the TX Led is driven by the 
16u2, which it seems to be ---> 
http://arduino.cc/de/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Thanks for the help,
gorenje

: Edited by User
von Stefan W. (dl6dx)


Rate this post
useful
not useful
Gerrit R. wrote:
> Ok so there is not much more that I can do other than remove or replace
> the 16u2 (either of which don't seem that easy).

Last year, when I got my new hot air reqork station, a friend of mine 
gave me a bunch of "toasted" arduino boards for my first tests.

One of them had a defect 8u2 (same package as the 16u2).
Unsoldering: https://www.youtube.com/watch?v=Ujvkt5A9HeQ
To resolder the new one I resoldered the pads and the center pad, 
applied flux, placed the new 8u2 on the pads and reheated.
Time over all including reprogramming: 15 minutes.

So don't give up hope.

Regards

Stefan

: Edited by User
von Gerrit R. (gorenje)


Rate this post
useful
not useful
Stefan Wagner wrote:
> Last year, when I got my new hot air reqork station, a friend of mine
> gave me a bunch of "toasted" arduino boards for my first tests.

Nice! With that I would definitely try to resolder the 16u2 but at the
moment, it's easy to reorder some atmega328 and reprogram them via the
working arduino - just a bit cheaper :)

Thanks for pointer,
gorenje

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.