The Arduino WiFi Shield allows an Arduino board to connect to the internet using the 802.11 wireless specification (WiFi). It features an HDG204 Wireless LAN 802.11b/g System-in-Package. An Atmel AT32UC3A1256 provides a network (IP) stack capable of both TCP and UDP. Use the Arduino WiFi Library to write sketches which connect to the internet via the shield. The WiFi shield connects to an Arduino board using long wire-wrap headers which extend through the shield. This keeps the pin layout intact and allows another shield to be stacked on top.
Note: This shield uses the IOREF pin, introduced on Arduino R3 boards, to sense the reference voltage for the I/O pins of the board to which it is attached. If you have an older Arduino board, you will have to modify this shield to connect the IOREF pin to the shield's 3.3V pin. You can do this with a jumper wire connecting IOREF to 3.3V, or by soldering the IOREF jumper on the bottom of the shield. If you solder the jumper, make sure never to plug the shield into an R3 Arduino. You probably should break off the IOREF pin to be safe.
The WiFi Shield can connect to wireless networks which operate according to the 802.11b and 802.11g specifications.
There is an on-board microSD card slot which can be used for storing files to serve over the network. It is compatible with the Arduino Uno and Mega. The on-board microSD card reader is accessible through the Arduino SD Library. When working with this library, SS is on Pin 4.
Arduino communicates with both the WiFi shield's processor and SD card using the SPI bus (through the ICSP header). This is on digital pins 11, 12, and 13 on the Uno and pins 50, 51, and 52 on the Mega. On both boards, pin 10 is used to select the HDG204 and pin 4 to select the SD card. These pins cannot be used for general I/O. On the Mega, the hardware SS pin, 53, is not used to select either the HDG204 or the SD card, but it must be kept as an output or the SPI interface won't work.
Digital pin 7 is used as a handshake pin between the WiFi shield and the Arduino, and should not be used.
Note that because the HDG204 and SD card share the SPI bus, only one can be active at a time. If you are using both peripherals in your program, this should be taken care of by the corresponding libraries. If you're not using one of the peripherals in your program, however, you'll need to deselect it specifically. To do this with the SD card, set pin 4 as an output and write a High to it. For the HDG204, set digital pin 10 as a High output.
The shield can connect to encrypted networks that use either WPA2 Personal or WEP encryption. It can also connect to open networks. A network must broadcast its SSID for the shield to be able to connect.
The reset button on the shield resets both the HDG204 and the Arduino board.
There is an on-board Mini-USB connector. This is not for programming an attached Arduino; it is for updating the AT32UC3A1256 AVR32 processor using the Atmel DFU protocol. There is a jumper on the shield next to the power bus and analog inputs that can be used to activate DFU programming mode.
The shield also has an FTDI connection that enables serial communication with the AVR32 for debugging purposes. See the How-To Guide for a list of available commands.
There are four LEDs on the WiFi Shield:
L9 (yellow) — this is tied to digital pin 9
LINK (green) — indicates connection to a network
ERROR (red) — indicates when there is a communication error
DATA (blue) — indicates data being transmitted/received
Arduino WiFi Shield Resources The WiFi Library and WiFi Shield Firmware is included in the latest version of the Arduino IDE.