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 | Name | Arduino | Direction | UART | I2C | SPI | ADC | Note |
|---|---|---|---|---|---|---|---|---|
| 1 | RST | input | Reset – connecting to GND restarts the chip | |||||
| 2 | A0 | input | ADC0 | Analog input 0–3.2 V (divider on the board) | ||||
| 3 | GPIO16 | D0 | input/output | Wake from deep sleep (connect to RST); no interrupts or I2C (PWM works in Arduino) | ||||
| 4 | GPIO14 | D5 | input/output | SCK | ||||
| 5 | GPIO12 | D6 | input/output | MISO | ||||
| 6 | GPIO13 | D7 | input/output | MOSI | ||||
| 7 | GPIO15 | D8 | input/output | SS | Strapping pin – must be logic 0 at boot (pull-down on the board) | |||
| 8 | 3V3 | output | 3.3 V output from the regulator | |||||
| 9 | 5V | input/output | 5 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. | |||||
| 10 | GND | – | ||||||
| 11 | GPIO2 | D4 | input/output | Blue LED (lights at logic 0). Strapping pin – must be logic 1 at boot (pull-up on the board) | ||||
| 12 | GPIO0 | D3 | input/output | Strapping pin – logic 0 at boot = download mode (pull-up on the board) | ||||
| 13 | GPIO4 | D2 | input/output | SDA | ||||
| 14 | GPIO5 | D1 | input/output | SCL | ||||
| 15 | GPIO3 | input/output | RX | UART0 RX – connected to the USB-serial converter | ||||
| 16 | GPIO1 | input/output | TX | UART0 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.