The ESP8266 has become the price/performance darling of the Maker community. What is not to like: small size, connectivity, powerful microcontroller.
 |
| ESP8266 Modules - the ESP-01 on the left, the ESP-12 module on the right |
Well, there are frustrations. Wiring the modules is not so easy, as pinouts are not breadboard friendly. The microcontroller is new and not well documented in English, with some information proprietary, yes not Open Source (but processors generally are not fully open).
So what is driving the interest: size and cost. The ESP-01 module is 14.54 mm x 24.9 mm(about an inch by a bit over half an inch - tiny compared to modules that proceeded it (which did not include a microcontroller). And the cost of the ESP-01?
$6.95 from Adafruit (flashed with a reliable firmware and tested) down to
$2.88 or so on eBay from China. Compare to a
$25 Arduino Uno and a
$35 CC3000 wifi module. A tenth the cost or less and perhaps a tenth the size.
The basic ESP-01 version has limited input/output pins. Other models,up to the ESP-13 have additional pins of the microcontroller available. A list of various versions is at
www.esp8266.com.
So if you see the connections on the modules above, The ESP-01 has two rows of 4 pins, making it hard to breadboard. The ESP-12 module has metric pin spacing which does not connect to 0.1 inch breadboard spacing. What to do? Various people have various solutions. On the ESP-12, companies have mounted them to larger 0.1" boards. From plain
carriers on eBay to Adafruit's new
Huzzah board.
Power
The following data are based on a 3.3V power supply, ambient temperature 25C and use the internal regulator measured. Data is from
https://nurdspace.nl/ESP8266
| Mode | Min | Typical | Max | Units |
| 802.11b, CCK 1Mbps, POUT=+19.5dBm | | 215 | | mA |
| 802.11b, CCK 11Mbps, POUT=+18.5dBm | | 197 | | mA |
| 802.11g, OFDM 54Mbps, POUT=+16dBm | | 145 | | mA |
| 802.11n, MCS7, POUT =+14dBm | | 135 | | mA |
| 802.11b, packet size of 1024 bytes, -80dBm | | 60 | | mA |
| 802.11b, packet size of 1024 bytes, -70dBm | | 60 | | mA |
| 802.11b, packet size of 1024 bytes, -65dBm | | 62 | | mA |
| Standby | | 0.9 | | uA |
| Deep sleep | | 10 | | mA |
| Saving mode DTIM 1 | | 1.2 | | mA |
| Saving mode DTIM 3 | | 0.86 | | mA |
| Shutdown | | 0.5 | | uA |
The units should
never be powered off more than
3.3 volts DC. Using a voltage other than 3.3 volts, you will need to use a power regulator. Looking at the power requirements above, a 250 ma regulator like the
L4931-3.3 is pushing the limit. If you are breadboarding, most people appear to be using the
LD1117.3.3 800 ma linear regulator which gives plenty of current without requiring a heat sink on the regulator. It is best to use a 10 microfarad capacitor on the input and especially the output to keep the output smooth. If you are breadboarding only, there are
breadboard power supplies that make it easier to generate 3.3 or 5 volts when you want it.
Firmware
There are currently two general variations on firmware. The first implements an "AT" command set to instruct the module how to connect via wifi. A second firmware has been developed by
NodeMCU implementing the Lua scripting language. There are some other firmware images including one implementing the
MQTT protocol.
User Software
Some smart folks have added the Espressif code compiler to the Arduino IDE. This allows for the average person to write code that runs on the ESP8266 board itself (no Arduino or other controller required). This makes it exciting that in a one inch size board, you have a complete Internet of Things node.
Where to go from here
While Lua allows for web apps with a small amount of code, I believe there is a great deal one can do to interface hardware with the ESP modules and compile code directly. As a person who has done Arduino code for 2+ years (and a C die hard), that's where I'll be looking to provide projects.
For my first published project, See an ESP-01 connected to a temperature and humidity sensor, available via any web browser - at
https://learn.adafruit.com/esp8266-temperature-slash-humidity-webserver/overview.