ESP32-S2 Thing Plus Hookup Guide

Contributors: QCPete, santaimpersonator
Favorited Favorite 3

Hardware Overview

Board Dimensions

The board dimensions are illustrated in the drawing below. The listed measurements are in inches and the two mounting holes are compatible with 4-40 standoff screws.

Board Dimensions
Board dimensions (PDF) for the ESP32-S2 Thing Plus, in inches. (Click to enlarge)

USB-C Connector

The USB connector is provided to power and program the board. For most users, it will be the primary programing interface for the ESP32-S2.

USB-C Connector
USB-C connector on the ESP32-S2 Thing Plus. (Click to enlarge)


The TC7USB40MU is used to switch the data lines for the USB-C connection, between the ESP32-S2 module's native USB pins or its UART pins, through a CP2102 Serial-to-UART bridge. There is a jumper on the back of the board to control the USB switch; by default, the data lines from the USB-C connector are tied to the CP2102 Serial-to-UART bridge.

USB Switch
Functional block diagram for the TC7USB40MU USB switch. (Click to enlarge)

CP2102 Serial-to-UART

The CP2102 allows the ESP32-S2 to communicate with a computer/host device through its USB-C connection. This allows the board to show up as a device on the serial (or COM) port of the computer. Users will need to install the latest drivers for the computer to recognize the board (see Software Overview section).


The ESP32-S2 Thing Plus only requires 3.3V to power the board. However, the simplest method to power the board is with the USB-C connector. There are additional power pins available on the board:

  • 3.3V - A regulated 3.3V voltage source.
    • Regulated from the USB 5V power and/or battery connection.
    • Used to power the ESP32-S2 module and Qwiic I2C bus.
  • USB - The voltage from the USB-C connector, usually 5V.
  • VBAT - The voltage from the JST battery connector; meant for single cell LiPo batteries.
  • GND - The common ground or the 0V reference for the voltage supplies.

Power connections
ESP32-S2 Thing Plus power connections. (Click to enlarge)

Charging Circuit

The charging circuit utilizes the MCP73831 linear charge management controller and is powered directly from the USB-C connector or USB. The controller is configured for a 500mA charge rate by default; there is a jumper on the back of the boards for users to lower the charge rate to 100mA. Battery charging is indicated when the yellow, CHG LED. If the charge controller is shutdown or charging is complete, the CHG LED will turn off. For more information, please refer to the MCP73831 datasheet.

ESP32-S2 Module

The ESP32-S2 WROOM module from Espressif is the brains of the ESP32-S2 Thing Plus. While the new ESP32-S2 module does include improved security features to addresses the security flaws in the original ESP32, it lacks the Bluetooth capabilities of the original module. For more details check out the datasheets for the ESP32-S2 chipset and the ESP32-S2 WROOM module.

  • Xtensa® Single-Core 32-bit LX7 Microprocessor (up to 240MHz)
    • RISC-V ULP Coprocessor
    • 128KB ROM and 320KB SRAM
    • 4MB of Embedded SPI Flash Storage
  • Cryptographic Hardware Accelerators
    • AES, ECB/CBC/OFB/CFB/CTR, GCM, SHA, RSA, and ECC (Digital Signature)
  • Physical Security Features
    • Transparent external flash and RAM encryption (AES-XTS)
    • Secure Boot feature ensures only signed firmware (with RSA-PSS signature) is booted
    • HMAC and Digital Signature modules use software inaccessible keys to generate SHA-MAC and MAC signatures
  • Integrated 802.11 b/g/n WiFi 2.4GHz Transceiver (up to 150Mbps)
  • Integrated Temperature Sensor (-20°C to 110°C)
  • 34 GPIO (excluding strapping pins)
    • 1x USB OTG Interface
    • 1x DVP Camera Interface
    • 1x LCD Interface
  • Operating Voltage: 3.0 to 3.6V
    • WiFi: 310mA (peak)
    • Light-Sleep: 550µA
    • Deep-Sleep: 20-235µA
ESP32-S2 module on the ESP32-S2 Thing Plus. (Click to enlarge)

Note: Users should be aware of the following nuances and details of this board

Note: While most users will utilize the USB connection for serial programming, the ESP32-S2 can also be programmed through its JTAG or SWD pins. This might is useful for individuals developing and debugging firmware that would be flashed directly onto the module, such as in production for commercial applications.

ESP32-S2 Thing Plus's JATG pins
The JTAG pins on the ESP32-S2 Thing Plus. (Click to enlarge)

Users can also utilize the ESP32-S2 as a JTAG bridge; check out the project from Espressif for more information.

Peripherals and I/O

Note: Users should be aware of the following nuances of this board

The pins from the ESP32-S2 module are broken out into a feather form factor layout. There are 21 I/O pins broken out on this board, with 8 I/O pads on the back of the board. All of the ESP32-S2 Thing Plus pins are broken out with .1" pitch spacing for headers. With the ESP32's pin multiplexing, various pins will be capable of several functionalities. For more technical specifications on the I/O pins, you can refer to the ESP32-S2 datasheet.

  • 16x 12-bit ADC Channels
  • 2x 8-bit DAC
  • 14x Capacitive Touch Sensing
  • 4x SPI (only one is configured by default in the Arduino IDE)
  • 1x I2S
  • 2x I2C (only one is configured by default in the Arduino IDE)
  • 2x UART (both are configured by default in the Arduino IDE, but one UART is used for bootloading/debug)
  • 8x PWM Channels
  • 1x DVP Camera Interface
  • 1x LCD Interface

Graphical datasheet
Graphical datasheet for the ESP32-S2 Thing Plus. (Click to enlarge)

Note: Users should be aware of the following limitations for the board in the Arduino IDE.

  • Not all of the features, listed above, are available in the Arduino IDE. For the full capabilities of the ESP32-S2, the Espressif IDF should be utilized.
  • Only one I2C bus is defined.
  • Only two UART interfaces are available.
    • UART (USB): Serial
    • RX1/TX1 Pins: Serial1
  • Only one SPI bus is defined.
  • The bit-width for the ADC2 channels needs to be set when reading ADC values.
    • Setting the bit-width before taking any ADC readings doesn't work; the bit-width must be set, when the making ADC readings.
    • The example code below, properly demonstrates how to read values from the ADC2 channels.

    Download the ADC Example Code


There are two buttons on ESP32-S2 Thing Plus; a Reset and IO0 button.

Reset Button

The reset (RST) button allows users to reset the program running on the ESP32-S2 module without unplugging the board.

Reset Button
Reset button on the ESP32-S2 Thing Plus. (Click to enlarge)

User Button

Note: In order to utilize the user button, connected to IO 0, the pin mode will need to be configured as an input with an internal pullup (i.e. INPUT_PULLUP); see an example below.

pinMode(D0, INPUT_PULLUP);

The user (0 ) button allows users to short IO 0 to ground (GND).

IO 0 Button
IO 0 button on the ESP32-S2 Thing Plus. (Click to enlarge)

Indicator LEDs

There are two indicator LEDs on the ESP32-S2 Thing Plus:

  • Status/Pin 13 (Blue)
  • Battery Charging (Yellow)

Battery Charging LED

The yellow, CHG LED will light while a battery is being charged through the charging circuit. The LED will be off when no battery is present (*dimmed), when the charge management controller is in standby (after the battery charging has been completed), or when the charge management controller is shutdown. The LED will be on when the charge management controller is in the process of charging the battery. For more information, please refer to the MCP73831 datasheet.

Charge LED
The battery charging (CHG) LED indicator on the ESP32-S2 Thing Plus. (Click to enlarge)
Charge Cycle State STAT1
  • Thermal Shutdown
  • VDD < VBAT
Off (High Z)
No Battery Present Dimmed (High Z)
Charge Complete – Standby Off (H)
Preconditioning On (L)
Constant-Current Fast Charge On (L)
Constant Voltage On (L)


The blue, status (13) LED is typically used as a test or status LED to make sure that a board is working or for basic debugging. This indicator is connected to GPIO 18.

Status LED
The status (13) LED indicator on the ESP32-S2 Thing Plus. (Click to enlarge)


There are three jumpers on the back of the board that can be used to easily modify the hardware connections on the board.

  • USB - This jumper can be used to control the USB-C data line connections through the TC7USB40MU USB switch.
    • By default, the data lines are connected to the CP2102 Serial-to-UART bridge; and therefore, tied to the ESP32-S2's UART pins.
  • CHG - This jumper can be used to modify the charging rate to the LiPo JST connector.
    • By default, the charge rate is configured to 500mA.
  • GPIO18PU - This jumper can be used to disconnect the pull-up resistor on GPIO18.
The jumpers on the back of the ESP32-S2 Thing Plus. (Click to enlarge)

Never modified a jumper before? Check out our Jumper Pads and PCB Traces tutorial for a quick introduction!

How to Work with Jumper Pads and PCB Traces

April 2, 2018

Handling PCB jumper pads and traces is an essential skill. Learn how to cut a PCB trace, add a solder jumper between pads to reroute connections, and repair a trace with the green wire method if a trace is damaged.

Primary I2C Bus

The Qwiic connector is attached to the primary I2C bus. The primary I2C bus for this board utilizes the pin connections, detailed in the table below:

Connection VDD GND SCL SDA
Pad Number
(ESP32-S2 module)
3.3V GND IO2 IO1

Qwiic Connector

A Qwiic connector is provided for users to seamlessly integrate with SparkFun's Qwiic Ecosystem.

qwiic connector
Qwiic connector and I2C pins on the ESP32-S2 Thing Plus. (Click to enlarge)

What is Qwiic?

The Qwiic system is intended a quick, hassle-free cabling/connector system for I2C devices. Qwiic is actually a play on words between "quick" and I2C or "iic".

Features of the Qwiic System

Keep your soldering iron at bay.

Cables plug easily between boards making quick work of setting up a new prototype. We currently offer three different lengths of Qwiic cables as well as a breadboard friendly cable to connect any Qwiic enabled board to anything else. Initially you may need to solder headers onto the shield to connect your platform to the Qwiic system but once that’s done it’s plug and go!

Qwiic Cable and Board

Qwiic cables connected to Spectral Sensor Breakout

Minimize your mistakes.

How many times have you swapped the SDA and SCL wires on your breadboard hoping the sensor will start working? The Qwiic connector is polarized so you know you’ll have it wired correctly, every time, from the start.

The PCB connector is part number SM04B-SRSS (Datasheet) or equivalent. The mating connector used on cables is part number SHR04V-S-B or equivalent. This is a common and low cost connector.

JST Connector

1mm pitch, 4-pin JST connector

Expand with ease.

It’s time to leverage the power of the I2C bus! Most Qwiic boards will have two or more connectors on them allowing multiple devices to be connected.