The SparkFun ESP8266 WiFi Shield is an Arduino compatible shield for the ESP8266 WiFi SoC – a leading platform for Internet of Things (IoT) or WiFi-related projects. There are a variety of designs based around the ESP8266, including tiny, modular boards and more accessible development boards like our very own SparkFun ESP8266 Thing. The ESP8266 WiFi Shield finds a middle ground between the Module and the Thing that provides a great introduction to the ESP8266 – without leaving the comfortable hardware confines of your Arduino. If you just have an Arduino project that needs an inexpensive gateway to the Internet, the ESP8266 WiFi Shield does everything from turning on an LED to posting data with phant.io.
The ESP8266 WiFi Shield comes pre-flashed with an AT-command firmware, so it can be controlled by any UART, but it also breaks out and provides command access to all of the ESP8266’s I/O. Since this is an Arduino shield, it makes it easy to attach to any development board that utilizes the Arduino R3 layout. All it will take is a little soldering to attach the necessary headers. The ESP8266 is much more than a simple serial-to-WiFi gateway. It has almost a dozen I/O that can be configured as digital inputs or outputs – it even has an ADC! These GPIO are all broken out towards the top-left side of the shield. Additionally, the ESP8266 WiFi Shield can be repurposed and reprogrammed through the programming port found on the top-right side of the shield. Whether you want to add AT commands of your own, or flash custom firmware on the ESP8266, this port may come in very handy especially with it utilizing the pinout of our FTDI Basic breakouts.
This shield comes populated with all components as shown in the images and schematic; but it does not come with headers installed. We recommend the Arduino R3 Stackable Header Kit.
If you want to control the ESP8266 IC outside our library, there is a great command reference at this link.
ESP8266_Shield_SoftSer does work with Blynk. Customer pointed out that you need to change RX/TX from 2,3 to 8,9 and it will work.
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
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.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
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.
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
Based on 34 ratings:
1 of 1 found this helpful:
Either I’m incredibly unlucky and got two duds, my Arduino Uno is broken in weird ways or this thing is just unreliable. Essentially, this shield has two states of failure: If I pull it out a little from the Arduino sockets, it blinks the blue light a bunch, and then reports that it failed to establish a connection. If I push the shield all the way in, the red LED is the only thing that lights up, and the ESP8266 chip gets awfully hot. The board then fails to initialise.
Since the second failure condition sounds an awful lot like a short circuit, I RMA’d it, but the second board I got exhibits the same behaviour. I’ve also noticed that the pads on the broken out ESP8266 pins touch the Arduino Uno USB connector when pushed in all the way, which might short it, but the short-circuit like behaviour also occurs even if the pads don’t touch it, so something’s weird.
Either way, buyer’s beware - I’ve yet to actually successfully use this thing.
Sorry to hear that. It seems odd that they would both fail in the same manner. You’re right that these pins might be shorting onto your USB port. A dab of nail polish on the USB casing, or a bit of electrical tape can help to isolate the USB housing from shields on top. I will suggest that we move those pins in the future to avoid making contact. I know you contacted our tech support team for your RMA, but maybe reach out to them again, and see if they recognize this behavior, and how to fix it. (They’re really good!)
1 of 1 found this helpful:
I was connected to the internet and posting data within a couple of hours. Look, no internet-connected project is going to be a walk in the park, especially the first time around. Going from the relatively simple realm of the Arduino IDE to the relatively not simple realm of networking, and then trying to cobble the two together, is a big leap.
I’ve had no problems; this little shield did exactly what I hoped. Even soldering on the headers (this was my first time!) wasn’t too bad. And for $15? Love it!
2 of 2 found this helpful:
If you want an easy and cheap way to give your arduino WiFi capabilities, this is the best way to do it. Just solder on the headers, fit it on your arduino, and you’re good to go. I would recommend buying a u.fl antenna however, as the strength of the board isnt that great by itself. Fortunately sparkfun sells the WRL-11320 which snaps right on to this board. Another thing to note is that if you need SSL, the ESP8266 does not have that capacity, so no HTTPS. Otherwise though, this product is a breeze to use, works perfectly, and all at a great price.
1 of 1 found this helpful:
Wireless works fine, but…has anybody got this working with the pubsubclient arduino library? For me it just hangs when I try to connect with the client.connect. I can’t figure it out…
Does anybody know if there’s a different library that I should be using?
1 of 1 found this helpful:
No problems. Started working and learning from the connection guide. The demo code compiled and works great! I can’t say enough good things about the SparkFun Hookup guides. By providing those excellent examples of functionality, they allow me to envision a technically feasible path toward my goals.
Using the SparkFun RedBoard and the 2.4GHz antenna (because the underground lair is so far from the router).
1 of 1 found this helpful:
Having the breakout pins and compatibility with arduino headers helped a lil. Having SPI breakout would be better for hackers. However, I liked it much. ESP8266 201 also would have done good to me
1 of 3 found this helpful:
I have tried unsuccessfully now to connect to any of my wireless networks using the shield and the accompanying documentation. Every example has ended in error. I have tried various forms of authentication and cannot even get connected to an unsecured network. All return the error code - not a timeout.
The code in the Hookup guide should be operational. We have some issues with connecting to our office wifi because of router settings holding us back. When mine doesn’t connect I get a Error code as well, not a timeout. However, when attempted at home, we can get these to connect.
It could be a five but belongs a three.
Save yourself a lot of headaches and add a second row of double pins. Simple. I had every problem encountered below solved by adding the second row of pins. The physical layout is awkward. My serial was set to HW. Move to SS.
No “hello world” example? Well yes but not obvious. Start with the ping demo. Set sid and pw. Next demo. Install fing and scan your network and ports. That should be in every “citizen scientists” toolbox.
Loaded up the Shield Demo Sketch on my Arduino Uno R3. Shield is only discovered one out of every 5 or 6 times. Have to hit the reset button a couple of times. Anyone else have this problem ? Help !!
Sorry you’re having trouble with the shield. I would recommend contacting our tech support team at firstname.lastname@example.org, to see if they can help resolve the issue.
0 of 1 found this helpful:
Just wont connect to the Wifi. Magically happened once and thats it. Will experiment with it further, but not very optimistic….
The video support for this was instrumental in all steps in getting this to work for me. I am a medium novice at Arduino and related activities. I was able to brush up on tips for soldering so I could connect the pins without too much trouble. Getting the IP address to recognize my device, but the tutorial gave me the confidence to stick with it until it connected. I’ll be looking forward to posting data “live” with my next project.
I’m sure this shield is nice to work with but mine was DOA. Board is pulling a huge amount of current and the ESP8266 chip is so hot is it burns to touch. I assume the ground plan underneath the QFN package is shorting something. Intermittent IDE connection that is easily resolved if I don’t have the shield placed (in sw mode). I’ll pull the chip off at work and try to reflow it but tempted to through it in the trash.
Improve your quality control! There is a hole in your quality check that allowed a dead board to be shipped to a customer.
Sorry to hear you’ve had issues with the board. If you contact our tech support team, they can help you to resolve any issues.
I bought the ESP8266 shield to replace the XBee system I was using on my old weather station outdoor components. The stack was going to be RedBoard -> ESP8266 shield -> Weather Shield -> instruments. Unfortunately, when I loaded the ESP8266 AT library and the weather station libraries I only had 32 bytes of flash remaining on the Redboard - not enough to initiate an MQTT session to send weather data or even a raw TCP socket to send to a custom server on the local network. So, need more memory = upgrade to a Mega 2560, right? Well, the Mega (either clones or the genuine Mega 2560 boards) can’t recognize the ESP8266 shield no matter what I do. To solve this problem and get my weather collection up and running I used a genuine Mega 2560, an Adafruit WINC1500 WiFi breakout (SPI device), and the SparkFun weather shield. I then used the Adafruit MQTT library to send data to my MQTT broker that I have running on my network.
So I ended up with an extra ESP8266 shield and Redboard. I’m sure I can find something to do with it, but I’m disappointed that the configuration I planned on won’t work. So minus two stars for R3 board incompatibility.
This product has been a real time saver and partner in my efforts with the ESP8266! Everything is broken out, easy to access and modify. The Tutorial is also GREAT and the sample code included with it makes a great jumping off point for first time or expanded development. I’ve bought four already and will be getting more. I’d give this item a full FIVE start rating if it came with the headers (why doesn’t it?) and if the antenna selection were switch selectable or the SMD resistors were the next size up for beginning solderers/hobbyists.
Don’t bother trying to use this for your IoT project – the library doesn’t implement a standard Client.h interface. I tried to use the MQTT PubSubClient library that I’ve used before with the wired Ethernet shields, but the library seems to be looking for null terminated strings, which the Client.h interface doesn’t have. You can connect to your MQTT Broker just fine, but you will never ‘publish’ any IoT data, as it can’t get through the interface correctly. https://github.com/knolleary/pubsubclient/issues/107
This WIFI shield unit was very very sensitive to the degree it was inserted into the mating connectors on the Arduino Uno. When inserted fully the WIFI chips ran very hot and it would not function. I got the shield to function only one time by fiddling with very light insertion of the pins. SF Support sent me a replacement board, but it only acted dead all the time. I tried using two different Arduino UNOs which still function fine with other shields. I gave up on using this WIFI design and am waiting for SF support to tell me if I can return both units for a refund.
I just got this in the mail last night and had the headers soldered and the board up-and-running with the sample code in about 30 minutes.
I also purchased the 2.4GHz Antenna (WRL-11320) for improved connectivity and range as another reviewer suggested. I highly recommend buying the antenna (it’s only $4.95) and super easy to install - it just snaps into place.
I struggled to integrate ESP8266 modules with projects in the past. They are notoriously temperamental and fragile. The SparkFun shield makes things much easier. The only gotchyas were that some of the example sketches needed tweaking to get to work with some web sites like those hosted on Heroku… but that is not a hardware issue. This is a great little module and a nice price.
I have to say I’m very disappointed with the ESP8266 WiFi Shield you guys are selling. I am pairing this up with a SparkFun RedBoard and even with using the examples to connect to 2 different consumer level access points I’m getting very crappy results. The shield most of the time fails to establish a connection to the RedBoard.
I have tried 2 different shields, 2 different RedBoards, internal antenna, re-positioned the 0-ohm resistor and purchased/tried an external antenna.. Have also created 3” jumper wires to keep the shield a couple inches away from the RedBoardto eliminate an interference condition.. and still it’s very erratic initializing the shield, connecting to the AP, or establishing a stable enough connection to communicate longer than a second or so.
I’m within 8ft of the access points. I have tried a linksys wireless-n, and asus wireless-n. Tried different levels of encryption. Regardless I needed to play the reset game until a connection happens, then it will drop out and not function until I play the game again.
I have been a big fan of sparkfun and have spent a decent amount of money with you guys over the years.. but I have to say this product is garbage.
After ordering four of these and experiencing the same issue with each of them, I’m not sure I’d use these again. When hooked up to USB power, they functioned flawlessly. On battery power in a real circuit, no combination of filtering capacitors could prevent them from rebooting randomly. Maybe in a circuit with extremely clean power they’d have fared better, but I ultimately had to scrap using them in favor of another ESP8266 board that didn’t suffer from the same issues.
Sorry to hear about the issues with the ESP8266 shields. Have you reached out to our technical support department @ Techsupport@sparkfun.com? The can help to resolve issues with the shields.
I bought this board specifically for use with an Arduino Mega IoT project. I did some initial tests using an Arduino UNO, which worked fine. I then connected it the the Mega and got…..nothing. After a lot of experimentation and Googling, I find that several people have confirmed the board does not work with the Mega.
As an aside, all such shields should come with a full compliment of headers, especially when you pay extra for them as I did. Luckily I had some spares that I could cut up to get the needed SCL & SDA pins.
Yeah, unfortunately in this situation, the board was designed with the redboard in mind, so it will not work right out of the box plug and play for the Mega and our example. We have also seen the board be shorted by the USB-B connector on the board, so you might consider trying to re seat the board a little higher up off the connector, or add an insulating pad like some electrical tape between the two devices.
Produces a different response every time I reboot the UNO it is plugged into. Sometimes it works, sometimes it doesn’t. Mostly it doesn’t. The first one I bought bricked out for no apparent reason. Attempts to flash it are extraordinarily difficult and produce near-random results, after many hours spent dredging into the internet trying to find .bin files, flash software that actually functions, addresses, etc. I’m getting the picture about Arduino - you basically spend a lot of time trying to fix other people’s products. It isn’t fun, it isn’t clever. It is just a waste of time.
You can reach out to our technical support department here: https://www.sparkfun.com/technical_assistance I am sure they would be happy to assist you to the best of their abilities.
I’m using the ESP8266 wifi shield to dish up less than 600 bytes of json per request. The ESP8266 is easy to configure and communicate with and behaves consistently. I have an IFU to RP-SMA cable connected to a 2.4GHz duck antenna. I’m using it with a Mega 2560, so I had to wire Mega pins 52/53 to 8/9; tested on an Uno R3 and worked without any jumpers. I have two issues, 1) best speed is under 600bytes/sec, 2) can’t seem to use any other port than 80 but haven’t done a deep dive either on the code. Other than that, it seems to be a solid performer for under $15.
Comes without the head pins and I wasn’t able to flash it with the firmata wi-fi code, so it’s unusable for me…
I bought this with some stackable headers. It was extremely easy to solder the headers on and fit the shield onto my Arduino Uno. The library on GitHub was very easy to use as well. Great examples that got me up and running in no time flat!
Works great, but wish I could assign a static IP to it. Using it with an Arduino UNO and some temperature sensors. Not using phant.io.
Unfortunately, my board arrived DOA, which I discovered after a weeks worth of trying to breath life into it. Sparkfun has experienced similar difficulties with other boards of this class, and has been wonderful about addressing this and other issues. I’ll await their resolution of problems here, as I know they will. I buy often from them and will continue to do so. Stuff happens even to the best and I wouldn’t give the company itself bad reviews over a production issue. Hope it gets fixed soon.
I need to re-flash the AT commands to the hardware. Tech support has not been totally helpful so that I can re flash.
Sorry to hear that! The original firmware can be found in this Github repository. you will need to obtain the Espressif flash utility to upload the firmware to the board.
October 2015 revision: after fighting this board for a long time, I have to admit defeat. I can’t seem to get the board to function reliably. I get init failed (board unresponsive to AT command), connected as 0.0.0.0, connected as 254.255.255.255, and connection to server failed, then the occasional times when it works fine. I’ve looked at the library code and it seems reasonable, yet the board just behaves unreliably for me (connected to the hw serial of a Mega 2560). I wonder whether there’s just something about it that doesn’t work with a Mega vs an Uno.
….my original review…
On the plus side, hey, it’s a $15 WiFi shield, and hooking it up is pretty simple! On the minus side, mine fails to communicate if I seat the board snugly against an Arduino Uno or Mega; I have to seat it, then pull it out a tiny bit. I suspect the programming pins are shorting against the grounded case of the USB A connector on the Arduino. Also on the minus side, the provided library makes the app provide housekeeping code to filter out the ESP8266 protocol (+IPD,0,1470: etc.) from received data.
Other than that I’m having fun with the board, and am looking forward to using it in a Lunar Clock project I’m putting together.
Hi, You’re right that these pins might be shorting onto your USB port. A dab of nail polish on the USB casing, or a bit of electrical tape can help to isolate the USB housing from shields on top. I will suggest that we move those pins in the future to avoid making contact. Thanks
I had a project with a CC3000 and multiple times a day it would hang. I worked around this by adding a WDT to reset it when it would hang, but this caused some issues with my projects display. I took half a day to retrofit with the ESP8266 shield and now have run for 24 hours without any hangs … and at half the cost!
I have been unable to install the software for the wifi board in arduino despite your tech support guys best efforts. It seems like the arduino must be buggy In the boArd manager area.
I got this in the mail and it took me a bit of time to get it working. There was nothing wrong with the board and getting Ping working wasn’t too hard but if anything goes wrong there isn’t much info as to what. My workshop doesn’t have super strong WiFi signal strength but I didn’t know if that was the problem. I finally set up a Kindle hotspot right next to the board and it worked. Still haven’t gotten the server sketch to work but it’s just a matter of time and debugging. But the functionality is impressive and the Arduino environment makes it easy.
Spark ESP8266 Shield demo works ok. I tested signal reception in next room – okay. Problem with finicky headers. Found that it was best to insert pins just a little bit – if I pushed them all the way in got “error communicating to board.”
……working with new IoT projects.