

The SparkFun ESP32 Thing Plus C (Manufacturer Part ID: ESP32-S2, WRL-20168) is a versatile microcontroller board designed for IoT and wireless applications. It is built around the powerful ESP32-S2 chip, which integrates Wi-Fi and Bluetooth capabilities, making it an excellent choice for projects requiring wireless communication. The board is compatible with the Feather form factor, allowing seamless integration with a wide range of add-on boards and accessories.








| Specification | Value |
|---|---|
| Microcontroller | ESP32-S2 (Xtensa® 32-bit LX7 CPU) |
| Operating Voltage | 3.3V |
| Input Voltage (via USB-C) | 5V |
| Flash Memory | 4MB |
| SRAM | 320KB |
| Wi-Fi | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | BLE (Bluetooth Low Energy) |
| GPIO Pins | 21 |
| ADC Channels | 14-bit ADC (up to 20 channels) |
| Interfaces | I2C, SPI, UART, I2S, PWM |
| USB Interface | USB-C (for programming and power) |
| Dimensions | 2.0" x 0.9" (50.8mm x 22.9mm) |
The SparkFun ESP32 Thing Plus C features a Feather-compatible pinout. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| VIN | Input voltage (5V from USB-C or external power supply) |
| 3.3V | Regulated 3.3V output |
| GND | Ground |
| EN | Enable pin (active high, used to reset the board) |
| GPIO0 | General-purpose I/O pin, also used for boot mode selection |
| GPIO1-21 | General-purpose I/O pins with multiple functions (PWM, ADC, I2C, SPI, etc.) |
| SDA | I2C data line |
| SCL | I2C clock line |
| RX | UART receive pin |
| TX | UART transmit pin |
| A0-A5 | Analog input pins (14-bit ADC) |
| RST | Reset pin |
| USB-C | USB interface for programming and power |
Powering the Board:
Programming the Board:
Connecting Peripherals:
Below is an example of how to connect the SparkFun ESP32 Thing Plus C to a Wi-Fi network and blink an LED:
#include <WiFi.h> // Include the Wi-Fi library
// Replace with your network credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";
const int ledPin = 13; // GPIO pin for the onboard LED
void setup() {
pinMode(ledPin, OUTPUT); // Set the LED pin as an output
Serial.begin(115200); // Start the serial communication
// Connect to Wi-Fi
Serial.print("Connecting to Wi-Fi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWi-Fi connected!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
}
void loop() {
digitalWrite(ledPin, HIGH); // Turn the LED on
delay(1000); // Wait for 1 second
digitalWrite(ledPin, LOW); // Turn the LED off
delay(1000); // Wait for 1 second
}
Board Not Detected by Computer:
Wi-Fi Connection Fails:
Peripherals Not Working:
Q: Can I power the board with a LiPo battery?
A: Yes, the board has a JST connector for a single-cell LiPo battery. It also includes a charging circuit.
Q: How do I update the firmware?
A: Use the Arduino IDE or ESP-IDF to upload new firmware via the USB-C connection.
Q: Can I use the board with MicroPython?
A: Yes, the ESP32-S2 is compatible with MicroPython. Flash the MicroPython firmware to get started.
Q: What is the maximum current output of the 3.3V pin?
A: The 3.3V pin can supply up to 500mA, depending on the input power source.
By following this documentation, you can effectively use the SparkFun ESP32 Thing Plus C in your projects and troubleshoot common issues.