0% found this document useful (0 votes)
4 views

ESP8266 Pinout Reference_ Which GPIO Pins Should You Use

The document provides a detailed pinout reference for the ESP8266 12-E chip, including the GPIO pin assignments and their functionalities. It highlights which pins are safe to use, which require caution due to potential boot issues, and which are not recommended for input or output. Additionally, it covers the capabilities of the ESP8266, such as analog input, PWM, and I2C implementation through software.

Uploaded by

shreya.navale99
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

ESP8266 Pinout Reference_ Which GPIO Pins Should You Use

The document provides a detailed pinout reference for the ESP8266 12-E chip, including the GPIO pin assignments and their functionalities. It highlights which pins are safe to use, which require caution due to potential boot issues, and which are not recommended for input or output. Additionally, it covers the capabilities of the ESP8266, such as analog input, PWM, and I2C implementation through software.

Uploaded by

shreya.navale99
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 11

ESP8266 Pinout Reference: Which GPIO pins

should you use?

 Menu 
ESP8266 12-E Chip Pinout
The following figure illustrates the ESP8266 12-E chip pinout. Use
this diagram if you’re using an ESP8266 bare chip in your projects.
• The ESP8266 12-E chip comes with 17 GPIO pins.

 Menu 
ESP8266 12-E NodeMCU Kit

The ESP8266 12-E NodeMCU kit pinout diagram is shown below.

 Menu 
ESP8266 Peripherals
The ESP8266 peripherals include:
17 GPIOs
SPI
I2C (implemented on software)
I2S interfaces with DMA
UART
10-bit ADC

 Menu 
Best Pins to Use – ESP8266
On important thing to notice about ESP8266 is that the GPIO number doesn’t match the label on the
board silkscreen. For example, D0 corresponds to GPIO16 and D1 corresponds to GPIO5.

The following table shows the correspondence between the labels on the silkscreen and the GPIO number
as well as what pins are the best to use in your projects, and which ones you need to be cautious.

The pins highlighted in green are OK to use. The ones highlighted in yellow are OK to use, but you need to
pay attention because they may have unexpected behavior mainly at boot. The pins highlighted in red are
not recommended to use as inputs or outputs.

Label GPIO Input Output Notes

no PWM or I2C HIGH at boot


D0 GPIO16 no interrupt
support used to wake up from deep sleep

D1 GPIO5 OK OK often used as SCL (I2C)

D2 GPIO4 OK OK often used as SDA (I2C)

connected to FLASH button, boot fails if pulled


D3 GPIO0 pulled up OK
LOW

D4 GPIO2 pulled up OK HIGH at boot


connected to on-board LED, boot fails if pulled
LOW

D5 GPIO14 OK OK SPI (SCLK)

D6 GPIO12 OK OK SPI (MISO)

D7 GPIO13 OK OK SPI (MOSI)

pulled to SPI (CS)


D8 GPIO15 OK
GND Boot fails if pulled HIGH

RX GPIO3 OK RX pin HIGH at boot

HIGH at boot
TX GPIO1 TX pin OK
debug output at boot, boot fails if pulled LOW

Analo
A0 ADC0 X
g
Input

 Menu 
The ESP8266 can be prevented from booting if some pins are pulled LOW or HIGH. The following list shows the
state of the following pins on BOOT:
GPIO16: pin is high atBOOT GPIO0: boot
failure if pulled LOW
GPIO2: pin is high on BOOT, boot failure if pulled LOW GPIO15:
boot failure if pulled HIGH
GPIO3: pin is high at BOOT
GPIO1: pin is high at BOOT, boot failure if pulled LOW GPIO10: pin
is high at BOOT
GPIO9: pin is high at BOOT

Pins HIGH at Boot


There are certain pins that output a 3.3V signal when the ESP8266 boots. This may be problematic if you have
relays or other peripherals connected to those GPIOs. The following GPIOs output a HIGH signal on boot:
GPIO1
GPIO3
GPIO9
Additionally, the other GPIOs, except GPIO5 and GPIO4, can output a low-voltage signal at boot,
which can be problematic if these are connected to transistors or relays.
Analog Input
The ESP8266 only supports analog reading in one GPIO. That GPIO
is called ADC0 and it is usually marked on the silkscreen as A0.

The maximum input voltage of the ADC0 pin is 0 to 1V if you’re


using the ESP8266 bare chip. If you’re using a development
board like the ESP8266 12-E NodeMCU kit, the voltage input
range is 0 to 3.3V because these boards contain an internal
voltage divider.
On-board LED
1. Most of the ESP8266 development boards have a built-in
LED. This LED is usually connected to GPIO2.
2. The LED works with inverted logic. Send a HIGH signal to turn
it off, and a LOW signal to turn it on.  Menu 
RST Pin
When the RST pin is pulled LOW, the ESP8266 resets. This is the same
as pressing the on-board RESET button.

GPIO0
When GPIO0 is pulled LOW, it sets the ESP8266 into bootloader
mode. This is the same as pressing the on- board FLASH/BOOT
button.
GPIO16
GPIO16 can be used to wake up the ESP8266 from deep sleep. To
wake up the ESP8266 from deep sleep, GPIO16 should be
connected to the RST pin.
I2C
The ESP8266 doens’t have hardware I2C pins, but it can be
implemented in software. So you can use any
GPIOs as I2C. Usually, the following GPIOs are used as I2C pins:

GPIO5: SCL
GPIO4: SDA

 Menu 
SPI
The pins used as SPI in the ESP8266 are:

GPIO12: MISO
GPIO13: MOSI
GPIO14: SCLK
GPIO15: CS

PWM Pins
ESP8266 allows software PWM in all I/O pins: GPIO0 to GPIO16. PWM
signals on ESP8266 have 10-bit resolution.

Interrupt Pins
The ESP8266 supports interrupts in any GPIO, except GPIO16.

 Menu 

You might also like