Posted on

ESP-12F and Breakout Board

The ESP8266 module is a cheap and relatively easy way to build an Arduino-style project with WiFi capabilities.  It’s not without its quirks, though.  The following should help you get up to speed quickly.

The ESP is a power hungry device.  It requires a solid 3.3V DC power supply.  (Probably in the 1A range, depending on what else you are powering from the same supply. It doesn’t draw this much steadily, but it draws bursts while transmitting.)  Make sure you have appropriate capacitors mounted as close to the module as possible.  Also note, this module is 3.3V and is NOT 5V tolerant.  If you apply 5V to any of the pins, you will destroy it.  Use something like this http://sktechworks.ca/product/quad-logic-level-converter/ to interface to any 5V devices.

Minimal Setup:
In order to operate, the ESP-12F module requires the following:

Pin Resistor Connection
VCC 3.3V DC
GND GND
GPIO0 Pull Up
GPIO15 Pull Down
CH_PD Pull Up

The breakout boards we have contain the resistors for GPIO15 and CH_PD.  The only connection you need to worry about is GPIO0, which toggles between “Run” and “Bootloader.”  (A pullup on Reset is not a bad idea, but not entirely required.)

Minimal for programming:
In order to program the ESP module, you need to pull GPIO0 low and have control of the reset line.

Pin Resistor Connection
VCC 3.3V DC
GND GND
TX RX on serial adaptor
RX TX on serial adaptor
Reset Pull Up RTS on serial adaptor or pushbutton to GND
GPIO0 Pull Up DTR on serial adaptor or jumper/button to GND
GPIO15 Pull Down
CH_PD Pull Up

If your USB-UART adaptor has RTS and DTR, you can program this module as easily as an Arduino.  If you don’t have those pins, don’t sweat it.  Simply wire GPIO0 Pulled UP, then jumper it to GND for programming.  Do the same with Reset. (Use a pushbutton for easier access.)  When you are ready to upload your new program, you will need to press and release the reset button. (or ground and unground a jumper.)

In your Arduino IDE, the current best package for ESPs is:
https://github.com/esp8266/Arduino

The installation instructions are fairly clear on that page.