Arduino Wi-Fi Shield

The Arduino WiFi Shield allows an Arduino board to connect to the internet using the 802.11 wireless specification (WiFi). It is based on the HDG204 Wireless LAN 802.11b/g System in-Package. An Atmega 32UC3 provides a network (IP) stack capable of both TCP and UDP. Use the WiFI library to write sketches which connect to the internet using 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. There is an onboard micro-SD card slot, which can be used to store files for serving over the network. It is compatible with the Arduino Uno and Mega. The onboard microSD card reader is accessible through the 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 for 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 explicitly deselect it. 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.

  • Connection via: 802.11b/g networks
  • Encryption types: WEP and WPA2 Personal
  • on-board micro SD slot
  • FTDI-style connection for serial debugging of WiFi shield
  • Mini-USB for updating the WiFi shield firmware
  • open source firmware making it possible to add new protocols directly on the shield.
  • If you are familiar with C and the AVR32 family you can even use this shield as a standalone wifi connected microcontroller.

Tags

Arduino Wi-Fi Shield Product Help and Resources

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #221652 / about 12 years ago / 5

    mmh.. yeah too pricey. I would get the raspberry pi before I go for this

    • ptorelli / about 9 years ago / 1

      True. One thing to consider: the Pi uses WAY more power than an arduino and a shield. So if you're shooting for battery powered wifi, Pi isn't a very good choice (same goes for Edison).

    • Member #509161 / about 10 years ago / 1

      If it is too pricey, you should definitely try this solution with the Arduino Pro Mini (it uses a <20$ Chinese WiFi router for wireless). The raspberry pi will not beat that.

      • ScieneOfficer / about 10 years ago / 1

        I've looked into the wr703 router and you have to reflash it using openwrt written in linux. Don't know linux and don't have linux laptop!

        • M-Short / about 10 years ago / 3

          Linux is not a language, you can't write anything in Linux any more than you can write in Windows. Openwrt is a version of linux written for embedded devices like routers. It sounds like you would need to install Openwrt on the router and may need to do some configuration on it. Wifi is not necessarily a beginner protocol whether you are using the router or the Wifi shield. If you are looking for something in the middle though take a look at the RN-XV modules or the XBee Wifi modules.

  • 0xdec / about 12 years ago / 3

    Is the green-wire fix on the production model?

    • Far_Seeker / about 12 years ago / 1

      That's the way it's pictured on the official Arduino site. So perhaps that's how it will be, at least for the first production run or so...

      • This was their initial shipment. I'm checking with them to see if future production runs will have this or not. We initially only got 25 units and the next shipment is slated for 4-6 weeks.

      • MostThingsWeb / about 12 years ago / 4

        That's a real bummer considering they probably built thousands of the things.

  • Member #361040 / about 9 years ago / 2

    Hi all,

    I have a question, I was considering of buying a WiFi shield for my Arduino board, but I've noticed that the shield itself is more expensive that an Arduino Yun, which already has WiFi capabilities. With this in mind, why someone would consider purchasing a WiFi shield?

    Thanks

    Miquel

  • What firmware version are you shipping now? Need 1.0.5, NOT 1.0.2 (1.0.2 does not work right with 1.0.5 IDE, and upgrading the firmware tends to brick the shield!)

    • Ogre / about 10 years ago / 0

      Yeah, I was hoping Sparkfun had a tutorial on upgrading the firmware. I followed the instructions on the Arduino site which are pretty vague and am having troubles.

  • AFA9NET / about 11 years ago / 2

    received today at 3

    It is working after 5 minutes

    Client server

    This is a cool thing.

  • Member #211638 / about 11 years ago / 2

    Are the EAGLE files posted here before or after the "green wire" fix was corrected?

  • ians / about 11 years ago / 2

    would love to see the libraries ported for compatibility with the Due.

    • Member #340678 / about 11 years ago / 1

      Does this Arduino Wi-Fi shield work with the Arduino Due now? What will it take to port the libraries?

  • Member #295773 / about 11 years ago / 2

    Just got this shield for a project. The purpose of the project is to have a standalone Arduino running and have the ability to control it from my phone. Using a webserver on the Arduino side and the browser in my iphone seemed like a good way to do this.

    From the research I've done however, it seems that the only way for the Wifi shield to work, is that is first must get an IP address assigned from a DHCP server, and then the phone can contact the Wifi shield. I got this to work, but this won't work for a standalone - i.e., no DHCP server - application.

    IMHO, this is a huge shortcoming for a device (Arduino) which is purposely designed to run standalone. Does anyone know if there is a fix in the works for this... uh, SPARKFUN??

    Thanx, JG

  • charlesfries / about 11 years ago / 2

    Is this shield capable of creating a wifi network for devices to connect to? If not, is there something that does this?

    • Member #379641 / about 11 years ago / 2

      I'm also wondering if this shield can create Ad-Hoc networks

  • mhkabir / about 12 years ago / 2

    Are the headers already soldered? Sparkfun has them unpopulated generally ..?

    • M-Short / about 12 years ago / 1

      Yes, this is a board from Arduino and they usually have them soldered on.

  • Member #650079 / about 9 years ago / 1

    How well would this shield work at a distance from a router, say 100m? Would I need a WiFi amplifier?

  • Ogre / about 10 years ago / 1

    So... The shield I received came with the HDG204 chip. I could connect it to a network, but couldn't access it through a browser as a server. At first, I found the firmware was buggy so I tried to upgrade it following the instructions on the Arduino site. Well the instructions for the firmware upgrade were for the HDG104 chip. Apparently they're suppose to be the same chip, but a lot of people have had issues with sketches working with a shield with a 104 chip, but not with the 204. Did some more research and I found on the Arduino forum the fix is to run it in Arduino IDE 1.0.3. I guess this issue has been happening for a while (1yr+). Hope this helps someone.

    • Ogre / about 10 years ago / 1

      I also compiled a sketch for the data.sparkfun.com. There wasn't one based on this shield in the tutorial, so if it'd help anyone out I'd be willing to share!

      https://github.com/OgreMills/PhantWifi/blob/master/PhantWifiSketch

  • Member #586684 / about 10 years ago / 1

    Hello! Does the Wi-Fi Shield work with the Arduino Leonardo? I keep getting contradictory information on this. Is the TransmogriShield needed? Would you be so kind and confirm?

    Thanks!

    • M-Short / about 10 years ago / 1

      I don't see any reason it wouldn't hardware wise. After looking at the schematic it looks like it communicates over SPI but uses the ISP connector on the board so that should work fine. Hardware looks good. Software might be an issue mostly with the serial lines being different, and possibly interrupts although I don't think so. Email techsupport@sparkfun.com and they can help you if you have any other questions.

  • Gunni / about 10 years ago / 1

    Would you recomend Arduino Wi-Fi shield instead of WiFly shield?

  • how to connect wifi shield R3 with arduino mega 1280 ? are they compatible ?

  • Member #509161 / about 10 years ago / 1

    If this solution is too expensive, you could try this solution. The guy managed to send data out of his Arduino with a <20$ Chinese WiFi router.

    It worked for me to send my sensor data to Xively. I suppose two way communication could be achieved if needed.

  • Member #500801 / about 10 years ago / 1

    newb question here! I'm starting to use Sparkfun open source designs and along with this wifi shield (and some others), I see that the Eagle Files need additional dev/pac/sym libraries in order to solve inconsistency in Eagle. So... does SF provide these libraries too? or the Eagle files here are just for reference?

    Thank you! PS: I'm learning electronics and Arduino & SF have been great companions so far :D

    • This isn't actually a board we make in-house, so the Eagle files are what we get from Arduino for this one. We do make our SparkFun libraries available here. I wouldn't be surprised if Arduino had a library somewhere as well that includes all of their additional parts.

  • So total of 6 pins needed which can not be used for any other purposes? That's a bit too may, no? Even if the SD card isn't needed one still can't reuse the SS pin

  • Member #225313 / about 10 years ago / 1

    This thing doesn't work. Sounds nice and all, but it simply doesn't work. I paid $85 for this item and I shouldn't have to fix it myself. I'm returning mine tomorrow.

  • Agent JK / about 10 years ago / 1

    Just got this and was very frustrated with it until I updated the firmware. It would connect to the wireless network but could not do anything else. I used the instructions from "Ludgy" on this forum to do it via command line on a PC: http://forum.arduino.cc/index.php?PHPSESSID=d3omb01qsi282gci6ptf495e86&PHPSESSID=0g864usaihcj5af5uckifaso93&topic=180445.0

    After the firmware update, all sample sketches are working great!

    If this thing were a little cheaper, I would buy a handful.

  • Member #443465 / about 11 years ago / 1

    Could I use this to make a robot that i could control from across the world? Of course given that both the robot and i have a wifi connection.

  • Member #443465 / about 11 years ago / 1

    could I get similar results of an UNO plus wifi shield as i would get with the new yun?

  • Member #450097 / about 11 years ago / 1

    can i use it to practice some dsp projects?

  • Juliano / about 11 years ago / 1

    Did anyone had this problem where the examples don't work? The only thing that works is the connect part, the shield connects to the network but the rest doesn't work.. any ideias?

  • liudr / about 11 years ago / 1

    I am having trouble sending long messages with client.print() I can send short messages around 90-100 bytes at a time but not longer than that. Here is some discussion on Arduino forum:

    http://arduino.cc/forum/index.php/topic,161642.0.html

    • liudr / about 11 years ago / 1

      pylon on arduino forum has traced this to a 100 byte buffer in firmware. There will be no benefit upgrading firmware. You are better off now.

  • Member #418123 / about 11 years ago / 1

    i want to connect my arduino uno to my pc through the internet (sending and receiving data), i use a wifi shield R3, but i can't release an UDP or TCP connection... who can help me...... Thx

  • Member #384460 / about 11 years ago / 1

    I downloaded the WiFi library from Arduino and tried a simple example sketch they provided and it will not compile. Even a skeleton sketch with #include fails to compile. Anyone else having this problem?

  • Member #211638 / about 11 years ago / 1

    I see from browsing the firmware source for this shield that some changes have been made. I really need a shield that can (1) act as an access point and (2) accept a hard coded IP address. Can this do that yet?

  • hawker238 / about 11 years ago / 1

    Any chance that they will be supporting an OSC library? I can't find any libraries online that allow the Arduino to receive/send OSC codes directly (without Processing).

    • Member #2492 / about 11 years ago / 1

      I got OSC to work after spending 3-4 days hacking the wifi code running on the shield and the Arduino wifi library. I could post the firmware for you if you want to try it.

  • Member #369203 / about 11 years ago / 1

    Hey, I would really appreciate it if anyone could find me a way to reconfigure arduino wifi shield's pin 7 (Handshake btw arduino and wifi shield ). The reason for it is that my custom arduino uno board is permanently hooked with motorcontroller at pins 5,6,7,8so there is an overlapping at pin 7, so unfortunately my brand new wifi shield would not work. I would really appreciate a soulution for this mess.

    P.S. Pin 2 on my arduino uno board is free and my arduino uno board doesnt have SCL and SDA pins

  • Member #978 / about 11 years ago / 1

    Is there a way to set a static IP for the Arduino Wi-Fi Shield? I cant find any method in the library?

  • Q36 / about 11 years ago / 1

    One thing to be aware of - if you use a watchdog timer on an Arduino to force the Arduino to reboot (only know I way to do it without adding wires), the Wifi Shield doesn't seem to reboot with it. When the Arduino comes up again, it sometimes cannot find the shield anymore. The solution is to power cycle.

  • Q36 / about 11 years ago / 1

    Some answers:

    Does this work with the Leonardo? Yes, right out of the box.

    i couldn’t find if it needs an antenna or not ? Built-in antenna. The range, however, is nothing fantastic, and orientation matters. I'm at -70db through a sheet of glass and 70' or so of open air. TCP connections are pretty stable at that signal strength; the connection drops maybe 1-2 times a day and reestablishes pretty easily. Around -85db, connections get quite flaky.

  • Member #369980 / about 11 years ago / 1

    I just installed the latest wifi firmware and still cannot get multi-byte read to work... I've seen issues posted previously elsewhere; anyone have any ideas on this? any working example? I need speed for playing audio (pwm) from wifi... tnx

  • Member #281885 / about 11 years ago / 1

    Apologies for newbie question here. Thanks for your patience. Why would you spend $85 for this instead of $25 for a USB host shield and $15 for a wifi dongle? Wouldn't that give you the same functionality?

    • liudr / about 11 years ago / 1

      Technically yes but practically no. Just because a piece of hardware has certain function (such as wifi in the USB dongle) doesn't mean whatever connects to it knows how to utilize it. The Arduino needs a device driver for every USB device connected to the host shield. I simply don't see device manufacturers very motivated to write device drivers for Arduinos. Arduino is like a child, with nothing in the mind, and you are handing the child a unified field theory book written in English as an alien. You think the earth child can read English and thus understand the theory?!

  • OpenPaco / about 12 years ago / 1

    What about the power supply?

  • tanaydin / about 12 years ago / 1

    hi there...

    i'm gonna buy one of this... but i couldn't find if it needs an antenna or not ?

    • liudr / about 11 years ago / 1

      It has an integrated antenna so answer is no, it doesn't need an external antenna.

      • Sherpa / about 9 years ago / 1

        How hard is it to put an external antenna on it? I need to use a directional antenna outside of a metal NEMA cabinet.

  • Q36 / about 12 years ago / 1

    Does this work with the Leonardo? I've heard conflicting stories.

  • Member #334196 / about 12 years ago / 1

    Am I missing something? I'm trying to get online with the ConnectWithWEP example sketch. The ssid and network key are the same that I use to connect every other wireless device in the house. I get the "attempting to connect..." message in the serial monitor, then the red "error" light comes on. The key index should be 0, but I've also tried 1-3. The shield is connected to an UNO R3. Any advice?

    • l0gikG8 / about 12 years ago / 1

      Make sure you are using the hexadecimal representation of the key and not the ascii pass phrase. Also check if the access point is set to 64 or 128 bit encryption and use the appropriate key size.

      • Member #334196 / about 12 years ago * / 1

        I am working on what must be a very common system in the U.S. - a 2WIRE router supplied by my Internet service provider. Printed on the bottom of the router is a 10-digit number that I have seen referred to as a hex key. This number works as the network password. There is an option to change this number to a phrase, but I haven't bothered.

        I tried treating the number as a single value (in the billions) and converting to hexadecimal, but no luck. I treated the number as ascii characters, still no luck.

        The router's 10-digit number is the only key that gives any type of feedback (the red error light). Anything else and all of the board's lights stay off.

        I believe that the network uses 64 bit encryption. What would the appropriate key size be?

        • l0gikG8 / about 12 years ago * / 1

          64-bit WEP uses a 40 bit key (i.e. 10 hexadecimal characters 0-9,A-F). Sounds like you have your key. You might consider using the more secure WPA2 on your network.

          Were you able to get the scanNetworks and ConnectNoEncryption examples to work? That would tell us if your board is good.

          Alternatively, instead of using the WiFi library try connecting to your router by sending serial commands through the FTDI port and set some of the debug sections to verbose. This should give more info about what is causing the red error light.

          See http://arduino.cc/en/Hacking/WiFiShield32USerial

          It may be an issue of using Open System authentication and Shared Key authentication. It could be a lot of things. Watching as the board connects in verbose debug mode will help isolate the problem.

          • Member #334196 / about 12 years ago / 1

            I can scan and connect to unsecured networks. The schematic shows 5v for the FTDI. Is this what I need?

            https://www.sparkfun.com/products/9718

            Will I be using the Arduino IDE serial monitor for that communication?

            • l0gikG8 / about 12 years ago / 1

              With the TI TXB0108 VOLTAGE-LEVEL TRANSLATOR in the schematic, the Rx/Tx lines can be 3.3 or 5v. So this will work as well, https://www.sparkfun.com/products/9717

              I do not think the Arduino IDE will work. I use the serial mode in the recent versions of puTTY from Simon Tatham. There are other serial port terminal applications. The Arduino site mentions CoolTerm but I've never tried it.

              • Member #334196 / about 11 years ago / 1

                [SOLVED] I got it working by changing the settings on my home network. Switching from WEP-Open to WEP-Shared authentication has taken care of the problem.

  • mlinaje / about 12 years ago / 1

    Has anyone the opportunity check the compatibility with Seeeduino Mega? Thank you!

  • Member #254919 / about 12 years ago / 1

    How does one program the AVR32 in this? Anyone done it yet? Hope to use this as standalone 32-bit microcontroller board.

    • teachop / about 12 years ago / 1

      Looks like the USB bootloader is in place. Better yet I see a Jtag on the schematic which would work with a debug pod. Atmel studio is free and powerful. I have used UC3 AVR32 at work, they are about equal to ARM Cortex M3. Anyway, I have been pondering stand alone too. It depends what the source for the on board software is like, if it will be practical and fun.

      • Member #211638 / about 11 years ago / 1

        Did you ever take a shot at this? I am thinking of writing some custom firmware for it as well.

  • Tombee / about 12 years ago / 1

    Hello, can you tell me, how much current the shield uses? I can't find it nowhere specified.

  • ians / about 12 years ago / 1

    Is there anyway to add an antenna to this bad boy?

  • The Kontraptionist / about 12 years ago / 1

    Love it how the Atmel on the shield completely smokes the shoes off the little chip on the Arduino. Why not leave the separate Arduino out of the picture completely? I guess it's a different compiler? (for the 32 bit?)

    • ians / about 12 years ago / 1

      Can one load sketches directly on this shield?

      • yep--that's what the usb & FTDI are for if i'm not mistaken--It can act as a stand-alone arduino as well

        • Member #211638 / about 11 years ago / 1

          Absolutely not! Arduino sketches do not run directly on to this shield. The firmware for the shield can be updated but it is not written with the Arduino environment.

          • "If you are familiar with C and the AVR32 family you can even use this shield as a standalone wifi connected microcontroller."

            It says so in the product description--last bullet

  • ians / about 12 years ago / 1

    Ugh, i've been waiting a few weeks for stock. When can I expect to buy this shield?

  • bithead942 / about 12 years ago / 1

    I bought a pair of these to replace some old OpenElectronics.com WiFi shields. The old shields are feature-rich, but unstable due to a memory leak somewhere in the stack I've not been able to pin down. Support is limited to the community for that old shield since the chip is discontinued. Here's my findings so far on the new Arduino WiFi shield in case it helps anyone else:

    When I attempted to port the old sketch to use the Arduino WiFi library, I see that some key features are missing including hard coding an IP address/subnet mask (critical for server functions). IP functions are available, but appear to provide read-only values - it appears to rely exclusively on DHCP. I suppose if I had a fancier DHCP service, I could reserve and IP address for this device, but I don't currently have that capability.

    Also, I found that the MAC address on the box was wrong (not even close) which resulted in a lot of hair pulling for me since I filter WiFi connections by MAC. I had to run a sample sketch in order to find the actual MAC address.

    In the documentation, it says it only supports WPA2 "Personal" encryption and not "Enterprise". I had no idea which one I was using, but was happy to discover that it not only connected to my SOHO WiFi router, it connected MUCH faster than my old WiFi shield.

    What I really need right now is a source code sample that shows the use of HTTP GET or POST. This product has only just released, and the sample code the Arduino has published is very basic. I'd greatly appreciate someone pointing me toward additional sample code.

  • neufuture / about 12 years ago / 1

    any info if it has ad hoc ? Don't see mention anywhere

  • frank26080115 / about 12 years ago / 1

    I can't find the open source firmware of the AVR32.

    Apparently the firmware of the AVR32 is on the H&D Wireless website, and also you need an account to download the firmware, AND your account must be manually approved. AND I just used a bunch of junk credentials so I guess I'm SOL for now.

    So if you sign up, use "real credentials", fake company name and custom domain email.

  • Imroy / about 12 years ago / 1

    So this is almost a separate Arduino with a Wifi chip and MicroSD slot? All just to offload TCP/IP from the actual Arduino. Overkill perhaps? And no wonder it's so pricey.

    • wifi is always pretty pricey. even our own shield is about this much. the modules are expensive, so BOM cost is quite high.

  • SlyVixsky / about 12 years ago / 1

    so who's going to be the first to build a web server with this rig? a 2GB microSD card is fairly cheap, and the arduino uno should be more than capable of a simple web interface.

Customer Reviews

2.5 out of 5

Based on 2 ratings:

Currently viewing all customer reviews.

2 of 2 found this helpful:

this product is currently retired and the firmware is out of date

According to Arduino “NOTE: this product is currently retired and the documentation will not be kept up-to-date.” Ok that should not really be a bother but the firmware is outdated as well. Again, according to Arduino: “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” Look around the Internet for why they so strongly recommend it…. http://forum.arduino.cc/index.php?topic=175173.0 So, you might be able to update the firmware but if you do not think you can, think again about this item. https://www.arduino.cc/en/Main/ArduinoWiFiShield

Update:I went on the arduino.org site and to the link below (from the comments section, thank you Agent JK) to update the firmware. it was not too painful and the shield works just fine. A little bit much trouble for an $85 shield that should work right out of the box but it does work...

http://forum.arduino.cc/index.php?PHPSESSID=d3omb01qsi282gci6ptf495e86&PHPSESSID=0g864usaihcj5af5uckifaso93&topic=180445.0

1 of 1 found this helpful:

Works Well - Required a Firmware Update!

This shield works very well. The one caveat I share with future buyers is the need to update the firmware. This was quite a hassle, and the description on the process is pretty vague. It's doable but this shield is anything but plug-n-play. I purchased mine around 3/2016. Hopefully future version will ship with the firmware updated.