Arduino Wifi Shield Firmware Update

Content Updated : 25 Jan 2015 – Arduino 1.0.6

Hello everyone,

Here is a detail procedure walk-through on Arduino WiFi shield firmware update.


Reference links:

Our Equipment List

  1. Arduino Uno R3
  2. Arduino Wifi Shield R3
  3. USB to mini usb cable
  4. FTDI adapter (DFRobot DFR0065) and USB to mini usb cable (optional)
  5. Windows 7 laptop

Download

  1. Note that the firmware can be obtained in two ways:
    – Github. https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares
    – The /hardware/arduino/firmwares/wifishield folder of your Arduino software
  2. Unzip
  3. We need these two files “wifi_dnld.elf” and “wifiHD.elf” from “wifishield-master\firmware\binary” folder
  4. Copy these 2 files from above folder to c:\
  5. Download and install Flip software, http://www.atmel.com/tools/FLIP.aspx
  6. Reboot PC

Check current firmware before upgrade (Optional)

  1. See “Setting up FTDI adapter” (See below), get that working on your computer
  2. Mount Wifi Shield on Arduino Uno
  3. Plug FTDI adapter to Wifi shield FTDI port, plug FTDI adapter USB cable to Laptop (Fig. 1)
  4. Open Putty session and connect to FTDI
  5. Power up Wifi shield via its USB port
  6. You should see Arduino Wifi Start up message on Putty session
  7. If not, press reset button on Wifi shield and re-initialize
  8. Note down the Date / Time stamp (Firmware date)

DSC06946

Fig. 1 – Arduino Wifi shield on Arduino Uno, both FTDI adapter USB cable and Wifi USB cable go back to Laptop

Part 1 – Update wifi_dnld.elf

  1. Disconnect Wifi shield from Arduino Uno
  2. Remove FTDI adapter from Wifi shield FTDI port
  3. Short J3 jumper
  4. Connect Wifi shield to laptop via its Mini USB port
  5. Launch command line from Windows
  6. batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer c:/wifi_dnld.elf program verify start reset 0
C:\Program Files\Atmel\Flip 3.4.7\bin>batchisp.exe -device AT32UC3A1256 -hardwar
e usb -operation erase f memory flash blankcheck loadbuffer c:/wifi_dnld.elf pro
gram verify start reset 0
Running batchisp 1.2.5 on Sat Sep 21 19:00:57 2013

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:/wifi_dnld.elf
WARNING: The user program and the bootloader overlap!
Programming memory..................... PASS    0x00000 0x2a10b
Verifying memory....................... PASS    0x00000 0x2a10b
Starting Application................... PASS    RESET   0

Summary:  Total 11   Passed 11   Failed 0
C:\Program Files\Atmel\Flip 3.4.7\bin>

Part 2 – After the command

  1. You should see all passed messages and batchisp returned to command prompt
  2. You should also see Blue Data LED remain ON all the time (Fig. 2)
  3. Remove USB cable and J3 jumper
  4. Put Wifi shield back on Arduino Uno
  5. Hook up FTDI adapter onto Wifi shield
  6. Start Putty session
  7. You should see the following on Putty session, if not press Wifi reset button
*** HD chip firmware upgrade ver 2.7 ***
Memory check... [  OK  ]
Writing firmware data to flash
Verifying firmware data
Firmware successfully stored in flash!

DSC06947

Fig. 2 – After 1st command, Arduino Wifi shield with Blue LED ON

Part 3 – Update wifiHD.elf

  1. Disconnect Wifi shield from Arduino Uno
  2. Remove FTDI adapter from Wifi shield FTDI port
  3. Short J3 jumper
  4. Connect Wifi shield to laptop via its Mini USB port
  5. Launch command line from Windows
  6. batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer c:/wifiHD.elf program verify start reset 0
C:\Program Files\Atmel\Flip 3.4.7\bin>batchisp.exe -device AT32UC3A1256 -hardwar
e usb -operation erase f memory flash blankcheck loadbuffer c:/wifiHD.elf progra
m verify start reset 0
Running batchisp 1.2.5 on Sat Sep 21 19:18:32 2013

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:/wifiHD.elf
WARNING: The user program and the bootloader overlap!
Programming memory..................... PASS    0x00000 0x3edeb
Verifying memory....................... PASS    0x00000 0x3edeb
Starting Application................... PASS    RESET   0

Summary:  Total 11   Passed 11   Failed 0

C:\Program Files\Atmel\Flip 3.4.7\bin>

Part 4 – Completing firmware update

  1. Remove USB cable and J3 jumper
  2. Put Wifi shield back on Arduino Uno
  3. Hook up FTDI adapter onto Wifi shield
  4. Start Putty session
  5. You should see everything back to normal with new firmware date
  6. If not press Wifi reset button
$ Arduino Wifi Startup... [Tue Mar 26 22:09:54 2013]
Connect to network...OK
link up, connected to "WIRELESSAP"
requesting dhcp ... OK
bound to 192.168.100.100

Setting up FTDI adapter (Optional)

  • FTDI adapter (DFRobot DFR0065)

  • USB to mini usb cable
  • Hook Mini USB port to FTDI adapter
  • Hook USB cable to computer, wait for Windows to complete configuration
  • Open Device Manager

FTDI-USB

  • Expand Ports (COM & LPT)
  • You should see a new COM port available and assigned for the FTDI adapter
  • Note down COM port number assignment
  • Download and launch Putty
  • Select Connection Type to Serial
  • Serial Line = COM port number
  • Speed = 57600

FTDI-PuttyCOM

Hope this helps

Team BTF

Leave a Reply

Your email address will not be published. Required fields are marked *