Let me start off by saying that I know there are a LOT of forum posts out there that address upgrading the wifi shield and I have read most of them. I apologize for the length of the post but after having read through a lot of solutions that haven't worked for me I just wanted to be clear in everything I had done.
A week ago I got my Wifi Shield and being the diligent developer I am went to the Arduino website page for it to read up on it before using it. The third sentence on the page reads:
The firmware for the WiFi shield has changed in Arduino IDE 1.0.4. It is strongly recommended to install this update per these instructions
I'm running Arduino IDE 1.0.5 and thus went about following the upgrade steps on the website. I used my Macbook Pro running OSX 10.8.5 which I have used for all other Arduino development and never had an issue with. I follow the instructions downloading macports, installing dfu-programmer, then connecting the jumper pin, and then connecting the shield to the computer via USB. Then I go to run the upgrade script. This is where the confusion and issues start. To begin with I choose to upgrade both the firmware for the shield and the WiFi HD unit. The WiFi unit is upgraded first and seemed to go fine with flashing lights on the board that weren't the error light. The output then gave me the following instructions which I followed:
Arduino WiFi Shield upgrade ========================================= Disclaimer: to access to the USB devices correctly, the dfu-programmer needs to be used as root. Run this script as root. ****Upgrade HD WiFi module firmware**** Validating... 167732 bytes used (66.05%) -n Remove the J3 jumper then press the RESET button on the shield then type [ENTER] to upgrade the firmware of the shield..
So I removed the jumper, pressed reset, waited a few seconds, and then hit enter. The following was what was printed out in response.
****Upgrade WiFi Shield firmware**** dfu-programmer: no device present. dfu-programmer: no device present. dfu-programmer: no device present. Done. Remove the J3 jumper and press the RESET button on the shield. Thank you!
I'm slightly confused because it's telling me to disconnect the jumper, which has already been disconnected. I know that the jumper is what puts it into programming mode so I disconnect the board from the computer. Reapply the jumper. And then run the upgrade script again telling it to just upgrade the shield. This yields the promising yet confusing results of:
Arduino WiFi Shield upgrade ========================================= Disclaimer: to access to the USB devices correctly, the dfu-programmer needs to be used as root. Run this script as root. ****Upgrade WiFi Shield firmware**** Validating... 261594 bytes used (103.01%) Done. Remove the J3 jumper and press the RESET button on the shield. Thank you!
I'm worried that I have used 103.01% of the onboard memory but when I search around I see that other people who's done is successfully have had the same output. Seeing this I then go plug it into my Uno R3 board and run the wifi scan example posted on the same wifi page I referenced at the beginning of the post. However it just hangs on the first interaction with the wifi module with "*** Initializing WiFi ***" being the only thing that is coming through the console. I try reseting and still get it hanging. I also notice that there is no LED activity. I go back to square one and run the upgrade again.
Again I get what appears to be positive activity when upgrading the WiFi. I decide to only let the wifi upgrade and not rerun the shield. I then plug the shield into the arduino and run the wifi scan sketch again. This time it works... sort of. It tells me the MAC address is 00:00:00:00:00:00 and that it can't find any networks but I consider this an improvement. I then disconnect to from the Uno and run the shield upgrade again. When I reconnect the shield to the Uno and run the sketch it again hangs at the first Wifi interaction like it did before.
I've spent about 10 more hours surfing forums and trying near everything but the same pattern that I've described above has held true and I still can't get it working.