Spent most of this eve at Bitraf trying to make the official Arduino Wifi Shield to behave properly. One of the Bitraf members has a cool project that involves remote control of servos. He planned to use the Wifi Shield, but it keeps loosing it's connection at random intervals - no pattern to it. I have the same shield that I want to use, so I tried to figure out how to download and install the new firmware from GitHub. I couldn't find any goo description on hwo to do it, so here's how we did it on OSX. It'll be quite similar on Windows and Linux.
1st Download the files from GitHub
Go to GitHub - arduino/wifishield: Arduino Wifi Shield and either download the ZIP, or use GIT if you're familiar with that
Open terminal and navigate to the folder you want the repository in. Here's how I did it:
mkdir wifishield
cd wifishield/
git init
git remote add wifishield GitHub - arduino/wifishield: Arduino Wifi Shield
git pull wifishield
git checkout master
The installer expects the files to be inside the Arduino-app folder. Copy wifiHD.hex, wifiHD.elf and the other files from the wifishield/firmware/binary folder into /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/firmwares/wifi-shield/ (or where you have your Arduino app).
2nd Grab the Device Firmware Updater
Next is getting the software we'll be using since AVRDUDE does not work with the 32UC3-chip in the wifi-shield. Check out this page http://arduino.cc/en/Hacking/DFUProgramming8U2 for details on installing this on your specific platform. For OSX, it should have been easy like this:
sudo port install dfu-programmer
However, instead we got this:
Error: The installed version of Xcode (2.0orlower) is too old to use on the installed OS version. Version 4.1 or later is recommended on Mac OS X 10.8.
Apparently Apple menat that minutes after releasing XCode 4.6 was a great time for maintenance. https://twitter.com/jenschr/status/264107391434502145 Yay... Some hours later the download commenced and we got it installed. Next we had to install the XCode command line tools http://guide.macports.org/chunked/installing.xcode.html#installing.xcode.lion.43 we were finally ready to go:
sudo port install dfu-programmer
3rd Set the jumper
To program the shield, you'll need to enable the J3 jumper. This isn't marked at all on the shield, but it's also the only jumper there is. (It should have been disabled by the factory.) Just place it across the two pins and you're ready to update the firmware.
4th Upload!
Note that the shield should not be connected to an Arduino. Just plug the correct USB-cable into the Wifi Shield itself without anything else.
You'll use a script from the GitHub download to do the actual uploading: wifishield/ArduinoWifiShield_upgrade_mac.sh at master · arduino/wifishield · GitHub
cd /Fra PC/arduino/wifishield/firmware/scripts/ArduinoWifiShield_upgrade.sh
sudo sh ArduinoWifiShield_upgrade_mac.sh -a /Applications/Arduino.app/Contents/Resources/Java/ -f shield
5th Remove the jumper
Once the upgrade when through, remove the jumper and set it on just a single pin.
Useful links found while researching this:
http://mitchtech.net/arduino-usb-hid-keyboard/ (good info on the DFU programmer)
http://arduino.cc/en/Hacking/DFUProgramming8U2 (Official page on installing DFU for other platforms)