MakerLab
ESP32SparkFun Thing Plus ESP32

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.

SparkFun Thing Plus ESP32

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 / SoCEspressif ESP32-WROOM-32
ArchitectureDual-core Tensilica LX6 microprocessor
Clock speedUp to 240MHz
Flash / Storage4MB (on ESP32-WROOM-32 module)
RAM / SRAM520KB SRAM
Operating voltage3.3V
Digital I/O pins21 (available on headers)
Analog / ADCUp to 12-bit ADC channels (exposed on select pins)
PWMUp to 16 channels
ConnectivityWi-Fi 802.11 b/g/n, Bluetooth Classic & BLE
USBUSB-C (for power, programming, and serial communication)
Power inputUSB-C (5V), LiPo Battery (3.7V nominal), 3.3V pin
Dimensions2.54" x 1.0" (63.5mm x 25.4mm)

Pinout & pin functions

PinFunction
3.3VPower output (regulated 3.3V)
GNDGround
ENEnable pin (active high)
IO23GPIO, ADC2_CH8
IO22GPIO, ADC2_CH7, I2C1 SCL
IO21GPIO, ADC2_CH6, I2C1 SDA
IO19GPIO, ADC2_CH5, I2S0_MCLK
IO18GPIO, ADC2_CH4, I2S0_RX_BCLK
IO5GPIO, ADC2_CH0
IO4GPIO, ADC2_CH4
IO2GPIO, ADC2_CH3
IO15GPIO, ADC2_CH2, I2C1 SCL
IO13GPIO, ADC1_CH4, SPI2 MOSI
IO12GPIO, ADC1_CH5, SPI2 MISO
IO14GPIO, ADC1_CH6, SPI2 SCK
IO27GPIO, ADC1_CH7
IO26GPIO, ADC1_CH10
IO25GPIO, ADC1_CH8
IO33GPIO, ADC1_CH4
IO32GPIO, ADC1_CH9
IO35GPIO, ADC1_CH4
IO34GPIO, ADC1_CH6
IO36GPIO, ADC1_CH0
IO39GPIO, ADC1_CH3
RX0UART0 RX (Programming/Serial)
TX0UART0 TX (Programming/Serial)
SCLI2C (SDA/SCL) for Qwiic connector
SDAI2C (SDA/SCL) for Qwiic connector
VBATLiPo Battery input (3.7V nominal)
USB5V input from USB-C
CHGLiPo 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.

Project ideas

Wi-Fi Connected Weather StationBuild a weather station that reads data from sensors (temperature, humidity, pressure) connected via I2C or analog pins and sends the readings to a cloud service or displays them on a web server hosted by the ESP32. This project utilizes the ESP32's Wi-Fi, I2C/ADC peripherals, and web server capabilities.
Bluetooth Low Energy (BLE) Sensor NodeCreate a battery-powered sensor node that transmits environmental data using BLE. The ESP32's low-power capabilities and BLE support are ideal for this, allowing for long battery life and easy data access from a smartphone. This project focuses on BLE communication and power management.
Smart Home Automation HubDevelop a central hub that controls various smart devices (lights, switches) using Wi-Fi or MQTT. The ESP32 can act as a bridge between different protocols or directly control relays and sensors. This project explores networking protocols like MQTT and device control.
LiPo Powered Portable Bluetooth SpeakerCombine the ESP32 with an audio amplifier and speaker to create a portable Bluetooth speaker. Stream audio via Bluetooth and power the entire system from the onboard LiPo battery charger. This project involves audio output and battery management.
Qwiic Sensor Data LoggerUtilize the Qwiic connector to easily add multiple I2C sensors (e.g., accelerometer, GPS, environmental sensors) and log their data to an SD card or send it over Wi-Fi. This project highlights the ease of use of the Qwiic system and data storage/transmission.
ESP32-based Web Server with Touch ControlsHost a simple web page on the ESP32 that allows users to control GPIO pins (e.g., turn LEDs on/off) or read sensor values directly from a web browser. Use capacitive touch pins for interactive controls. This project combines web server development with direct hardware interaction.

Buying tips & gotchas

When purchasing the SparkFun Thing Plus ESP32, ensure you are buying the genuine SparkFun product to get the full benefit of their design and support; beware of unbranded clones that may lack features or have inconsistent quality. For power, always use a quality USB-C cable and a reliable 5V power source. If using a LiPo battery, make sure it's from a reputable source and handle it with care, as LiPo batteries can be hazardous if damaged or mishandled. Consider purchasing a small breadboard, jumper wires, and a selection of basic electronic components like LEDs, resistors, and buttons to get started with prototyping. SparkFun also offers a variety of Qwiic sensors that are plug-and-play with this board, greatly simplifying sensor integration.