
Quick reference guide for the esp12-e GPIO pins.
Bellow you will find the pins that can be used directly and are not set to “HIGH” by default.
Probably you will be able to use more of the pins i’m going to describe here with some tinkering, but this is not the subject of this article.
The document below contains the specs and basic info for ESP12-E WiFi module.
esp8266-esp12e-specs – by kloppenborg
ESP12-E Pinout Basic Diagram
The following picture contain details about all the esp12-e GPIO pins and their purpose and was taken from simba-os. It is a good reference point for all my projects.
ESP12-E Usable GPIO Pins
First let’s define the term “directly usable GPIO pin“.
Directly usable pin is any pin of esp12-e which will work without any hardware or software modification. Any pin on which an output (e.g. led) or an input (e.g. temperature sensor) can be connected without any special effort, can be considered as considered directly usable.
All the pins on the following image are tested and can be used as described above.
If the pins that described as usable does not work, or if there are more directly usable pins that I missed, please let me know.
ESP12-E Pins Definition on “Arduino core for ESP8266 WiFi chip”
If you are going to use the Arduino core for your coding, you can define your pins like in the table bellow:
GPIO | Arduino Ref. Pins | Usable | Notes | Function |
---|---|---|---|---|
TDx 0 | D10 | ✔ | UART0_TXD; GPIO1 | |
RXd 0 | D9 | ✔ | UART0_RXD; GPIO3 | |
GPIO 5 | D1 | ✔ | ||
GPIO 4 | D2 | ✔ | ||
GPIO 0 | D3 | ✔ | Only as Input | |
GPIO 2 | D4 | ✔ | Only as Input | UART1_TXD |
GPIO 15 | D8 | Permanently High | MTDO; HSPICS; UART0_RTS | |
GPIO 13 | D7 | ✔ | HSPI_MOSI; UART0_CTS | |
GPIO 12 | D6 | ✔ | HSPI_MISO | |
GPIO 14 | D5 | Permanently High | HSPI_CLK | |
GPIO 16 | D0 | can be used to wake up the chipset from deep sleep mode. |
Arduino Reference Pins for ESP12
1 2 3 4 5 6 7 8 9 10 11 |
static const uint8_t D0 = 16; static const uint8_t D1 = 5; static const uint8_t D2 = 4; static const uint8_t D3 = 0; static const uint8_t D4 = 2; static const uint8_t D5 = 14; static const uint8_t D6 = 12; static const uint8_t D7 = 13; static const uint8_t D8 = 15; static const uint8_t D9 = 3; static const uint8_t D10 = 1; |
Arduino core for ESP8266 WiFi chip – GitHub
IDE Board Manager
http://arduino.esp8266.com/stable/package_esp8266com_index.json