Quick reference guide for the esp12-e GPIO pins
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.
Bellow you will find the pins that you can use directly and are not set to “HIGH” by default.
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 contains 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 which will work without any hardware or software modification.
You can consider any pin that you can easily connect an output, such as a LED, or an input, like a temperature sensor, as directly usable.
We have tested all the pins on the following image, and you can use them 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 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 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 Nodemcu
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 Manage
Please note that this guide is for the specific esp board and you will definitely have more or less usable pins in any other implementation of the nodemcu board. Any input is always welcome and if there is demand I can create guides for other implementations of this board.