noquest banner

How to update Arduino UNO non SMD firmware, without soldering

This is a tutorial for upgrading the Arduino UNO (non SMD version) firmware without soldering, to avoid GNU/Linux error when trying to upload programs.

Learn the difference between Arduino UNO SMD (Suface Mount Device)and non SMD board by looking at the pictures.

arduino uno penguin friend
After the update Arduino UNO will be more GNU/Linux friendly.

Problem description:
We get an Arduino UNO board, connected it and installed the software on Linux Fedora 14, with the basic commands:

yum install arduino
sudo usermod -a -G uucp,dialout,lock USERNAMEGOESHERE

But after several tests, the tools menu in Arduino GUI get very slow and the USB interface disconnects, it was annoying. But on a Windows 7 environment worked great.

The errors by typing the dmesg command look like:

usb 2-2: new full speed USB device using uhci_hcd and address 21
usb 2-2: device not accepting address 21, error -110
hub 2-0:1.0: unable to enumerate USB device on port 2
usb 2-1: USB disconnect, address 17

After some googling we found the problem and the solution. We need to upgrade from firmware version 0000 to 0001 for fixing the Linux connectivity issues. Reported also on Ubuntu.

Since around May, 2011 Arduino UNO comes with rev. 0001 version of the firmware, but older manufactured boards may need an update.

But this is not a software only solution, because we are required to solder a resistance on the back of the board. So we searched for a non soldering alternative solution.

We have to do the process in Windows 7 because we get disconnect errors in Fedora Linux.

The official website solution is:
We learned the trick to enter programming mode without soldering from:,52447.0.html

Steps for the fix:

- First at all download and install the Arduino software for Windows.

- Connect the board and install the requested drivers from the Arduino folder.

-Check if you really need the update.
Click properties on My Computer, then  Advanced system settings, Hardware, Device manager, Ports, select properties, Device details and look to the PID, if it's 0000 then you need the update, else you don't.

Next steps

- Disconnect the board.

- Download and install Flip, that's the Atmel programmer.
FLIP 3.4.5 for Windows (requires Java Runtime Environment)
If you don't have it,  also get Sun Java.

- Download and save the updated firmware file.

- Run Flip and select the device in Flip.
Open Device menu, select, AT90USB82.
Exit Flip.

Atmel flip select AT90USB82

- Connect the board and install the Flip requested drivers from the Flip folder.

- Using two wires, follow the instructions below in that order.

Arduino uno board no soldering update

1 - Hold the red wire, as in the picture, from the top left pin to GND (Ground).
2 - Touch just once, the green wire from GND to the left side of the capacitor, as in the picture (LED will flash briefly).
3 - Remove the green wire.
4 - Remove the red wire.

- Run Flip, and load the .hex file and select USB communication.
File menu, load hex file and select the downloaded (Arduino-usbserial-uno.hex) file.
Settings, communication, USB.

- Upload the firmware.
By pressing Run button we'll update in two seconds the firmware.

Atmel flip run arduino uno upgrade

- Disconnect the board from the USB cable.

- Check the update.
Connect the board again.
Click properties on My Computer, then  Advanced system settings, Hardware, Device manager, Ports, select properties, Device details and you must see the PID 0001 that means that the update is working.

updated ok to 0001

- Finished.
Now run your Linux box and try to load some examples, it must work without disconnection issues.

December 2011.

Use main page comments for questions.

Copyright Contact