MakerLab
ESP32Wemos LOLIN32

Wemos LOLIN32: Your Gateway to ESP32 Projects

A compact and affordable development board featuring the powerful ESP32 microcontroller, ideal for IoT and embedded projects.

Wemos LOLIN32

The Wemos LOLIN32 is a popular development board built around the Espressif ESP32 System-on-Chip (SoC). Released around 2017, it quickly became a favorite among makers and hobbyists due to its low cost, integrated Wi-Fi and Bluetooth capabilities, and a generous set of GPIO pins. This board is an excellent entry point into the ESP32 ecosystem, offering a balance of features and ease of use for a wide range of applications.

At its heart, the ESP32 is a versatile microcontroller that integrates a dual-core Tensilica Xtensa LX6 microprocessor, running at speeds up to 240 MHz. It boasts built-in 2.4 GHz Wi-Fi and Bluetooth (both classic and BLE) connectivity, making it perfect for Internet of Things (IoT) projects that require wireless communication. The ESP32 also features a rich set of peripherals, including ADCs, DACs, touch sensors, SPI, I2C, UART, and PWM controllers, all accessible through the LOLIN32's pin headers.

Compared to its predecessors like the ESP8266, the ESP32 offers significantly more processing power, memory, and a broader range of integrated features. The Wemos LOLIN32 specifically packages these capabilities onto a small, breadboard-friendly form factor, often featuring a micro-USB port for power and programming, and a convenient voltage regulator. This makes it an attractive choice for both beginners learning about microcontrollers and experienced engineers prototyping complex IoT devices.

This board is well-suited for makers who want to build connected projects, such as smart home devices, sensor networks, wireless data loggers, or even simple web servers. Its dual-core nature allows for handling complex tasks like managing Wi-Fi connections while simultaneously running application logic. The availability of libraries for popular platforms like Arduino IDE and MicroPython further lowers the barrier to entry for developing on the ESP32.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCEspressif ESP32-WROOM-32 module (contains ESP32-D0WDQ6 chip)
Architecture32-bit Tensilica Xtensa LX6 dual-core processor
Clock speedUp to 240 MHz
Flash / Storage4 MB (typically) on-board SPI flash memory
RAM / SRAM520 KB SRAM (internal to ESP32 chip)
Operating voltage3.3V
Digital I/O pinsApproximately 30 (depending on configuration and occupied peripherals)
Analog / ADCUp to 12-bit ADC channels (typically 6-8 usable on this board)
PWMMultiple PWM channels available
ConnectivityWi-Fi 802.11 b/g/n, Bluetooth v4.2 BR/EDR and BLE
USBMicro-USB connector (for power and programming via CH340 or similar USB-to-Serial chip)
Power input5V via Micro-USB, or VIN pin (typically 5V tolerant, check board revision)
DimensionsApproximately 51mm x 26mm (standard Wemos/D1 Mini form factor)

Pinout & pin functions

PinFunction
3V33.3V Power Output
GNDGround
ENEnable Pin (High to enable chip)
VP / GPIO34Analog Input (ADC1_CH6)
VN / GPIO35Analog Input (ADC1_CH7)
GPIO32Digital I/O, ADC1_CH4, Touch 4
GPIO33Digital I/O, ADC1_CH2, Touch 5
GPIO25Digital I/O, DAC1, ADC1_CH8
GPIO26Digital I/O, DAC2, ADC1_CH9
GPIO27Digital I/O, ADC1_CH10, Touch 7
GPIO14Digital I/O, HSPI SCK
GPIO12Digital I/O, HSPI MISO, ADC1_CH5
GPIO13Digital I/O, HSPI MOSI, ADC1_CH6
GPIO4Digital I/O, Touch 0
GPIO2Digital I/O, Touch 4
GPIO15Digital I/O, HSPI CS, ADC1_CH3, Touch 3
GPIO16Digital I/O, RX2
GPIO17Digital I/O, TX2
GPIO5Digital I/O, Touch 1
GPIO18Digital I/O, PWM0
GPIO19Digital I/O, PWM1, MISO
GPIO21Digital I/O, SDA (I2C)
GPIO22Digital I/O, SCL (I2C)
GPIO23Digital I/O, PWM2, MOSI
GPIO1Digital I/O, TX0 (UART0)
GPIO3Digital I/O, RX0 (UART0)
GPIO0Digital I/O, Boot Button Input, Touch 1
GPIO10Digital I/O, HSPI CS
GPIO9Digital I/O, HSPI MISO
GPIO6Digital I/O, SCK
GPIO7Digital I/O, IO7
GPIO8Digital I/O, IO8
GPIO11Digital I/O, IO11

Wiring & circuit basics

Powering the Wemos LOLIN32 requires attention to its operating voltage. The ESP32 chip itself runs on 3.3V, and while the board typically includes a 3.3V voltage regulator and a micro-USB port that supplies 5V, you should avoid applying voltages higher than 5V to the VIN pin unless you are certain your specific board revision can handle it. Always connect grounds together when interfacing with other components or microcontrollers. Ensure your power supply can provide sufficient current, especially when using Wi-Fi or Bluetooth, which can draw significant current spikes.

All digital I/O pins on the Wemos LOLIN32 operate at 3.3V logic levels. This is crucial when interfacing with external components. Connecting a 5V device directly to a GPIO pin can damage the ESP32. Conversely, a 3.3V signal might not be reliably detected by a 5V-tolerant input. For connecting 5V devices, use a logic level converter. For example, to blink an LED, connect a resistor (e.g., 220-330 ohm) in series with the LED, and then connect the other end of the resistor to a GPIO pin and the LED's cathode to GND.

When connecting I2C devices, such as sensors or displays, use the dedicated SDA (GPIO21) and SCL (GPIO22) pins. These pins are multiplexed and can be used for other purposes if I2C is not needed. Remember that I2C typically requires pull-up resistors on both SDA and SCL lines; the ESP32 has internal pull-ups, but external ones (e.g., 4.7k ohm to 3.3V) are often recommended for reliable communication, especially with longer wires or multiple devices on the bus.

Programming & getting started

The Wemos LOLIN32 is highly versatile in its programming options. The most common method for beginners is using the Arduino IDE. You'll need to install the ESP32 board support package via the Board Manager. Once installed, you can select the 'LOLIN D32' or a generic ESP32 Dev Module from the board list, choose the correct COM port, and upload your sketches. MicroPython is another excellent choice, offering a Python-based development environment that is great for rapid prototyping. You can flash a MicroPython firmware onto the ESP32 and then interact with it via a serial REPL.

For more advanced users, the Espressif IoT Development Framework (ESP-IDF) provides direct access to the ESP32's hardware and software capabilities, allowing for highly optimized applications. PlatformIO, an integrated development environment for embedded systems that works with VS Code, also offers robust support for the ESP32 and the LOLIN32 board, simplifying library management and build processes. To upload your first program (e.g., a simple 'Blink' sketch), connect the board via USB, select the correct board and port in your chosen IDE, and press the upload button.

Project ideas

Wi-Fi Connected Weather StationMonitor temperature, humidity, and pressure using sensors connected to GPIO pins and display readings on a web server hosted by the ESP32. Learns about sensor interfacing, web servers, and Wi-Fi connectivity.
Bluetooth Low Energy (BLE) Heart Rate MonitorUse a compatible heart rate sensor and broadcast its readings via BLE. This project teaches BLE advertising, sensor data acquisition, and low-power communication.
Smart Home Light ControllerControl an LED strip or relay connected to GPIO pins via a web interface or a mobile app (using MQTT). Explores web server basics, GPIO control, and potentially MQTT for IoT communication.
ESP32-Based Game ControllerConnect buttons and joysticks to GPIO pins and transmit input data over Wi-Fi or Bluetooth to a computer or another device. Develops skills in digital input, wireless communication protocols, and human-computer interaction.
Data Logger with SD CardRead sensor data periodically and save it to an SD card using SPI communication. This project covers file system operations, SPI protocol, and long-term data storage.
Voice-Controlled AssistantIntegrate a microphone and use cloud services or local processing to control GPIO pins with voice commands. This is an advanced project involving audio processing, networking, and potentially AI/ML concepts.

Buying tips & gotchas

When purchasing a Wemos LOLIN32, be aware that many clones and variations exist, some with minor differences in pinouts or component choices. Always check the specific pin labels on your board. Ensure your USB-to-Serial chip (often a CH340 or CP210x) has drivers installed on your computer for programming. Avoid powering the board directly from a USB port that cannot supply at least 1A, especially if you plan to use Wi-Fi. Accessories like breadboards, jumper wires, and basic electronic components (resistors, LEDs) are essential for prototyping.