Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use SparkFun ESP32 Thing: Examples, Pinouts, and Specs

Image of SparkFun ESP32 Thing
Cirkit Designer LogoDesign with SparkFun ESP32 Thing in Cirkit Designer

Introduction

The SparkFun ESP32 Thing is a versatile development board built around the powerful ESP32 chip. It features integrated Wi-Fi and Bluetooth capabilities, making it an excellent choice for Internet of Things (IoT) projects, wireless communication, and smart devices. The board is designed to be compact and user-friendly, with a USB interface for programming and power, as well as a variety of GPIO pins for connecting sensors, actuators, and other peripherals.

Explore Projects Built with SparkFun ESP32 Thing

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32-Based Motion Tracking System with ICM20948 Sensor
Image of ICM20948: A project utilizing SparkFun ESP32 Thing in a practical application
This circuit features a SparkFun ESP32 Thing Plus microcontroller interfaced with an Adafruit ICM20948 9-axis motion sensor via an Adafruit TXB0104 4-channel bi-directional level shifter. The ESP32 reads data from the ICM20948 sensor, calculates orientation angles such as pitch, roll, yaw, and azimuth, and outputs these values to the serial monitor. The level shifter ensures compatibility between the 3.3V logic levels of the ESP32 and the 1.8V logic levels required by the ICM20948.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based RFID Music Player with Arcade Button Controls
Image of Robot Music Player: A project utilizing SparkFun ESP32 Thing in a practical application
This circuit features an ESP32 Devkit V1 microcontroller interfaced with a DFPlayer Mini MP3 player module, an RFID-RC522 reader, a piezo speaker, and two arcade buttons. The ESP32 controls audio playback through the DFPlayer Mini, which is connected to the speaker, and uses the RFID reader to trigger specific audio tracks based on RFID tag data. The arcade buttons are used to control playback and adjust volume, while a rocker switch and battery mount provide power management.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Audio Player with LED Indicators and Battery Charging
Image of Device Classification Pil (LED): A project utilizing SparkFun ESP32 Thing in a practical application
This circuit features an ESP32 Mini microcontroller connected to a DFPlayer Mini MP3 module for audio playback, with a loudspeaker attached for sound output. The ESP32 controls two LEDs (green and red) and reads an analog value from a potentiometer. Power management is handled by a TP4056 charging module connected to an 18650 battery, providing power to the ESP32 and other components.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Interactive Audio Player with LCD Display and Battery Management
Image of Button Box: A project utilizing SparkFun ESP32 Thing in a practical application
This is a microcontroller-based interactive device featuring an ESP32 for control, a Serial MP3 Player for audio output, an LCD display for user interface, and various buttons for input. It includes a battery with a charging module and voltage regulation, and uses a rocker switch for power control. The system's functionality is determined by the embedded code, which is currently a placeholder for future development.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with SparkFun ESP32 Thing

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of ICM20948: A project utilizing SparkFun ESP32 Thing in a practical application
ESP32-Based Motion Tracking System with ICM20948 Sensor
This circuit features a SparkFun ESP32 Thing Plus microcontroller interfaced with an Adafruit ICM20948 9-axis motion sensor via an Adafruit TXB0104 4-channel bi-directional level shifter. The ESP32 reads data from the ICM20948 sensor, calculates orientation angles such as pitch, roll, yaw, and azimuth, and outputs these values to the serial monitor. The level shifter ensures compatibility between the 3.3V logic levels of the ESP32 and the 1.8V logic levels required by the ICM20948.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Robot Music Player: A project utilizing SparkFun ESP32 Thing in a practical application
ESP32-Based RFID Music Player with Arcade Button Controls
This circuit features an ESP32 Devkit V1 microcontroller interfaced with a DFPlayer Mini MP3 player module, an RFID-RC522 reader, a piezo speaker, and two arcade buttons. The ESP32 controls audio playback through the DFPlayer Mini, which is connected to the speaker, and uses the RFID reader to trigger specific audio tracks based on RFID tag data. The arcade buttons are used to control playback and adjust volume, while a rocker switch and battery mount provide power management.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Device Classification Pil (LED): A project utilizing SparkFun ESP32 Thing in a practical application
ESP32-Based Audio Player with LED Indicators and Battery Charging
This circuit features an ESP32 Mini microcontroller connected to a DFPlayer Mini MP3 module for audio playback, with a loudspeaker attached for sound output. The ESP32 controls two LEDs (green and red) and reads an analog value from a potentiometer. Power management is handled by a TP4056 charging module connected to an 18650 battery, providing power to the ESP32 and other components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Button Box: A project utilizing SparkFun ESP32 Thing in a practical application
ESP32-Based Interactive Audio Player with LCD Display and Battery Management
This is a microcontroller-based interactive device featuring an ESP32 for control, a Serial MP3 Player for audio output, an LCD display for user interface, and various buttons for input. It includes a battery with a charging module and voltage regulation, and uses a rocker switch for power control. The system's functionality is determined by the embedded code, which is currently a placeholder for future development.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • IoT devices and smart home automation
  • Wireless data logging and monitoring
  • Bluetooth-enabled applications
  • Prototyping and development of connected devices
  • Robotics and sensor networks

Technical Specifications

The SparkFun ESP32 Thing is packed with features to support a wide range of applications. Below are its key technical specifications:

Key Technical Details

  • Microcontroller: ESP32-D0WDQ6
  • Operating Voltage: 3.3V
  • Input Voltage (via USB): 5V
  • Wi-Fi: 802.11 b/g/n
  • Bluetooth: v4.2 BR/EDR and BLE
  • Flash Memory: 4MB
  • GPIO Pins: 21 (including ADC, DAC, PWM, I2C, SPI, UART)
  • Analog Inputs: 18 (12-bit ADC)
  • Analog Outputs: 2 (8-bit DAC)
  • Clock Speed: Up to 240 MHz
  • Power Consumption: Ultra-low power consumption in deep sleep mode (~10 µA)
  • Dimensions: 2.3" x 0.9" (58.4mm x 22.9mm)

Pin Configuration and Descriptions

The SparkFun ESP32 Thing has a variety of pins for different functionalities. Below is a summary of the pin configuration:

Pin Name Function Description
VIN Power Input Accepts 5V from USB or external power source.
3.3V Power Output Provides regulated 3.3V output.
GND Ground Common ground for the circuit.
EN Enable Resets the board when pulled low.
IO0 GPIO0 / Boot Mode Used for boot mode selection or general-purpose I/O.
IO2 GPIO2 General-purpose I/O pin.
IO4 GPIO4 General-purpose I/O pin.
IO5 GPIO5 General-purpose I/O pin.
IO12 GPIO12 General-purpose I/O pin.
IO13 GPIO13 General-purpose I/O pin.
IO14 GPIO14 General-purpose I/O pin.
IO15 GPIO15 General-purpose I/O pin.
IO16 GPIO16 General-purpose I/O pin.
IO17 GPIO17 General-purpose I/O pin.
IO18 GPIO18 / SPI_CLK SPI clock pin or general-purpose I/O.
IO19 GPIO19 / SPI_MISO SPI MISO pin or general-purpose I/O.
IO21 GPIO21 / I2C_SDA I2C data pin or general-purpose I/O.
IO22 GPIO22 / I2C_SCL I2C clock pin or general-purpose I/O.
IO23 GPIO23 / SPI_MOSI SPI MOSI pin or general-purpose I/O.
IO25 GPIO25 / DAC1 DAC output or general-purpose I/O.
IO26 GPIO26 / DAC2 DAC output or general-purpose I/O.
IO27 GPIO27 General-purpose I/O pin.
IO32 GPIO32 / ADC Analog input or general-purpose I/O.
IO33 GPIO33 / ADC Analog input or general-purpose I/O.
IO34 GPIO34 / ADC Analog input (input-only pin).
IO35 GPIO35 / ADC Analog input (input-only pin).

Usage Instructions

The SparkFun ESP32 Thing is easy to use and program, making it ideal for both beginners and experienced developers. Below are the steps to get started and some best practices for using the board.

How to Use the Component in a Circuit

  1. Powering the Board:

    • Connect the board to your computer using a micro-USB cable. This will provide both power and a programming interface.
    • Alternatively, you can power the board using an external 5V source connected to the VIN pin.
  2. Programming the Board:

    • Install the Arduino IDE and add the ESP32 board support package.
      • Go to File > Preferences and add the following URL to the "Additional Board Manager URLs" field:
        https://dl.espressif.com/dl/package_esp32_index.json
      • Open the Boards Manager (Tools > Board > Boards Manager), search for "ESP32," and install the package.
    • Select "SparkFun ESP32 Thing" from the Tools > Board menu.
    • Write your code and upload it to the board.
  3. Connecting Peripherals:

    • Use the GPIO pins to connect sensors, actuators, or other devices.
    • Ensure that all connected devices operate at 3.3V logic levels to avoid damaging the board.

Example Code for Arduino IDE

The following example demonstrates how to blink an LED connected to GPIO5:

// Define the GPIO pin for the LED
const int ledPin = 5;

void setup() {
  // Set the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Turn the LED on
  digitalWrite(ledPin, HIGH);
  delay(1000); // Wait for 1 second

  // Turn the LED off
  digitalWrite(ledPin, LOW);
  delay(1000); // Wait for 1 second
}

Important Considerations and Best Practices

  • Voltage Levels: The ESP32 operates at 3.3V. Avoid connecting 5V signals directly to the GPIO pins.
  • Boot Mode: GPIO0 must be pulled low during boot to enter programming mode.
  • Power Supply: Use a stable power source to avoid unexpected resets or malfunctions.
  • Deep Sleep Mode: Utilize the deep sleep mode for battery-powered applications to conserve energy.

Troubleshooting and FAQs

Common Issues and Solutions

  1. The board is not detected by the computer:

    • Ensure the USB cable is functional and supports data transfer.
    • Install the necessary USB-to-serial drivers (e.g., CP2102 driver).
  2. Upload fails with a timeout error:

    • Check that the correct board and COM port are selected in the Arduino IDE.
    • Hold down the BOOT button on the board while uploading the code.
  3. Wi-Fi connection issues:

    • Verify the SSID and password in your code.
    • Ensure the router is within range and supports 2.4 GHz Wi-Fi (ESP32 does not support 5 GHz).
  4. GPIO pin not working as expected:

    • Confirm that the pin is not being used for another function (e.g., boot mode).
    • Check for shorts or incorrect wiring in your circuit.

FAQs

  • Can I use the SparkFun ESP32 Thing with a 5V sensor?
    Yes, but you will need a level shifter to convert the 5V signal to 3.3V.

  • What is the maximum current output of the GPIO pins?
    Each GPIO pin can source or sink up to 12 mA safely.

  • How do I reset the board?
    Press the RST button on the board to perform a hardware reset.

  • Can I use the ESP32 Thing for Bluetooth audio applications?
    Yes, the ESP32 supports Bluetooth audio, but additional libraries and configurations may be required.

By following this documentation, you can effectively use the SparkFun ESP32 Thing for a wide range of projects and applications.