WiFi Shield Firmware Update for Uno R3 : Arduino 1.0.5: Window8.1 : (AT32UC3A)

Here is a page describing how I upgraded my WiFI Shield a Uno R3 board with Arduino 1.0.5r2 Software, a Windows 8.1 machine and WiFi Shield Model R3. I hope it works for you too. This upgrades the AT32UC3 and the HDG104 modules firmware.

  1. Download and install Flip from here. http://www.atmel.com/tools/FLIP.aspx You don't need to use or run the Flip program. There is a sub-program in the download you will need to use later. You will get to this sub-program (batchslip.exe) using a DOS command prompt. There is also a driver for the chip on the WiFi Shield (AT32UC3A or AT32UC3A DFU) that you will need in the Flip Download.

  2. If you recently installed a version of Arduino onto your computer, both Firmware Update software sets you need to update the WiFi Shield are in the Arduino directory structure. I know this to be true for me when I recently installed Arduino Version 1.0.5. (You might need to install a current version).

  3. Connect your WiFI Shield to the Uno board. Put the jumper across both pins on 'DFU Programming Jumper'. Shown on 4th picture of the WiFi Shield on this page: ? http://arduino.cc/en/Main/ArduinoWiFiShield
    To find the picture of the jumper, look for the words and arrow pointing down on to the board “ DFU programming jumper (only used for updating shield firmware, leave unconnected for typical use)”.

  4. Connect power to your Arduino. Then connect a mini USB to the WiFi shield (not a micro-USB) and then to your computer.

  5. Hopefully your Windows 'Device Manager' will show AT32UC3A DFU under “Other Devices”. You may have to play with plugging/ unplugging power to Arduino and also the WiFI Shield's USB port connected to your computer. One time I had luck by not powering the Arduino and only plugging in the USB mini between computer and the WiFi Shield.

  6. Right-Click on the device in 'Device Manager' and select “Update Driver” . I chose to install from my computer(instead of Internet) and directed the Device Installer application to Install from... C:\Program Files (x86)\Atmel\Flip 3.4.7 . I had an option to click “Include Subdirectories'. Sorry, I am not certain what sub-folder the driver might actually be in. When this step is complete, The AT32UC3A DFU should be properly listed in Device Manager under “Atmel USB Devices”.

  7. Open a command prompt and navigate to the directory where “batchslip.exe” was installed by Flip. For me it was C:\Program Files (x86)\Atmel\Flip 3.4.7\bin ...but it depends where the Atmel software is installed and what version you download.

  8. Once you are in the directory ( C:\Program Files (x86)\Atmel\Flip 3.4.7\bin) , you will need to run two commands. You will need to determine where you initially installed your Arduino software. I installed mine in C:\Arduino instead of the recommended lengthy folder suggested ( * something like C:\Arduino 1.0.5.\ * ) .. Therefore you might need to adjust the directory structure in the two commands I have listed below. I suggest cut and paste the first command from below, then make it match your * Arduino* folder name. You may have to dump the following command in to a notepad or something to make sure there are no line breaks.

    c:\Program Fils (x86)\Atmel\Flip 3.4.7\bin>batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer c:\Arduino\hardware\arduino\firmwares\wifishield\binary\wifi_dnld.elf program verify start reset 0

    Here is what you should see on the command line..........


Running batchisp 1.2.5 on Sat May 10 21:16:01 2014

AT32UC3A1256 - USB - USB/DFU

Device selection....................... PASS
Hardware selection..................... PASS
Opening port........................... PASS
Reading Bootloader version............. PASS 1.0.2
Erasing................................ PASS
Selecting FLASH........................ PASS
Blank checking......................... PASS 0x00000 0x3ffff
Parsing ELF file....................... PASS c:\Arduino\hardware\arduino\firmwares\wifishield\binary\wifi_dnld.elf
WARNING: The user program and the bootloader overlap!
Programming memory..................... PASS 0x00000 0x2902b
Verifying memory....................... PASS 0x00000 0x2902b
Starting Application................... PASS RESET 0

Summary: Total 11 Passed 11 Failed 0

c:\Program Files (x86)\Atmel\Flip 3.4.7\bin>

  1. Now to update the second piece
    Cut and paste the command from below. You may have to dump it in to a notepad or something to make sure there are no line breaks.

    c:\Program Files (x86)\Atmel\Flip 3.4.7\bin>batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer c:\Arduino\hardware\arduino\firmwares\wifishield\binary\wifiHD.elf program verify start reset 0

Press Enter

Here is what will happen on your screen..

Running batchisp 1.2.5 on Sat May 10 21:34:04 2014

AT32UC3A1256 - USB - USB/DFU

Device selection....................... PASS
Hardware selection..................... PASS
Opening port........................... PASS
Reading Bootloader version............. PASS 1.0.2
Erasing................................ PASS
Selecting FLASH........................ PASS
Blank checking......................... PASS 0x00000 0x3ffff
Parsing ELF file....................... PASS c:\Arduino\hardware\arduino\firmwares\wifishield\binary\wifiHD.elf
WARNING: The user program and the bootloader overlap!
Programming memory..................... PASS 0x00000 0x3fe2b
Verifying memory....................... PASS 0x00000 0x3fe2b
Starting Application................... PASS RESET 0

Summary: Total 11 Passed 11 Failed 0

c:\Program Files (x86)\Atmel\Flip 3.4.7\bin>

  1. Remove the Jumper from the WiFi Card. Remove the Min USB.

  2. To Verify your version, here is a Sketch
    ==================================
    #include <WiFi.h>
    #include <WiFiClient.h>
    #include <WiFiServer.h>
    #include <WiFiUdp.h>

// This mini program checks your WiFi Shield for the current version.
// Assembled by Mark Matthias May 10 2014
void setup(){
Serial.begin(9600);
Serial.print("Current Firmware Version: ");
Serial.println( WiFi.firmwareVersion());
}
void loop(void)
{
}

=================
After uploading, Open Serial Monitor. I updated mine and the print out on Serial Monitor is:
“Current Firmware Version: 1.1.0”
It used to be 1.0.0 .

Not sure if these steps work with anything else. I used a Uno R3 board with Arduino 1.0.5r2 Software, a Windows 8.1 machine and WiFi Shield Model R3.

Good Luck.