SparkFun Thing Plus ESP32: Your Gateway to Powerful IoT Projects
A feature-rich ESP32 development board with LiPo charging and Qwiic connectivity for rapid prototyping.
The SparkFun Thing Plus ESP32 is a versatile development board built around the Espressif ESP32-WROOM-32 module, a popular System-on-Chip (SoC) that integrates Wi-Fi and Bluetooth capabilities. Released by SparkFun around 2018, this board is designed to be a comprehensive platform for makers, students, and embedded engineers looking to create connected projects. It inherits the power and flexibility of the ESP32 while adding convenient features like a LiPo battery charger and SparkFun's Qwiic connector system for easy sensor integration.
At the heart of the Thing Plus ESP32 is the ESP32-WROOM-32 module, which features a dual-core Tensilica LX6 microprocessor. This powerful chip offers a rich set of peripherals, including Wi-Fi (802.11 b/g/n) and Bluetooth (Classic and BLE), making it ideal for Internet of Things (IoT) applications. The ESP32's architecture allows for simultaneous execution of tasks, enabling complex operations like handling network communications while controlling hardware. The board provides access to most of the ESP32's GPIO pins, allowing for extensive customization and interfacing with external components.
This board represents a significant step up from simpler microcontrollers, offering Wi-Fi and Bluetooth connectivity out-of-the-box. It's particularly well-suited for projects that require internet access, such as data logging to cloud services, remote control applications, or building custom IoT devices. The inclusion of a dedicated LiPo battery connector and charging circuit, along with a USB-C port for power and programming, makes it incredibly convenient for portable or battery-powered projects. The Qwiic connector further simplifies the process of adding I2C sensors and devices without the need for soldering.
The SparkFun Thing Plus ESP32 is an excellent choice for anyone interested in exploring the capabilities of the ESP32 for IoT development. Its combination of processing power, wireless connectivity, and user-friendly features like the LiPo charger and Qwiic system makes it a compelling option for both beginners taking their first steps into connected hardware and experienced engineers looking for a robust development platform.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Espressif ESP32-WROOM-32 |
| Architecture | Dual-core Tensilica LX6 microprocessor |
| Clock speed | Up to 240MHz |
| Flash / Storage | 4MB (on ESP32-WROOM-32 module) |
| RAM / SRAM | 520KB SRAM |
| Operating voltage | 3.3V |
| Digital I/O pins | 21 (available on headers) |
| Analog / ADC | Up to 12-bit ADC channels (exposed on select pins) |
| PWM | Up to 16 channels |
| Connectivity | Wi-Fi 802.11 b/g/n, Bluetooth Classic & BLE |
| USB | USB-C (for power, programming, and serial communication) |
| Power input | USB-C (5V), LiPo Battery (3.7V nominal), 3.3V pin |
| Dimensions | 2.54" x 1.0" (63.5mm x 25.4mm) |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3.3V | Power output (regulated 3.3V) |
| GND | Ground |
| EN | Enable pin (active high) |
| IO23 | GPIO, ADC2_CH8 |
| IO22 | GPIO, ADC2_CH7, I2C1 SCL |
| IO21 | GPIO, ADC2_CH6, I2C1 SDA |
| IO19 | GPIO, ADC2_CH5, I2S0_MCLK |
| IO18 | GPIO, ADC2_CH4, I2S0_RX_BCLK |
| IO5 | GPIO, ADC2_CH0 |
| IO4 | GPIO, ADC2_CH4 |
| IO2 | GPIO, ADC2_CH3 |
| IO15 | GPIO, ADC2_CH2, I2C1 SCL |
| IO13 | GPIO, ADC1_CH4, SPI2 MOSI |
| IO12 | GPIO, ADC1_CH5, SPI2 MISO |
| IO14 | GPIO, ADC1_CH6, SPI2 SCK |
| IO27 | GPIO, ADC1_CH7 |
| IO26 | GPIO, ADC1_CH10 |
| IO25 | GPIO, ADC1_CH8 |
| IO33 | GPIO, ADC1_CH4 |
| IO32 | GPIO, ADC1_CH9 |
| IO35 | GPIO, ADC1_CH4 |
| IO34 | GPIO, ADC1_CH6 |
| IO36 | GPIO, ADC1_CH0 |
| IO39 | GPIO, ADC1_CH3 |
| RX0 | UART0 RX (Programming/Serial) |
| TX0 | UART0 TX (Programming/Serial) |
| SCL | I2C (SDA/SCL) for Qwiic connector |
| SDA | I2C (SDA/SCL) for Qwiic connector |
| VBAT | LiPo Battery input (3.7V nominal) |
| USB | 5V input from USB-C |
| CHG | LiPo Charger Status LED |
Wiring & circuit basics
Powering the SparkFun Thing Plus ESP32 is straightforward thanks to its multiple input options. The primary method is via the USB-C connector, which supplies 5V and also handles programming. You can also connect a 3.7V LiPo battery directly to the VBAT header; the board includes a battery charger IC, so plugging in a battery while the board is powered via USB will charge it. A regulated 3.3V is available on the 3.3V pin for powering external components, but ensure your total current draw does not exceed the regulator's capacity (typically around 500mA). Avoid powering the board through the 3.3V pin if using USB or battery power simultaneously, as this can bypass the onboard regulators.
It's crucial to remember that the SparkFun Thing Plus ESP32 operates at a logic level of 3.3V. Connecting 5V devices directly to its GPIO pins can cause permanent damage. If you need to interface with 5V sensors or components, always use a logic level shifter. For example, to connect a 5V Arduino to the ESP32's I2C bus, you would connect the ESP32's SDA and SCL pins (IO21 and IO22, or the Qwiic pins) to the level shifter's 3.3V side, and the Arduino's SDA and SCL pins to the level shifter's 5V side, with appropriate connections to ground.
A simple example circuit is lighting an LED. Connect an LED's anode (longer leg) to a digital GPIO pin, such as IO13. Connect the LED's cathode (shorter leg) to one end of a current-limiting resistor (e.g., 220-330 Ohms for a typical LED). Connect the other end of the resistor to a GND pin on the Thing Plus. When you set IO13 HIGH in your code, current flows through the resistor and LED to ground, turning it on. Conversely, setting IO13 LOW turns the LED off. This demonstrates basic digital output control.
Programming & getting started
The SparkFun Thing Plus ESP32 is well-supported by various development environments. The most common and beginner-friendly is the Arduino IDE. After installing the ESP32 board support package, you can select the 'SparkFun ESP32 Thing Plus' from the board manager. For more advanced users, Espressif's ESP-IDF (IoT Development Framework) offers deep control over the hardware and RTOS features. MicroPython and CircuitPython are also excellent choices for rapid prototyping, offering a Python-based programming experience. To upload your first sketch (e.g., a simple Blink example), connect the board via USB-C, select the correct COM port in the Arduino IDE, choose the 'SparkFun ESP32 Thing Plus' board, and click the Upload button. Ensure the bootloader is active by holding down the BOOT button while pressing and releasing the RESET button if the upload fails initially.
For projects requiring more complex firmware or real-time operating system capabilities, the ESP-IDF is the official development framework from Espressif. It's typically used with C/C++ and provides a comprehensive set of libraries and tools. PlatformIO, an open-source ecosystem for IoT development, also offers excellent support for the ESP32 and integrates well with VS Code, providing a robust IDE experience for managing libraries, building, and debugging projects across different platforms.