This "How To" guide is for all who own an Arduino Ethernet and specially for who also has a FTDI cable.
In particular you will learn how to update the bootloader to the Arduino Ethernet that it does no longer timing problems during sketch uploading.
1 Arduino Ethernet
1 Arduino Uno
6 jumpers wire
1 USB cable
The problem and the way of solving
On the Arduino Ethernet versions that have been sold so far, many users who have used a FTDI cable weren't been able or have had any special trouble loading the sketches on their boards. This problem is due to incorrect timing between the FTDI cable and version of the bootloader loaded sull'Atmega328 present on the Arduino Ethernet.
Fortunately, this problem can be solved by installing the latest version of the bootloader: the optiboot_v4 .4.
Burning a full featured bootloader
There are various ways to be able to do the upgrade, but for each one of these cases another Arduino that work as a programmer is needed.
The easier technique was created by a member of the forum, whose nickname is "WestfW"[1], which allows you to update the bootloader to the latest version by simply uploading a sketch on an Arduino Duemilanove or Uno. We see in detail the procedure:
Download the sketch optiLoader.zip
This .zip file contains the folder that you must copy in the directory where you keep the Arduino sketches, usually called "sketchbook" [2].Once positioned the folder in the right place, open the Arduino environment and go to find the sketch as you normally do with the other sketches, "File > Sketchbook > optiLoader".
Upload the sketch in one Arduino Uno or Duemilanove.When the uploading is done on the board which we'll use as a programmer, you need to connect the card to be programmed (target) to the programmer, do it by following the example ArduinoISP. For safety, disconnect the USB cable.
Warning:Inside the sketch's instructions, you can also find the connection description, it's the same as the page linked above, but don't connect the pin 9 on the programmer to the +5V of the target as described, the Wiznet chip on the Arduino Ethernet has an huge power consumption, so powering the target from pin 9 maybe can cause damages on the Arduino used as a programmer.When the connections are done, reconnect the USB cable and open the Serial Monitor on your IDE (set 19200 in the dialog box for the baudrate), so will begin the board reprogramming. You'll see the flashing leds L, LX and RX. If everything is successful, the window on your Serial Monitor will apear a message like this:
If you get an error like this:
check that all connections are correct and make good contact This sketch has been tested both on a first version Arduino Uno and with an Arduino Uno r2 and works properly without needed for hardware changes.At the end of the reprogramming if you want to check that the bootloader was been really rewritten, open a shell or command prompt and type:
avrdude -c arduino -p m328p -P [yourSerialPort] -v
for example on Windows:
avrdude -c arduino -p m328p -P COM6 -v
or on Linux / Mac:
avrdude -c arduino -p m328p -P /dev/ttyACM0 -v
Note for Windows and Mac users: if avrdude is not installed on your computer, you can also run this progam because is contained in the Arduino directory. So, before launch the instructions described above, you have to be in the directory where avrdude is located, so reach the path typing:
cd ..\arduino-0022\hardware\tools\avr\binYou will see a list of data related to your Arduino board, including the version of the bootloader, make sure that is wrote 4.4.
Notes:
[1] I offer a special thanks to William Westfield (aka WestfW on forum) for the excellent work he has done writing this sketch, for the help he provides to the community and for the support he gave me to make this tutorial.
[2] I've downloaded the optiloader sketch from here. If you want to always have the latest optiLoader version, check out the author repositiry.



