My Arduino UNO suddenly stopped working.When I connect the USB cable there is no plug & play response inside the Device Manager.There is not even a slight indication of anything connected to USB.

After a long struggle I found out that the USB FIRMWARE on the small SMD IC ATMEGA 8U2 or 16U2 found next to the USB connector is corrupted.This Firmware is the one providing USB connectivity to your Arduino board.

Now let me explain the Solution to this problem.

To continue , I downloaded 

1) FLIP tool for programming the Firmware.

2) The Firmware as a Hex file (Arduino-usbserial-uno.hex)

First I downloaded the FLIP software from the ATMEL webpage.FLIP is FLEXIBLE IN-SYSTEM PROGRAMMER provided by ATMEL for Firmware Upgrade.

I downloaded the version with Java Run Time Environment .Link  here.

Then I installed the FLIP application & noted the path to Drivers installed along with FLIP.

The path in my installation is

   C:\Program Files\Atmel\Flip 3.4.7\usb

 

Next I searched for the 8U2 Firmware which is “Arduino-usbserial-uno.hex” file.

Arduino’s official website has all the information on DFU – Device Firmware Upgrade

http://arduino.cc/en/Hacking/DFUProgramming8U2

I Googled for  “ Arduino-usbserial-uno.hex file  “ & landed on  GITHUB repository where the Firmware is found as a Hex file.

Following is the complete Link to the Hex file :

https://github.com/suspect-devices/arduino-core-0022/blob/master/arduino/firmwares/arduino-usbserial/Arduino-usbserial-uno.hex

 

But the GitHub site doesn’t provide any download button for downloading a single file .Just click on Raw button at the right corner.

hex1

Now the individual Hex file alone will open up.

Click on File –> Save Page AS  (Firefox browser)

( If your browser is IE then,    Page->Save As   , In Chrome browser click Ctrl+S )

 

hex2

 

New window opens up with File name automatically loaded.Do not change anything.Just click on Save.

The file is saved as Hex file.This is the Firmware file we’re going to load onto the 8u2/16U2 chip.

HEX3

 

To enable Firmware Upgrade , the Arduino has to be put on DFU Mode (Device Firmware Upgrade).

Connect the first pin of ICSP  near the USB connector to GND as shown below

CON1

 

Now plug in another bit of wire to GND & then momentarily touch the other end of wire to the Left point of SMD capacitor seen just below the RX LED.

Some boards have 2capacitors instead of one .Touch the one  below the RX LED.

 

touch2

 

 

con11

 

After the second wire touching , the Arduino board goes to DFU Mode.

Open up Device Manager to verify this.

 

Image 1

 

While installing the FLIP , I noted the USB Driver location as below

Image 2

Right Click Arduino Uno DFU in the Device Manager & click on Upgrade Software.

Browse to the above location of USB folder where the drivers reside.

Windows will successfully update the drivers & displays AT90USB82.

Note that the driver is not Atmega8U2 , but AT90USB82.

 

Image 3

 

Image 4

Remove the wires used for DFU mode & then fire up FLIP PROGRAMMER.

FLIP automatically recognizes the device & displays AT90USB82.

Image 5

 

Open Settings –> Communication –> & click on USB  to open up USB communication.

 

Image 6

AT bottom right corner you can see USB ON confirmation.

Now click File –> Load Hex File

& browse to the location where you stored the Arduino-usbserial-uno.hex file.

Click on Run.

The Firmware is updated within seconds

Image 7

Your ARDUINO is ready to use now.Remove the USB cord & connect it back to see the board Recognized under Device Manager.

Watch this Video :

 

Upgrading Arduino USB Firmware using FLIP