DIY Memo: ESP8266 v7 hookup

Same story as the last time, but with ESP8266 v7 this time.

This is the hook-up instruction for ESP-07 and how to capitalize on its GPIO pins.

8_LEDs_light_up_in_sequence

Things to know:

– 3.3V power source

– Default baud rate: 115200 (programmable at 9600)

– R1, R2, R3, R4 are all 10K

– C1 is 0.1 uF (ceramic capacitor 104)

– The solder pads are slightly smaller than the standard Arduino pin’s dimension. Use a small drill, purchase specialized pins or solder wires directly.

– GPIO2 -> HIGH during startup

– GPIO0 -> HIGH (standard) or GPIO0 -> LOW (flash) during startup

– GPIO15 -> LOW (standard) or GPIO15 -> HIGH (boot from SD card) during startup

– RXD is GPIO3 and can only be used as input. Similarly, TXD is GPIO1 and can only be used as output

– Deep sleep requires connecting GPIO16 -> RST to wake up.

– A diode from RST -> GPIO16 is necessary to use wake up and reset switch at the same time. The cause is GPIO16 producing HIGH current in deep sleep and it prevents reset switch from working. A diode blocking this current solves the issue.

– ADC is the only analog pin available. It is GPIO6 or A0 (alias) in Arduino language.

ESP8266 pin I/O support
GPIO0 INPUT with pull-up, jumper and delayed hook-up via a sacrificial GPIO pin which is only grounded after boot
OUTPUT with external device between VCC and GPIO0 (GPIO0 -> HIGH, device -> LOW)
GPIO1 (TXD) OUTPUT only
GPIO2 INPUT with pull-up and delayed hook-up via the same sacrificial GPIO pin as GPIO0
OUTPUT with external device between VCC and GPIO2 (GPIO2 -> HIGH, device -> LOW)
GPIO3 (RXD) INPUT only
GPIO4 INPUT and OUTPUT
GPIO5
GPIO12
GPIO13
GPIO14
GPIO15 OUTPUT with external device between GND and GPIO15 (GPIO0 -> HIGH, device -> HIGH)
GPIO16 (XPD) INPUT and OUTPUT
RST or DTR to wake up from Deep Sleep mode. Include a diode from RST -> GPIO16 if reset switch is used
GPIO6 (ADC, A0) Analog INPUT

Read more:

http://ediy.com.my/blog/item/133-upload-sketch-to-the-esp8266-esp-07-esp-12-using-arduino-ide

http://www.forward.com.au/pfod/ESP8266/GPIOpins/ESP8266_01_pin_magic.html

http://www.esp8266.com/viewtopic.php?f=13&t=13341

http://www.instructables.com/id/ESP8266-Using-GPIO0-GPIO2-as-inputs/step2/GPIO0-GPIO2-and-GPIO15-pins/

http://randomnerdtutorials.com/esp8266-adc-reading-analog-values-with-nodemcu/

http://internetofhomethings.com/homethings/?p=530

https://hackaday.io/project/8435-2-analog-inputs-for-esp8266-without-multiplexer

Advertisements

DIY Memo: ESP8266 v1 hookup

Tonight marks the third time I forgot how to hook up this wifi module already, I might as well leave a memo here for my forgetful future self.

This is the hookup instruction for ESP8266 v1 using CP2012 and Tera Term software

fn30hcfi3thpc9w-large

Things to know:

  • 3.3 VDC source
  • RX and TX can accept 5V logic level without problems (so far).
  • 5V output of an Arduino Uno (externally sourced) through AMS1117 provides enough current for ESP8266 boot up.
  • Default: 115200 baud rate
  • Tera Term > Setup > Terminal > New-line transmission mode: CR+RF
  • Flash mode: GPIO 0 + RESET -> GND then RESET -> float and finally GPIO 0 -> float
ESP8266 CP2012 / Source
VCC VCC
GND GND (common to CP2012)
RX TXD
TX RXD
GPIO 0 VCC
CH_PD
RESET