Wifi shield seems a bit buggy

I'm using a Wifi shield (Arduino Wi-Fi Shield - DEV-11287 - SparkFun Electronics) on a weather station. I've noticed a problem.

As part of a test, I unplugged the power from the wireless router it was talking to. As expected, the Arduino application noticed a dropped TCP connection and started trying to reconnect. When that failed enough times, it used the watchdog timer to reboot the Arduino, on the grounds that it needed to reset everything to get a connection going again.

That worked fine, but after the reset, the Arduino diagnosed a missing Wifi shield. I'm guessing the watchdog reset did something bad to the shield, and it stopped responding.

The fix was to hike out and power cycle everything. That's not a great solution for a weather station in the middle of winter; people looking for a very high reliability, recover-from-anything wifi solution may need to consider other options.

By resetting with the watchdog, it is possible that the shield is in some sort of incomplete state. Doing a watchdog reset won't actually assert the /RESET line which is sent to the shield. This is probably the problem. In other words, the Arduino resets but the shield doesn't. It's probably doing whatever it was doing when the watchdog kicked in.

Also see this thread: Arduino Forum

Judging by the schematic, possibly A5 on the Arduino is linked to "reset" on the WiFi shield. I'm not sure, but that's what it looks like. Possibly bringing that low will reset the WiFi shield. If so, you could do that inside setup, so that after a watchdog reset, the shield resets. If not, you could make up something that has a similar effect. You may want to check with Sparkfun in case I am wrong and it has a totally different function.