Wemos UNO D1 R32 Compatible ESP-WROOM-32S WiFi + Bluetooth with USB-B Port

SKU: FA1011-2
Microcontroller

ESP32-WROOM-32S (ESP32 Dual Core)

Processor

Xtensa 32-bit LX6 @ up to 240 MHz

Flash Memory

4 MB

SRAM

520 KB

Operating Voltage

3.3 V (I/O) / 5 V (Input)

Power Input (DC Jack/Vin)

5 V – 12 V (Limit 6–20 V)

Digital I/O Pins

14

Analog Input Pins

6 (12-bit ADC)

DAC Channels

2 (8-bit)

Wi-Fi

802.11 b/g/n (2.4 GHz)

Bluetooth

v4.2 BR/EDR & BLE

USB Connector

USB-B

Dimensions

Approx. 68 mm × 53 mm

Product Overview

The Wemos UNO D1 R32 is a powerful development board that combines the immense capabilities of the ESP-WROOM-32S module with the familiar form factor of an Arduino UNO. This board serves as a direct drop-in replacement for your existing Arduino projects while unlocking the advanced features of the ESP32 platform—namely built-in Wi-Fi 802.11 b/g/n and Bluetooth 4.2 (BLE and Classic) .

What sets this board apart is its perfect compatibility with most Arduino UNO shields. You can stack your existing sensor modules, motor drivers, and display shields directly onto this board without any modifications, leveraging the ESP32’s superior processing power and wireless capabilities . The board features a traditional USB-B port, commonly found on Arduino UNO boards, providing a stable connection for programming and power delivery .

At its core lies the ESP-WROOM-32S module, based on the ESP32 dual-core Xtensa LX6 processor running at up to 240 MHz, with 4 MB of flash memory and 520 KB of SRAM . This provides ample resources for complex IoT applications, web servers, voice recognition, and advanced sensor fusion projects that would overwhelm a standard Arduino.

Whether you are upgrading an existing automation system, building a Wi-Fi enabled data logger, or prototyping a Bluetooth-controlled robot, the Wemos D1 R32 offers a seamless bridge between the simplicity of the Arduino ecosystem and the power of the ESP32.

Key Features

  • Arduino UNO Form Factor: Pin-compatible with standard Arduino UNO shields, allowing you to reuse your existing hardware ecosystem .

  • ESP-WROOM-32S Module: Built on the ESP32 dual-core Xtensa 32-bit LX6 processor running at up to 240 MHz .

  • Integrated Wireless: Supports 2.4 GHz Wi-Fi (802.11 b/g/n) and Bluetooth 4.2 (BR/EDR and BLE) for versatile connectivity .

  • Sufficient Memory: Features 4 MB flash and 520 KB SRAM for complex applications and web interfaces .

  • USB-B Connector: Traditional USB-B port for programming and power, ensuring a secure connection .

  • Comprehensive I/O: Provides 14 digital I/O pins, 6 analog input channels (ADC), 2 DAC channels, and standard communication interfaces (UART, SPI, I2C) .

  • Wide Power Input: Accepts 5V–12V DC via the DC jack or Vin pin, making it suitable for various power sources .

  • Multi-Platform Support: Compatible with Arduino IDEESP-IDFPlatformIO, and MicroPython for flexible development .

Technical Specifications

Parameter Operating Value
Microcontroller ESP32-WROOM-32S (ESP32 Dual Core)
Processor Xtensa 32-bit LX6 @ up to 240 MHz
Flash Memory 4 MB
SRAM 520 KB
Operating Voltage 3.3 V (I/O) / 5 V (Input)
Power Input (DC Jack/Vin) 5 V – 12 V (Limit 6–20 V)
Digital I/O Pins 14
Analog Input Pins 6 (12-bit ADC)
DAC Channels 2 (8-bit)
Wi-Fi 802.11 b/g/n (2.4 GHz)
Bluetooth v4.2 BR/EDR & BLE
USB Connector USB-B
Dimensions Approx. 68 mm × 53 mm

Pinout & Interface Guide

The Wemos D1 R32 mirrors the Arduino UNO pin layout with specific ESP32 mapping. Key pins include:

Arduino Pin ESP32 GPIO Function Notes
D0 GPIO3 UART RX (also connected to USB)
D1 GPIO1 UART TX (also connected to USB)
D2 GPIO26 DAC Output
D3 GPIO25 DAC Output / PWM
D4 GPIO10
D5 GPIO16 PWM
D6 GPIO27 PWM
D7 GPIO9
D8 GPIO5 SPI CS / PWM
D9 GPIO13 PWM
D10 GPIO5 SPI CS
D11 GPIO23 SPI MOSI / PWM
D12 GPIO19 SPI MISO
D13 GPIO18 SPI SCK / LED
A0 GPIO2 Also connected to onboard LED
A1 GPIO4
A2 GPIO35
A3 GPIO34
A4 GPIO36
A5 GPIO39
SDA GPIO21 I2C Data
SCL GPIO22 I2C Clock

Usage Guide

Development Environment Setup

Arduino IDE

  1. Install ESP32 Board Package: Open Arduino IDE → File → Preferences. Add the following URL to “Additional Boards Manager URLs”: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json .

  2. Select Board: Go to Tools → Board → Boards Manager, search for “ESP32”, and install the package. Then select “WEMOS D1 R32” or “DOIT ESP32 DEVKIT V1” from the boards list .

  3. Select Port: Choose the correct COM port assigned to your board (drivers typically install automatically).

PlatformIO (VS Code)

  • Create a new project and select “Wemos D1 R32” as the board. Choose either Arduino or ESP-IDF as the framework .

Basic Example: Blink the Onboard LED

The onboard red LED is connected to GPIO2 (Arduino A0) .

cpp
// Wemos D1 R32 Blink Example
// Onboard LED is on GPIO2 (Arduino Pin A0)

#define LED_PIN 2   // or LED_BUILTIN

void setup() {
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(115200);
  Serial.println("Wemos D1 R32 Ready!");
}

void loop() {
  digitalWrite(LED_PIN, HIGH);  // Turn LED ON
  delay(1000);
  digitalWrite(LED_PIN, LOW);   // Turn LED OFF
  delay(1000);
}

Wi-Fi Access Point Example

cpp
#include <WiFi.h>

const char* ssid = "Wemos_D1_R32_AP";
const char* password = "12345678";

void setup() {
  Serial.begin(115200);
  WiFi.softAP(ssid, password);
  Serial.print("Access Point Started. IP: ");
  Serial.println(WiFi.softAPIP());
}

void loop() {
  // Your code here
}

Uploading Code & Boot Mode

If you encounter issues uploading, you may need to manually enter boot mode :

  1. Press and hold the “BOOT” (or “0”) button.

  2. Press and release the “EN” (RST) button.

  3. Release the “BOOT” button.

  4. Start the upload in the Arduino IDE. The board should now be ready to receive code.

Bluetooth Support Note

When using the Arduino IDE, the default “Wemos D1 R32” board may not fully support Bluetooth features. To enable Bluetooth, select a more general board such as “DOIT ESP32 DEVKIT V1” instead .

Q: Is the Wemos D1 R32 fully compatible with Arduino UNO shields?

Mostly yes. The board is designed with the Arduino UNO form factor and pin layout, allowing it to accept most standard Arduino shields. However, because the ESP32 operates at 3.3V logic (versus 5V on the UNO), some 5V shields may not function correctly without level shifting. Shields that rely heavily on analog inputs may also have limitations, as there is only one dedicated analog pin (A0) in the UNO footprint

Q: What is the difference between the ESP-WROOM-32 and ESP-WROOM-32S?

The ESP-WROOM-32S is a newer version of the standard ESP-WROOM-32 module. The “S” variant typically features an improved PCB design and may use a different flash memory chip, but it maintains pin-to-pin compatibility and the same core ESP32 processor capabilities

Q: Can I use this board for both Wi-Fi and Bluetooth simultaneously?

Yes. The ESP32 chip supports concurrent Wi-Fi and Bluetooth operation. You can run both protocols simultaneously, though this will utilize more of the chip’s processing resources and may require careful code management

Q: What is the maximum range of the Wi-Fi and Bluetooth?

Wi-Fi range in open space can reach up to 100-150 meters. Bluetooth range is typically 30-50 meters depending on the environment and obstacles

Q: How do I power the Wemos D1 R32?

You have three options:

  • USB-B Port: 5V via the USB cable.

  • DC Jack: 5V to 12V DC input (recommended) .

  • Vin Pin: 5V to 12V DC input on the Vin pin.

Note: The 3.3V regulator on board is rated for approximately 500mA-600mA. If you are powering many peripherals or shields, ensure your total current draw stays within this limit

Q: Are the I/O pins 5V tolerant?

No. All I/O pins operate at 3.3V logic. Applying 5V directly to any GPIO pin can permanently damage the ESP32. When using 5V shields or sensors, a logic level converter is required for safety

Q: Can I power shields from the 5V pin?

The 5V pin is connected directly to the USB input (or the Vin regulator). You can use it to power shields, but be mindful of the total current drawn through the board. Exceeding the current limit of the USB port or the onboard regulator can cause the board to reset or damage the regulator

Q: I cannot upload code to the board. What should I do?

Upload issues are common. Try the following :

  1. Manually enter boot mode: Hold the BOOT button, press and release EN, then release BOOT.

  2. Select the correct board: Ensure you have selected the “WEMOS D1 R32” or “DOIT ESP32 DEVKIT V1” in the Tools menu.

  3. Check the port: Ensure the correct COM port is selected in the IDE.

  4. Try a different cable: Some USB cables are charge-only and do not support data transfer.

Q: Why doesn't Bluetooth work when I select the Wemos D1 R32 board?

In the Arduino IDE, the default “Wemos D1 R32” board configuration may not include Bluetooth libraries. To fix this, select a more general board such as “DOIT ESP32 DEVKIT V1” in the Tools → Board menu. This configuration typically supports both Wi-Fi and Bluetooth features

Q: Can I use MicroPython with this board?

Yes. The ESP-WROOM-32S is fully supported by MicroPython. Download the appropriate firmware for the “ESP32 GENERIC” board and flash it using esptool