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 :
But the GitHub site doesn’t provide any download button for downloading a single file .Just click on Raw button at the right corner.
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 )
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.
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
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.
After the second wire touching , the Arduino board goes to DFU Mode.
Open up Device Manager to verify this.
While installing the FLIP , I noted the USB Driver location as below
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.
Remove the wires used for DFU mode & then fire up FLIP PROGRAMMER.
FLIP automatically recognizes the device & displays AT90USB82.
Open Settings –> Communication –> & click on USB to open up USB communication.
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
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 :
Thank you so much for this great tutorial! The best one I could find and I got my Arduino back alive… Good job!!
Sam
How do you turn it back to the original firmware?