Opens in a new tab

Wemos D1 mini Pinout

Wemos D1 mini (now sold under the LOLIN brand) is a small board with an ESP8266 and a CH340 converter. Its strength is the shield ecosystem – relays, displays, sensors and battery power plug straight onto the pins.

Clones cost a couple of euros and have the same pinout.

Specifications

  • ESP8266: Tensilica L106 80/160 MHz
  • 4 MB flash
  • Wi-Fi 4 (2.4 GHz)
  • 11 GPIO (D0–D8, RX, TX), analog input A0 (0–3.2 V via a divider)
  • micro USB (USB-C on newer versions), CH340 converter
  • blue LED on D4 (GPIO2), RESET button
  • 34.2 × 25.6 mm

LOLIN also makes the C3 mini and S2 mini boards with the same outer pin layout, so many shields fit them too. In the Arduino IDE select LOLIN(WEMOS) D1 R2 & mini.

Pinout and pin table

Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.

Pin names:
Wemos D1 mini (ESP8266) – pinoutWemos D1 mini (ESP8266) – pinoutchiptron.eu · CC BY 4.0ESP8266micro USBRST 9 5V ↔ 5 V from USB, or 5 V power input 10 GND 11 GPIO2 D4 blue LED 12 GPIO0 D3 13 GPIO4 D2 SDA 14 GPIO5 D1 SCL 15 GPIO3 RX 16 GPIO1 TX 8 3V3 → 3.3 V output from the regulator 7 GPIO15 D8 SS 6 GPIO13 D7 MOSI 5 GPIO12 D6 MISO 4 GPIO14 D5 SCK 3 GPIO16 D0 2 A0 1 RST ← Reset – connecting to GND restarts the chip GPIO Arduino UART I2C SPI ADC (analog) Power Ground (GND) Control / reset Strapping pin
Download:PNGSVG
Pin table – Wemos D1 mini (ESP8266)
PinNameArduinoDirectionUARTI2CSPIADCNote
1RSTinputReset – connecting to GND restarts the chip
2A0inputADC0Analog input 0–3.2 V (divider on the board)
3GPIO16D0input/outputWake from deep sleep (connect to RST); no interrupts or I2C (PWM works in Arduino)
4GPIO14D5input/outputSCK
5GPIO12D6input/outputMISO
6GPIO13D7input/outputMOSI
7GPIO15D8input/outputSSStrapping pin – must be logic 0 at boot (pull-down on the board)
83V3output3.3 V output from the regulator
95Vinput/output5 V from the USB connector. It can also power the board – ideally connect the supply through a diode so voltage does not flow back into USB.
10GND–
11GPIO2D4input/outputBlue LED (lights at logic 0). Strapping pin – must be logic 1 at boot (pull-up on the board)
12GPIO0D3input/outputStrapping pin – logic 0 at boot = download mode (pull-up on the board)
13GPIO4D2input/outputSDA
14GPIO5D1input/outputSCL
15GPIO3input/outputRXUART0 RX – connected to the USB-serial converter
16GPIO1input/outputTXUART0 TX – connected to the USB-serial converter

What to watch out for

  • Logic is 3.3 V – use a level shifter for 5 V signals.
  • Strapping pins: D3 (GPIO0) and D4 (GPIO2, LED) must be at logic 1 at boot and D8 (GPIO15) at logic 0.
  • A0 measures 0–3.2 V through a divider on the board.
  • D0 (GPIO16) supports neither interrupts nor I2C (PWM works in Arduino) – it is used for waking from deep sleep (connect it to RST).
  • The default I2C is on D1 (SCL) and D2 (SDA) – most shields expect this too.

More pinouts

See all pinouts on the Pinouts page.

Related Articles