Mega 2560 Recognized by Windows, but no serial communication [Solved]

Operating System: Windows 7 & 8 (tested both)
Device: Mega 2560 R3
Power: External 12V regulated power on Vin

So I've got a Mega 2560 R3 that has been connected to the PC over USB and operating happily for several weeks. Recently, either during or just before a code upload, it stopped responding to the USB port. The device is powering up and responds to the reset button, but I don't get Tx/Rx lights and AVRDude returns timeout errors. To top it all off, it fails the loopback test.

From reading many other posts, most people either have Windows stop recognizing the device completely or it is recognized and just needs to have the bootloader flashed. In my case, Windows still identifies the device as an Arduino Mega 2560 and assigns it a COM port, I just can't communicate with it.

I flashed the bootloader with an AVR ISP v2 to no avail. I've experimented with using it with and without external power and new USB cables.

Any thoughts on what might have failed on the device and/or other experiments I should perform to narrow it down?

Thanks!

Have you tried flashing firmware onto the 16u2 (ICSP header next to the USB connector)?
Firmware location is:
\arduino-1.0.2\hardware\arduino\firmwares\atmegaxxu2\MEGA-dfu_and_usbserial_combined.hex

If you use avrdude, just copy the .hex file into the avrdude directory (or path it....) and type

bin\avrdude -F -p at90usb162 -C etc\avrdude.conf -P COMxx -c avrispv2 -U flash:w:MEGA-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

(Where of course COMxx is your com-port)

Thanks for the quick response (and instructions!).

So I tried flashing the 16U2 and the response is below. Just for completeness, I tried using my AVRISPv2 and the ICSP header as well. Atmel Studio was able to identify the voltage, but could not enter programming mode or even read the device ID for the 16U2.

C:\Users\dabbott>avrdude -F -p at90usb162 -c etc\avrdude.conf -P COM13 -c avrisp
v2 -U flash:w:MEGA-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0
xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout

Ouch. I am afraid that your 16u2 is no more.

If you want to verify your 2560, try hooking up the 2560 ICSP and change the Arduino IDE Tools->Programmer->AVRISP mkII. Then open the Fade Sketch and change the pin to D13 and File->Upload Using Programmer.

If that works, you will need to need to put the Mega2560 Bootloader back on and replace the 16u2 and try to put the firmware on to restore USB communications.

Oh well, thats what I was afraid of. Thanks for your help.