ESP8266/Wemos D1 Mini pin states and stability on boot/reset

22 Nov 2021 | all notes

The only two pins on the ESP8266 (and derivates such as ESP-12F etc) which are always high impedance and can be safely used with relays (or other externals that don’t get spooked by high signals during boot/reset) are GPIO5 and GPIO4 (D1 and D2 on the Wemos D1 Mini). Sources:

Summary table (pin order is according to Wemos D1 mini pin layout):

D1 Mini pin label D1 R1 pin label ESP8266 GPIO Input Output Notes
RST          
A0 A0 ADC0 analog ❌ 10 bit analog input
D0 D2 GPIO16 no interrupt no PWM or I2C driven HIGH during boot, don’t short to GND.
D5 D13/SCK/D5 (board led?) GPIO14 ✅ ⚠️ pulled HIGH during boot
D6 D12/MISO/D6 GPIO12 ✅ ⚠️ pulled HIGH during boot
D7 D1/MOSI/D7 GPIO13 ✅ ⚠️ pulled HIGH during boot
D8 D10/SS GPIO15 pulled to GND ⚠️ pulled HIGH + driven LOW during boot, boot fails if pulled HIGH
TX TX->D1 GPIO1 TX pin ⚠️ pulled HIGH + driven LOW during boot, boot fails if pulled LOW
RX RX<-D0 GPIO3 ⚠️ RX pin pulled HIGH during boot
D1 D15/SCL/D3 GPIO5 ✅ ✅ always high impedance
D2 D14/SDA/D4 GPIO4 ✅ ✅ always high impedance
D3 D8 GPIO0 pulled up ✅ pulled HIGH + driven LOW during boot, boot fails if pulled LOW (connected to Flash button)
D4 TX1/D9 GPIO2 (BUILTIN_LED) pulled up ✅ pulled HIGH + driven LOW during boot, boot fails if pulled LOW (on-board LED?)

Comments