Home > Hardware > Add Wi-Fi to Arduino Boards for $3 with ESP8266 Wi-Fi Serial Module

Add Wi-Fi to Arduino Boards for $3 with ESP8266 Wi-Fi Serial Module

November 17th, 2014 Leave a comment Go to comments

There has been some buzz around ESP8266 Wi-Fi module, mostly because of its low price, and SDK availability, meaning it could become the Wi-Fi equivalent of ENC28J60 Ethernet module, and that for $5 you could potentially add Wi-Fi to your Arduino board for example. Since then, the price has come down even further, and if you are prepared to buy 5 pieces, you can now get the module for less than $3 / piece shipped, alternatively a single module costs $4, and a complete Wi-Fi + Arduino Uno (clone) kit goes for $15. A community has also been built around the chip, and a several project have been made with Arduino boards and ESP8266 module.

ESP8266_Wi-Fi_Module

The best way to find information is to go to ESP8266 community forum, as well as read the Wiki on github. There’s currently a GCC toolchain for Espressif Systems ESP8266, open source tools for working with the firmware images and serial protocol, but the (leaked) SDK needs to be officially opened, as I understand it still requires an NDA.

ESP8266 does not have to be connected to another MCU board via its serial interface, and it can be used in standalone, as it also provides two GPIOs (version 2 only) so you can use it to control relays for example. The picture above is ESP-01, which is the most common module, but there are also other form factor for example with ESP-07 that’s even smaller but would require some soldering.

There’s been several project published on the web with Arduino + ESP8622, but AFAIK no libraries have been released yet, and people simply send AT commands in their sketches. You can check ESP8266 Wifi Temperature Logger project using Sparkfun Arduino Pro Mini 328, Seeeduino wrote a short tutorial with Seeeduino3 (Arduino UNO), and James Wolf did a short demo using ESP8622 and Arduino Micro board that fetch a URL, and display the HTML code and some of HTTP data in the serial monitor.

The sketch for the demo can be found here, and he also wrote some documentation.

Thanks to onebir for the tip.

  1. November 17th, 2014 at 11:15 | #1

    There are more links to resources @ http://www.xess.com/blog/esp8266-resources/, too bad none of the links are actual links, so you need to copy/paste the URLs.

  2. onebir
    November 17th, 2014 at 12:04 | #2

    stretches? :p

  3. November 17th, 2014 at 12:36 | #3

    @onebir
    It helps to stretch before writing a sketch…

  4. onebir
    November 17th, 2014 at 14:19 | #4

    @cnxsoft That’s a stretch 😉

  5. November 17th, 2014 at 16:28 | #5

    And none of the software actually works reliably yet. I’m blogging about this to try to help others as I and others try out different implementations of the firmware. Turning a light on and off is one thing – doing it reliably is another. While it is true that the code is available, many cannot get it to compile or do not understand or understand Linux well enough to delve in – and hence out there, there seem to be around 3 different attempts at making working firmware, as of last night, none of them has succeeded for one reason or another – so we keep looking.

    http://scargill.wordpress.com/2014/11/17/esp8266-life/

  6. Paul
    November 18th, 2014 at 05:11 | #6

    > but the (leaked) SDK needs to be officially opened, as I understand it still requires an NDA.

    Why, already has been, for couple of weeks – http://bbs.espressif.com/viewforum.php?f=5 . In a sense, there’s publicly available SDK. But everything else is still “chinese” (don’t mix with Chinese) – licensing terms of SDK are not clear, too many binary blobs inside, and they managed to release 2 (randomly named) “patches” to it – instead of just making another micro release.

  7. Paul
    November 18th, 2014 at 05:51 | #7

    @cnxsoft: Also, as you brought ESP8266 matter, there’s a crowdfunding campaign for currently the best available ESP8266EX module – one which actually has ADC (and lotsa others) pin broken out (the cheap modules on aliexpress do not). The campaign is crying – they shoot for $5K, which is ridiculous on its own. But they shoot to collect it in 3 months. They would get more if they just start selling it on aliexpress now, but they cunningly (dumbassly?) sell only on taobao.

    Then the author of campaign description (“CTO”) doesn’t know English – like completely, the read of description is hilarious. Is it so hard to higher a student who actually took her English classes to do some copywriting work? Description lacks many relevant details, for example, perks include a “baseboard”, but there is no information about it.

    I hear you laugh: “fraud”, but it passes your own basic test – it’s fixed, not flexible campaign. Then, fraudster who doesn’t even know how to properly defraud on crowdfunding sites? Nope, I personally think it’s a legitimate case of a Chinese vendor reaching out for a Western consumer with an aim to fund its R&D department for next couple of years.

    So, with full disclosure like above, and heavy heart, I’m asking you – would you consider posting a separate article on this campaign, to support such weird mix of technical genius and lazy-bastardism?

  8. Paul
  9. Jon Smirl
    November 18th, 2014 at 05:54 | #9

    @Paul I have it from the Espressif CEO that they are trying to go fully open source but not everyone in company understands what that means. When you throw in language issues you end up with the mess you currently see. But — the current mess is a big improvement from what it used to be like so they are making progress. Their engineers are even starting to log into http://www.esp8266.com and make comments. Huge progress has been made in creating an open source compiler/linker and not needing to get one under NDA fron Cadence.

  10. Paul
    November 18th, 2014 at 17:20 | #10

    Just to clarify, my comment at “05:51” above does not have any relation to Espressif, it’s about completely separate company which produces a *module*, not the chip.

    > Huge progress has been made in creating an open source compiler/linker and not needing to get one under NDA fron Cadence.

    And that progress has nothing to do with Espressif, it was done by community engineer, whose day job is Xtensa support. Espressif was quick to pick it up and release new public VM with it, which is very good of course, the point – community leads here.

    > I have it from the Espressif CEO that they are trying to go fully open source but not everyone in company understands what that means.

    I doubt even CEO understands what “to go fully” means – it’s unlikely that they will open up libphy source, etc. If they did, they’d show a great example to westeners ;-). Anyway, great progress, please keep nagging Espressif people about it ;-).

  11. nonokunono
    December 9th, 2014 at 14:27 | #11

    Official firmware at AT command 020
    new firmware brings AT commands for hardware sleep mode,
    (AT+CIPSTAMAC , AT+CIPAPMAC )
    MAC address change for station and ap mode.

    http://www.filedropper.com/at020 (just write it to address 0 )
    http://wikisend.com/download/669568/at020.bin

    screenshot here:
    http://postimg.org/image/ywh96pk3f/cc856977/

  12. Simos
    December 9th, 2014 at 18:08 | #12

    You may want to update the post with the content from
    http://bbs.espressif.com/viewtopic.php?f=5&t=67
    (apparently official SDK on github).

  13. June 30th, 2015 at 15:29 | #13

    I have just publish an instructable for a complete Arduino Wifi Shield, 5V and 3.3V compatible with pushbutton webpage configuration for network ssid and password and IP address/portNo for <US$12.00

    Very Cheap/Simple WiFi Shield for Arduino and microprocessors
    http://www.instructables.com/id/CheapSimple-Wifi-Shield-for-Arduino-and-other-micr/

    The project is also available at http://www.pfod.com.au

  1. November 19th, 2014 at 13:50 | #1
  2. December 3rd, 2014 at 22:15 | #2
  3. January 18th, 2015 at 13:35 | #3
  4. March 26th, 2015 at 11:25 | #4
  5. April 18th, 2015 at 17:30 | #5
  6. April 25th, 2015 at 11:20 | #6
  7. August 3rd, 2015 at 19:35 | #7
  8. October 26th, 2015 at 18:25 | #8