Wemos LOLIN32: Your Gateway to ESP32 Projects
A compact and affordable development board featuring the powerful ESP32 microcontroller, ideal for IoT and embedded projects.
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 / SoC | Espressif ESP32-WROOM-32 module (contains ESP32-D0WDQ6 chip) |
| Architecture | 32-bit Tensilica Xtensa LX6 dual-core processor |
| Clock speed | Up to 240 MHz |
| Flash / Storage | 4 MB (typically) on-board SPI flash memory |
| RAM / SRAM | 520 KB SRAM (internal to ESP32 chip) |
| Operating voltage | 3.3V |
| Digital I/O pins | Approximately 30 (depending on configuration and occupied peripherals) |
| Analog / ADC | Up to 12-bit ADC channels (typically 6-8 usable on this board) |
| PWM | Multiple PWM channels available |
| Connectivity | Wi-Fi 802.11 b/g/n, Bluetooth v4.2 BR/EDR and BLE |
| USB | Micro-USB connector (for power and programming via CH340 or similar USB-to-Serial chip) |
| Power input | 5V via Micro-USB, or VIN pin (typically 5V tolerant, check board revision) |
| Dimensions | Approximately 51mm x 26mm (standard Wemos/D1 Mini form factor) |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | 3.3V Power Output |
| GND | Ground |
| EN | Enable Pin (High to enable chip) |
| VP / GPIO34 | Analog Input (ADC1_CH6) |
| VN / GPIO35 | Analog Input (ADC1_CH7) |
| GPIO32 | Digital I/O, ADC1_CH4, Touch 4 |
| GPIO33 | Digital I/O, ADC1_CH2, Touch 5 |
| GPIO25 | Digital I/O, DAC1, ADC1_CH8 |
| GPIO26 | Digital I/O, DAC2, ADC1_CH9 |
| GPIO27 | Digital I/O, ADC1_CH10, Touch 7 |
| GPIO14 | Digital I/O, HSPI SCK |
| GPIO12 | Digital I/O, HSPI MISO, ADC1_CH5 |
| GPIO13 | Digital I/O, HSPI MOSI, ADC1_CH6 |
| GPIO4 | Digital I/O, Touch 0 |
| GPIO2 | Digital I/O, Touch 4 |
| GPIO15 | Digital I/O, HSPI CS, ADC1_CH3, Touch 3 |
| GPIO16 | Digital I/O, RX2 |
| GPIO17 | Digital I/O, TX2 |
| GPIO5 | Digital I/O, Touch 1 |
| GPIO18 | Digital I/O, PWM0 |
| GPIO19 | Digital I/O, PWM1, MISO |
| GPIO21 | Digital I/O, SDA (I2C) |
| GPIO22 | Digital I/O, SCL (I2C) |
| GPIO23 | Digital I/O, PWM2, MOSI |
| GPIO1 | Digital I/O, TX0 (UART0) |
| GPIO3 | Digital I/O, RX0 (UART0) |
| GPIO0 | Digital I/O, Boot Button Input, Touch 1 |
| GPIO10 | Digital I/O, HSPI CS |
| GPIO9 | Digital I/O, HSPI MISO |
| GPIO6 | Digital I/O, SCK |
| GPIO7 | Digital I/O, IO7 |
| GPIO8 | Digital I/O, IO8 |
| GPIO11 | Digital 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.