WEMOS D1 MINI ESP32 Development Board
Code name: D1_MINI32
WEMOS D1 MINI ESP32 development board is based on esp32 microcontroller and uses xtensa architecture. This board has a maximum CPU frequency of 240 MHz and a flash size of 4MB.
About WEMOS D1 MINI ESP32
The WEMOS D1 mini ESP32 squeezes Espressif’s dual-core ESP32-WROOM-32 module into the familiar 34 × 25 mm D1-mini footprint—so it drops straight into the huge ecosystem of D1-mini shields. Despite its tiny size it brings full-featured Wi-Fi 802.11 b/g/n and Bluetooth 4.2 (BLE + BR/EDR) connectivity to your IoT projects. 📡
A reliable CH340C USB-to-UART interface (auto-reset capable) lets you plug in via Micro-USB, flash code, and get serial logs with zero extra hardware. 🔌
Power is flexible: feed the board from 5 V
on USB/VIN or directly from the regulated 3V3
pin. An on-board LDO and protective circuitry keep the ESP32 happy. ⚡️
The board sports a tiny PCB antenna for solid RF performance, plus RST and BOOT (IO0) push-buttons to simplify firmware flashing and recovery. 🚀
All GPIOs support PWM, many provide ADC, DAC, I²C, SPI, UART, and ten pads double as capacitive-touch sensors. Stack it beneath sensor, relay, or display shields and you’ve got a compact yet powerful connected gadget in minutes. ⚙️
Where to Buy
Prices are subject to change. We earn from qualifying purchases as an Amazon Associate.
Technical Specifications
🛰️ Connectivity
🧠 Microcontroller
✨ Features
- Size: 39 mm x 31.5 mm
- Weight: 12G
- Built-in PCB antenna
- Operating voltage: 5V DC
- 34 digital IO pins
- 18 analog input pins
WEMOS D1 MINI ESP32 Pinout
The WEMOS D1 mini ESP32 pinout exposes 26 ESP32 GPIOs on the familiar D label headers—making it shield-compatible while retaining the ESP32’s rich peripherals.
Power rails include 5 V/VIN
(USB or external), a regulated 3V3
output, and multiple GND
pins. Current draw is typically 80 mA active but can drop to <10 µA in deep-sleep.
Default serial lines U0_TX (GPIO1)
and U0_RX (GPIO3)
connect to the CH340C for programming and logging. Need another UART? Use U2_TX (GPIO17)
and U2_RX (GPIO16)
.
I²C defaults to SDA (GPIO21)
and SCL (GPIO22)
—changeable in software—and breaks out on the D2/D1 shield pins.
SPI: the primary VSPI bus maps to MOSI GPIO23
, MISO GPIO19
, SCK GPIO18
, and CS GPIO5
. An alternate HSPI bus lives on GPIO12–15
when a second SPI device is needed.
Analog: Eight ADC1 channels on GPIO32–GPIO39
remain usable while Wi-Fi is active. Extra ADC2 channels (e.g., GPIO0, 2, 4, 12–15, 25–27
) share hardware with Wi-Fi. Dual 8-bit DAC outputs are on GPIO25
and GPIO26
.
Capacitive-touch sensing is available on GPIO0, 2, 4, 12–15, 27, 32, 33
, perfect for touch-buttons or gesture pads.
Every GPIO can generate PWM up to 40 kHz for LEDs, motors, or buzzers. Watch the boot-strap pins—GPIO0
, GPIO2
, and GPIO15
—which must be at the correct logic level (usually HIGH) at reset to boot normally.
With breadboard-friendly headers, shield compatibility, and the full might of an ESP32 module, the WEMOS D1 mini ESP32 pinout is your compact gateway to advanced connected projects.
✅ Safe Pins to Use
For general GPIO usage, these are the safest and most flexible choices:
Why Are These Pins Safe?
- Not involved in bootstrapping → No impact on device boot mode or system startup
- Not linked to flash memory or PSRAM → Won't interfere with storage or memory access
- Not dedicated to USB or JTAG → Free for general use without affecting debugging
- No special hardware connections → Freely assignable without internal conflicts
⚠️ Pins to Avoid or Use with Caution
Some pins are reserved for critical functions like bootstrapping, JTAG debugging, USB communication, and flash memory operations. Misusing these pins may lead to boot failures, programming issues, USB conflicts, or disruptions in flash storage.
Critical Pin Categories:
- 🛠️ Strapping Pins: Control boot behavior and flash voltage selection
- 🔗 JTAG Debugging Pins: Required for low-level debugging
- 🔌 USB Communication Pins: Used for USB Serial/JTAG communication
- ⚡ Flash Memory & SPI Pins: Connected to SPI flash memory and PSRAM
- 📡 UART Serial Communication Pins: Used for debugging and firmware uploads
PIN | Label | Reason | Function |
---|---|---|---|
IO14 | MTMS (GPIO14) | Used for JTAG debugging (TMS); driving it as GPIO may interfere with JTAG or produce spurious signals at boot. | 🪛 Other |
IO12 | MTDI (GPIO12) | Keep LOW during boot (internal PD); pulling HIGH at reset selects 1.8V flash mode, causing flash brownout if 3.3V flash is used. | 🛠️ Strapping |
IO13 | MTCK (GPIO13) | Used for JTAG debugging (TCK); avoid using as GPIO if JTAG is needed. | 🪛 Other |
IO15 | MTDO (GPIO15) | Keep HIGH during boot (internal PU); if LOW on reset, bootloader log is silenced and boot mode may change. | 🛠️ Strapping |
IO4 | GPIO4 | Sampled at reset for boot config; should not be driven at boot (affects boot mode timing). | 🛠️ Strapping |
WEMOS D1 MINI ESP32 Pin Mappings
This development board provides 34 digital IO pins, out of which can be used as external interrupt pins and 18 as analog input pins .
Pin | Function | ESP Pin | Input/Output | Description |
---|---|---|---|---|
1 | LED_BUILTIN | GPIO2 | output | On-board blue LED (active-LOW) |
2 | TXD | GPIO3 | output | UART0 Transmit (U0_TX) |
3 | RXD | GPIO1 | input | UART0 Receive (U0_RX) |
4 | SDA | GPIO21 | bidirectional | I²C Data Line |
5 | SCL | GPIO22 | bidirectional | I²C Clock Line |
6 | SS | GPIO5 | bidirectional | VSPI Chip-Select |
7 | MOSI | GPIO23 | bidirectional | VSPI Master-Out Slave-In |
8 | MISO | GPIO19 | bidirectional | VSPI Master-In Slave-Out |
9 | SCK | GPIO18 | bidirectional | VSPI Clock |
10 | A0 | GPIO36 | input | ADC1 Channel 0 |
11 | A3 | GPIO39 | input | ADC1 Channel 3 |
12 | A4 | GPIO32 | input | ADC1 Channel 4 / Touch 9 |
13 | A5 | GPIO33 | input | ADC1 Channel 5 / Touch 8 |
14 | DAC1 | GPIO25 | output | 8-bit Digital-to-Analog Converter 1 |
15 | DAC2 | GPIO26 | output | 8-bit Digital-to-Analog Converter 2 |
16 | IO27 | GPIO27 | bidirectional | Touch 7 / RTC-17 |
17 | IO14 | GPIO14 | bidirectional | HSPI SCK / Touch 6 |
18 | IO12 | GPIO12 | bidirectional | HSPI MISO / Touch 5 |
19 | IO13 | GPIO13 | bidirectional | HSPI MOSI / Touch 4 |
20 | IO15 | GPIO15 | bidirectional | Boot-strap Pin / Touch 3 |
21 | IO4 | GPIO4 | bidirectional | Touch 0 / ADC2 Channel 0 |
22 | RX2 | GPIO16 | bidirectional | UART2 Receive |
23 | TX2 | GPIO17 | bidirectional | UART2 Transmit |
24 | BOOT_IO0 | GPIO0 | bidirectional | Boot-mode Select / Touch 1 (keep HIGH to boot) |
25 | A6 | GPIO34 | input | ADC1 Channel 6 (input-only) |
26 | A7 | GPIO35 | input | ADC1 Channel 7 (input-only) |
WEMOS D1 MINI ESP32 Pins Mapping Arduino IDE
Below you can find the WEMOS D1 MINI ESP32 pinout. This development board provides 34 digital IO pins, out of which can be used as external interrupt pins and 18 as analog input pins .
Pin | Analog | Touch | PWM | Other |
---|---|---|---|---|
1 | TXD | |||
2 | LED_BUILTIN | |||
3 | RXD | |||
5 | ||||
16 | ||||
17 | ||||
18 | ||||
19 | ||||
21 | ||||
22 | ||||
23 | ||||
26 | ||||
35 | _VBAT |
Default Tools
Bootloader tool | esptool_py |
Uploader tool | esptool_py |
Network uploader tool | esp_ota |
Bootloader address | 0x1000 |
Flash mode | dio |
Boot mode | dio |
Maximum upload size | 1280 Kb (1310720 B) |
Maximum data size | 320 Kb (327680 B) |
The WEMOS D1 MINI ESP32 development board by default uses esptool_py uploader tool, esp_ota network uploader tool for Over-the-air (OTA) uploads and esptool_py bootloader tool. The bootloader starts at address "0x1000". Flash mode and boot mode for WEMOS D1 MINI ESP32 development board by default is dio and dio respectively.