The ESP8266 WiFi Module is a self contained SOC with integrated TCP/IP protocol stack that can give any microcontroller access to your WiFi network. The ESP8266 is capable of either hosting an application or offloading all Wi-Fi networking functions from another application processor. Each ESP8266 module comes pre-programmed with an AT command set firmware, meaning, you can simply hook this up to your Arduino device and get about as much WiFi-ability as a WiFi Shield offers (and that’s just out of the box)! The ESP8266 module is an extremely cost effective board with a huge, and ever growing, community.
This module has a powerful enough on-board processing and storage capability that allows it to be integrated with the sensors and other application specific devices through its GPIOs with minimal development up-front and minimal loading during runtime. Its high degree of on-chip integration allows for minimal external circuitry, including the front-end module, is designed to occupy minimal PCB area. The ESP8266 supports APSD for VoIP applications and Bluetooth co-existance interfaces, it contains a self-calibrated RF allowing it to work under all operating conditions, and requires no external RF parts.
There is an almost limitless fountain of information available for the ESP8266, all of which has been provided by amazing community support. In the Documents section below you will find many resources to aid you in using the ESP8266, even instructions on how to transforming this module into an IoT (Internet of Things) solution!
Note: The ESP8266 Module is not capable of 5-3V logic shifting and will require an external Logic Level Converter. Please do not power it directly from your 5V dev board.
Note: This new version of the ESP8266 WiFi Module has increased the flash disk size from 512k to 1MB.
Based on 35 ratings:
12 of 12 found this helpful:
UPDATE: I’ve used the now retired .5MB version and this version. Below I have put a copy of my original review. Since posting that I moved past just controlling it via a USB to Serial interface and put it on a breadboard with a microcontroller and I found this to be important: Use a dedicated 3.3v regulator to power this module, see my comment in the comments section about this.
PAST REVIEW: A lot of bang for the buck! Overall it’s a pretty solid little board. It comes preloaded with firmware that implements an AT command interface. I recommend updating to the latest AT command firmware, especially if you are going to use UDP mode of communication.
I haven’t used it with TCP connections, but the UDP mode seems to be very robust. I’ve had it running for over 3 days sending UDP packets every 2 seconds and it’s still going strong, no hiccups with WiFi connection or serial data transmission to and from the module. I’m sure my awesome software design and coding has something to do with it, but the module is holding its own :)
Range seems pretty good, I had no problem connecting to my router indoors from anywhere inside, and I even took my setup on a breadboard out to the furthest point in my yard, about 150 feet from the house and was able to connect to my router down in the basement through solid concrete poured foundation. Not too shabby.
Since they are so economical I bought 2, and I’m glad I did, as the description mentions do not hook this up to more than 3.3 volts. When I went to update my firmware on one of the boards I didn’t have my glasses on and inadvertently connected the GPIO0 to USB 5v rather than ground the next terminal over. When I noticed the mix-up I switched it to ground and successfully flashed the new image, but when I try to boot up normal it just spews garbage out of the serial port, so it is very sensitive to the wrong voltage.
I don’t have any issues with the board, but I can’t bring myself to give it a 5 star rating as I believe that should be saved for special circumstances, even though this module is lots of bang for the buck I feel like there could be a better ESP8266 board so I’ll call it a 4.5 and recommend you play around with one if you haven’t already.
6 of 6 found this helpful:
I’ll hold off on saying what you’ve probably already read with the words “cheap”, “IoT” and “the future” and tell you what I have learned so far.
I ordered one of these in early October (2015) and was able to get it responding, however, I was thrown off by its version response. I can’t speak for other suppliers, whose product images often show a more “plain” blue board, but Sparkfun sells this nifty “black AI-Cloud” (AI-Thinker) version (with possibly a larger flash than “blue” versions, which can be important later on for Firmware Over The Air (FOTA) and other firmware flashing). I believe AI-Thinker is partnered/licensed by some means with Espressif (the ESP8266 SoC maker) to make a board. I compare it to Arduino using Atmel’s AVR. I mention this because support for this chip is largely community driven and it can become very confusing. You’ll see that you can use AT commands initially to talk to the device and the firmware version on these is slightly different than 99% of what you will read; it seems to be AI-Thinker’s version of Espressif’s AT commands. The commands seem to be the same and I don’t know the differences, other than the possibility that these boards get their FOTA from AI-Cloud’s servers instead of Espressif’s servers.
Considering the versions and the fact that these (and similar modules) are constantly being updated, the module I received was based off of
AT version 0.25 (Jun 5 2015) SDK version 1.1.1
and FOTA upgraded to
AT version 0.30 (Jul 3 205) SDK version (Build) 1.2.
Since I am brilliant I nearly broke my module and decided to then order an additional three at the end of the same month (October). I have so far only tested one of these devices and the version on it is
AT version 0.40 (Aug 8 2015) SDK version (Build) 1.3 Sep 11 2015.
Good to know these modules are up to date AND which firmware we are working with. Also important since the community will tell you these modules have varying baud rate settings, the baud on these was set to 115200.
If this is the first time you are working with this board, grab a 3.3V Basic FTDI, DEV-09873 $14.95, 3.3V Regulator, COM-00526 $1.95, a Bi-Directional Logic Level Converter, BOB-12009 $2.95 and some Male/Female Jumper Wires - 20/PK, PRT-12794 $1.95. The extra $22 may save you some peace of mind and can certainly be used for other projects. I did initially use the logic level converter and was able to work off of the Arduino’s 3V3 pin, however, some quirks I ran into (which I believe lead to further problems) could probably have been attributed to the Arduino unable to provide the necessary current causing the module to reset. NOTE: This doesn’t mean I had a problem with the module, rather the problems were very likely user related.
I did not give this module a 5 star rating because I’m still learning about this module and I’m an electronics hobbyist so my knowledge may not be as great. Therefore, I didn’t think it was fair to give it a full rating if I haven’t been able to use all of it’s features. Yes… It’s not breadboard friendly but the M/F jumper wires makes it a non-issue. Otherwise I was able to connect it to the internet out of the box and all for $7!
EDIT: Fix some formatting.
4 of 4 found this helpful:
Running this with an Arduino Uno, using a 3.3v voltage regulator and 3.3v LLC, and it’s been very stable. So far it’s been 2-3 weeks, sending sensor information to a web server once per minute with almost no downtime.
3 of 3 found this helpful:
RX TX pins were reversed for me at least if you go by NURDSpace. I connected the pin labeled RX to TX on my Arduino and TX to RX (all through level shifter) and it didn’t work, I switched the pins RX to RX and TX to TX and now it works.
Works great now that I’ve straightened that out, I was ready to ask for return on a defective module.
2 of 2 found this helpful:
The community has really come together to make this inexpensive module easy and (relatively) reliable. I like the Arduino port, because it’s easy and works with a whole mess of libraries, but NodeMCU is acceptable, as is the native toolchain. Works well with services like Blynk if you want to control it with a smartphone without writing a custom app and server. Definitely get it some power of its own, nearly turned my FTDI Basic to slag just teasing the NodeMCU upload.
1 of 1 found this helpful:
Look. I like this module. I really do. Even though I totally fried mine after like three days. It was probably completely my fault.
I’ve been playing with various ESP8266 modules for a while now. This module is probably exactly what you need if you want to interface with an Arduino and chat with the pre-flashed Hayes AT-based firmware to access web pages. You know, get up and running quickly.
That said, unless you’re really a fan of the AT-based firmware, I’d recommend you pass this guy up in favor of the Thing Dev board. Did you know you can upload Arduino sketches to ESP8266 modules pretty easily? But putting these guys in flash-mode is a bit of a chore, and the Thing Dev board is supposed to do that automatically (I don’t have one so I haven’t verified).
Also I’d prefer more GPIO than this ESP-01 module offers. The Thing would probably be better for that, but if you’re looking for something more modular I might recommend just going to eBay and finding a reputable dealer for an ESP-12 or ESP-13.
7 of 7 found this helpful:
I bought a couple of these modules last month (Nov. 2015) and when I finally got around to exploring with these, it took me a few days to get them working.
My “Be Aware” remark in the title is because this is not something that an inexperienced user will find easy to work with. A few things to point out.
The module is very picky about power. I recommend powering this with a dedicated power supply. I also recommend using a dedicated power supply along with filtering capacitors to ensure that the power is steady. When I finally got the modules to communicate, there were numerous resets. Good jumper wires and good connections to the breadboard along with filtering capacitors solved the problem.
Documentation is shall I say “not really up to speed”. I have found that there are pictures of the pinouts on the internet that are wrong.
Once you do get one of these working properly… WOW! The possibilities are endless.
The only reason that I gave this 4 stars rather than 5 is because of the difficulty and frustration involved getting them to work. I must point out that my purchase from Sparkfun was a good experience as always, and they did have tech support on hand to help me out.
1 of 1 found this helpful:
Hi, The Sparkfun ESP8266 WiFi Module doesn’t work correctly, it can’t connect to Hostpot (AP WiFi) neither to the STA WiFi, it takes too much time, is not reliable to all.
Personally I usually buy from Digi-Key, not from your website directly, Digi key Part Number 1568-1235-ND, Manufacturer SparkFun Electronics Manufacturer Part Number WRL-13678
Your Module is low quality compare to Digi-Key Part Number 1597-1145-ND Manufacturer Seeed Technology Co., Ltd Manufacturer Part Number 317060016
This is working perfectly.
Why did I buy directly from your website? Is because after wasting 100 pcs of your Modules, I decided to buy from your website maybe the quality can be better than the one you have on Digi Key. This is why I bought 10 pcs for a test directly from you website, your modules are not working at all.
The other manufacturer Module works perfectly without giving any connection problems I bought from Digi Key lot of modules, unfortunately the modules were sold out by the moment I wanted to order.
If you’re having technical issues with these, please contact our technical assistance team for help.
2 of 2 found this helpful:
It’s amazing that this board provides the level of Wi-Fi and TCP/IP functionality for the price. That said, it is tricky to get started using the device. I found that my module did not work properly until the CH_PD pin was pulled up to VCC. The Nurdspace page that is linked from the product page doesn’t list this pin. I also found that I had to flash the device before it worked properly. I’m not sure if it was unprogrammed when I received it or if I did something to mess it up while trying to get it connected properly.
I found this website extremely useful as a reference for flashing the board and for many other odds and ends: http://labdegaragem.com/forum/topics/conhecendo-o-esp8266 Note that this board (or equivalent) is named ESP8266-01. The website is in Portuguese but Google Translate did an excellent job and it’s quite readable after being translated. I achieved first-time success in flashing the board by following the instructions on this page.
One other thing–the page I linked as well as some forum posts note that PuTTY and Tera Term don’t agree with the ESP8266. A free utility, TERMITE (linked from the above page) worked well with it.
2 of 2 found this helpful:
It’s a very good product and I’m having tons of fun with it. However, as mentioned in previous comments, you need to be patient when you try to connect it the first time. There are all sorts of things that can go wrong and here’s what I found until it worked properly.
1) Power Supply: make sure to provide enough juice to the module and to apply a large filtering capacitor between its VDD and GND (1uF worked for me).
2) Pinout: the pins I found in the websites provided were correct except for at least one that was ignored. The image you may find (top view) look like this
(Antenna on Top)
GND NC NC Rx
TX NC NC VCC
But at least one of the “NC” should be connected during setup. It’s called CH_PD. This pin has to be pulled-up to VCC to enter AT command mode. You pull it down to GND to be able to change the firmware (didn’t try it yet). So the pins now look like this:
(Antenna on Top)
GND NC NC Rx
TX CH_PD NC VCC
3) Baud Rate: the baud rate or this device is verified as described to be 115200. But if you get one from other vendors, the firmware version might be different with a different baud rate.
4) Terminal Program: I used my pc to connect to the device. There seems to be data encoding issues with some terminal programs. Tera Term didn’t work for me so I switched to one some people suggested called TERMITE (it’s actually cool). I setup everything and finally got a response for my “AT” command. But it was always showing “ERROR”. I fixed this after changing the settings of Transmit and Receive in TERMITE to “CP + LP” (the default comes either CP or LP only).
With all this it worked well and I was able to communicate with it and configure its network connection later.
2 of 3 found this helpful:
I’ve seen the other reviews and searched the internet along with contacting help at Sparkfun. However, I could never get them to work. The module only returns garbled text when sent an AT command. All the snippets of help said the same thing, that it is either power issue or baud rate. I have provided its own power supply at 3.3 with 1amp. I have tried all baud rates. I even tried to manually change the baud rate by sending the proper AT command to do that and I still could not get anything readable.
1 of 2 found this helpful:
These modules are easy and powerful.
IN ARDUINO WHAT BOARD I NEED TO CHOSE IN TOOL MENU
If you can’t find what you need under the documents section, you can always get in touch with our tech support team. They should be able to help you out!
Module came quickly in great condition, I’m having a little trouble getting it online but I blame my news status to arduino and coding not the product. I would definitely recommend it if you are in the market for adding wifi to a project. It can also be set up as a stand alone controller which I find really cool. The main downside is the inability to convert logic signals from 5 to 3.3v onboard so you have to use a logic level converter. Overall a great wifi option!
I’ve never worked with anything over serial yet, but holy smokes was this thing easy to setup. Right now I’m just messing with it through the Serial Monitor via an arduino, and it was able to seamlessly list all networks around. Connect to my wifi. And accept all the commands with zero problems. I’m so impressed with this thing, I think I’m going to buy lots more. The possibilities are endless here!!
Worked well, was deliverered fast, and had the pinout printed directly on the module (made for easy setup)
I bought two, and I can’t program them. It appears that the reset pin has not been connected to the header. Pin 32 is the reset pin on the chip and it goes to what appears to be a 10K pullup resistor and and small cap that goes to ground. But, it does not go to the pin on the header that the documentation describes. Hence, I can’t program it. Waiting on tech support. I can communicate with it, but reset seems to be broken. edit 7/11/2017 Turns out tech support never got my request, but contacted me because they saw my review. I discovered that the reset line has a 12k resistor in between the pin and the micro. There also is a pull up (10K). No way to pull the reset line low, so I removed the 12k resistor and replaced it with a short. I can program the part now. Leaving my review rating as it is because the modules that I received were built wrong. Your mileage may vary. The resistor is the one closest to the header pin 1.
I am using this module with esp-link to connect to a HY-TinySTM103T running mecrisp-stellaris forth. I initially had trouble flashing firmware onto the board until I discovered that the flash mode had to be set to ‘dio’ or ‘dout’ rather than ‘qio’ (the default in many cases). None of the documentation listed on the sparkfun site indicates this, I had to determine it experimentally.
I read from some other articles regarding stability issue and restarting frequently; but it didn’t happen for me. I really appreciate using this module. Have fun guys!
So the ESP8266 was a little difficult to get linked up all right. There are tons of conflicting bits of documentation all for different flavors of the ESP8266. I successfully used this guide for the “Thing”, but it worked perfectly: https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/installing-the-esp8266-arduino-addon
One of the things that wasn’t super clear to me right away was that you don’t actually need an arduino processor to communicate between the FTDI and the on-board processor for the ESP8266. You can flash it directly from your FTDI.
I used a simple FTDI bus with a 3V external power supply (to power the wifi module) across a 1000uF capacitor. I used 100ohm resistors on the data lines. I had no trouble damaging the circuit even though the FTDI spits out 5V on the RX/TX pins. I used the FTDI basic with the full-size USB port.
This module does exactly what I wanted…connects to the WiFi and sends me an alert when an event happens. Perfect tool for tge job and good price.
The only negative thing I have to say is about the GPIOs. It is not very clear how the GPIOs work, and depending on how you use one pin, the other may not work the same way. Digging into the ESP8266 datasheet will answer these questions, but using the module’s GPIOs in the Arduino IDE was not as simple as using a typical Arduino’s GPIOs.
Cheap, but have yet to get them working.
0 of 12 found this helpful:
This thing, as mentioned, is “not breadboard friendly”. That is a huge understatement! Not only is not not breadboard friendly, but it’s back extends out too far, so it covers up and potential headers. I recommend a socket for this. Don’t be like me!
PS: or put it in sideways, and IGNORE the middle pins!
We like to use some F/M jumper wires. That will allow you to adapt to the back of the ESP8266 and then plug into a breadboard. https://www.sparkfun.com/products/9140
…considering it’s size and affordability. While it is a little buggy and potentially difficult to program without the right tools, once you get it working, it connects to your wireless network and is running your code within 6 seconds of powerup.
If you need other antennas/controller, there are other models of ESP out there, but this one is perfect for someone seeking a learning opportunity with 2 GPIO pins.
Have 2 now. One pulls 20 to 30 ma (no wifi state). other is pulling 93 ma. Gonna get 2 more and hope to figure it out. I’m using pic mcu to send AT commands.. 1st tried Voltage Divider for TX: eventually fried the ESP. Then tried running the PIC at 3.3v: similar result. Now using bidirectional level converter. This is the ESP pulling 93ma in no wifi state.
I am attempting to use this project in conjunction with an Arduino to provide wifi connectivity to one of my projects. The devices are pretty cheap, which is good. That said, they can be a bit difficult to get to work. You will need to be comfortable with “AT” commands, and will probably want to re-flash the device to get the latest firmware. That said, they are not too bad. Note that you will probably want a usb to serial cable (FTDI) in order to update the firmware. Also, the devices are sensitive to voltages. I’m using a 3V voltage regulator and have not had issues. Good luck!
I like these a lot. Sure, you could pay a couple extra bucks for the full breakout - and you should if your project requires more GPIO pins. However, for simple WiFi tasks that requires only a single GPIO (e.g. One-Wire), these are great. They run cooler and are smaller so they’ll fit in smaller places and tighter circuits. I have many of these around the house as thermometers that report to a server that controls the air conditioner as well as servos (to open / close vents) in order to keep all of the rooms at their desired temperatures.
Keep in mind that while it has a pretty fast clock for an soc, it is extremely picky about watchdog. So, Serial IO may have you pulling your hair out due to the constant watchdog restarts. Get past this by not doing both input and output in the same bracket. I could be wrong, but I think the watchdog is fed every time the stack level is changed.
Not only is it a fully capable wifi module, it’s MCU is fully exposed. You can construct all types of wifi net with these module e.g. Meshes. And the list of projects go on beyond wifi applications.
I tried to get one of these to work but even with its own dedicated 3.3v power supply and after trying all possible baud rates it still only returned meaningless junk characters
Sorry you’re having trouble with this board. If you’ll contact our tech support team, they should be able to help you resolve the issues you’re having.
The other libraries you list provide good info but don’t address this board directly. You should look at this one:
While I have not gotten everything working yet, I am much farther along.
Connects to the network very well after issuing an inordinate number of commands that it should remember. It also requires termination characters of <cr> <lf> pairs for the commands and for data received and transmitted, both in client and server modes. There should be a mode that it just transmits and accepts characters as they are sent/received. Even in “stream” mode a <cr> <lf> pair is required … absurd.
But if your application doesn’t care the module is a great buy and works well.
Don’t forget to RS232 interface chip unless going directly to a microprocessor.
coming from a background of trying to get the NRF24L01 module to work. Emphasis on the word “trying”.
This is working with an operating system. Just rewrote it, so still going through bugs here and there. Need to debug the drivers for this, but they’re simple RS-232 drivers for the OS, which should work. Past that, need to get networking/connect and perhaps RF mesh working.
So far, the chipset looks easier to use, although unless you dig for it, the higher level software is missing. If you’re in an Arduino environment (and I’m not), there may be drivers out there. Since I’m not, it’s roll your own time. (answer to question: Yes, the OS has enough goodies that I’ll keep it, or perhaps maybe (or not) rewrite it into FreeRTOS, but FreeRTOS doesn’t have things I need.)
You’ll need RS-232 communication, then something to call functions to connect, then transfer messages. What you do beyond this is a function of what you decide to do overall. The creators do have software and infrastructure to look at, but I haven’t done that enough yet.
Stay tuned, if I can add to this review….
So far, looks good. All the work will be up at the system level (message types, connects, dialogues between nodes…)