ESP8266 / ESP8285

From The TinkerNet Wiki
Jump to navigation Jump to search
ESP8266-Pinout.jpeg
ESP8266-Basic-circuit.png


ESP8266-symbol.png

Notes

  • IO13 & IO16 don't seem usable for I2C... (at least under Tasmota...)

GPIO Pins

GPIO Input Output Boot State Notes 01 M3 07 12 D1 mini
ADC0 Analog Input (not useable) X X
0 pulled up (caution) connected to FLASH button, boot fails if pulled LOW
1 TX pin (caution) HIGH debug output at boot, boot fails if pulled LOW
2 pulled up (caution) HIGH? boot fails if pulled LOW on-board LED on-board LED on-board LED
3 (caution) RX pin HIGH
4 often used as SDA (I2C) X
5 often used as SCL (I2C) X X
6 connected to the flash chip X X X X
7 connected to the flash chip X X X X
8 connected to the flash chip X X X X
9 HIGH connected to the flash chip X X X X
10 HIGH connected to the flash chip X X X X
11 connected to the flash chip X X X X
12 SPI (MISO) X X
13 SPI (MOSI) X
14 SPI (SCLK) X
15 pulled to GND (caution) LOW SPI (CS)

Boot fails if pulled HIGH

X X
16 no interrupt no PWM or I2C support HIGH used to wake up from deep sleep X

Modules

Sonoff

Most (all?) of these are basically ESP8266 or ESP8285 controlled relays

Firmware

ESP8266 WiFi Connection manager

Original?

ESP8266 AT-Command firmware

Tasmota

Go Here!

Espruino

Home

ESPurna

Home

ESP-MQTT

Home

ESP-go

Home

NodeMcu

Home

ESP Easy

ESPHelper

Home

WLED

  • Home
    • Many bugs seem to appear with version changes...
      • 0.8.6 seems functional on my D1 Minis. (Tho it self-reports as 0.8.4)

Setting up Modules

Communicating with the ESP8266

Physical Connection

Choose your favourite USB-Serial UART. (I like the CJMCU-340)

NOTE: The ESP8266 is a 3.3V device. Don't use a 5V UART!

GPIO1 = TxD

GPIO3 = RxD

As always, Connect TxD to RX-in on your UART & RxD to TX-out on your UART.

Talking to it

NOTE: The ESP initially spits out debug information at 74880 baud. This is not a standard speed. (some discussion about this)

Choose your favourite terminal program & point it at the appropriate port.

In this example, I'll use miniterm (Because it's simple)

  • miniterm.py /dev/ttyUSB0 74880

Gives me this:

--- Miniterm on /dev/ttyUSB0  74880,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---

 ets Jan  8 2013,rst cause:1, boot mode:(3,6)

load 0x4010f000, len 3584, room 16 
tail 0
chksum 0xb0
csum 0xb0
v2843a5ac
~ld
␄␝␑␑␁"	��^�K␕���)␄5␑�␌7mX'\��o␇�␄5%�iHD��U␁'Rܥ@␁␒␕␝�␇!

See all that weirdness on the last 2 lines? That's data at a different speed. The device has booted & is trying to talk to us...

Starting over with:

  • miniterm.py /dev/ttyUSB0 74880

Gives me this:

--- Miniterm on /dev/ttyUSB0  115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
rd␀$��|␀�l�|␃␌␌␄�␄l�␄c|��␃�␒�;�cl␄c��g'�log���␌c␜8��lrl;lx�o�␘␃␌␄�␌d␌��␌␄␌#␄g�| 
␃�$�␄�#��no�␀$��l ␃�␛␓og␄l`␃␏␂'{���g␄␌c␃l`␃␇s��n␌␄c␂d`␂�c␌␄�␜␂�l{� ␃��o�␃
00:00:00 CFG: Loaded from flash at F9, Count 89
00:00:00 QPC: Count 2
00:00:00 Project tasmota ESP-M3-Everything-1 Version 8.5.0(tasmota)-2_7_4_1

Oh... Look. It's a Tasmota device.

Notice the weirdness between the banner & the first line with 00:00:00 at the start? That's the debug information coming in at 74880 that we saw in the previous example.

Interpreting the Debug Information

Information Links

ESP8266 Datasheet
Esp8266 Hardware Design Guidelines
Kolban’s book on the ESP8266

Usage Links

 

Programming

Hardware

Ethernet

& More


Projects

Random

Bits & Pieces