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

How to Use ESP32S: Examples, Pinouts, and Specs

Image of ESP32S
Cirkit Designer LogoDesign with ESP32S in Cirkit Designer

Introduction

The ESP32S is a powerful microcontroller developed by Espressif. It features integrated Wi-Fi and Bluetooth capabilities, making it an excellent choice for Internet of Things (IoT) applications and projects requiring wireless communication. With its dual-core processor, low power consumption, and extensive peripheral support, the ESP32S is widely used in smart devices, home automation, wearables, and industrial IoT systems.

Explore Projects Built with ESP32S

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 OLED Display Interface
Image of d: A project utilizing ESP32S in a practical application
This circuit features an ESP32 microcontroller connected to an OLED 1.3" display. The ESP32's GPIO pins 21 and 22 are used for I2C communication (SDA and SCL respectively) with the OLED display. The display is powered by the 5V output from the ESP32, and both devices share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Powered OLED Display with 18650 Battery
Image of oled: A project utilizing ESP32S in a practical application
This circuit features an ESP32 microcontroller powered by a single 18650 battery, which drives a 0.96" OLED display. The ESP32 communicates with the OLED via I2C protocol, using GPIO21 and GPIO22 as SDA and SCL lines, respectively. The purpose of the circuit is to display the message 'Hello, World!' on the OLED screen.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based LoRa Communication Device with OLED Display
Image of LoRa_Satellite_GS: A project utilizing ESP32S in a practical application
This circuit features an ESP32 microcontroller connected to a 0.96" OLED display and a LoRa Ra-02 SX1278 module for wireless communication. The ESP32 facilitates communication with the OLED display via I2C (SDA and SCK lines) and with the LoRa module via SPI (MISO, MOSI, SCK, NSS lines) and GPIO for control signals (DI00, DI01, RST). The circuit is designed for applications requiring wireless data transmission and visual data display.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Controlled OLED Display and Servo Circuit
Image of Mailbox: A project utilizing ESP32S in a practical application
This circuit features an ESP32 microcontroller that is connected to a 0.96" OLED display and a servo motor. The ESP32 uses its I2C interface, with pins D21 and D22 connected to the SDA and SCK pins of the OLED for data display, and pin D18 to control the servo motor via PWM. All components share a common ground and are powered by a 5V adapter, which supplies power to the ESP32's Vin pin, the OLED's VDD pin, and the servo's VCC pin.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with ESP32S

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 d: A project utilizing ESP32S in a practical application
ESP32-Based OLED Display Interface
This circuit features an ESP32 microcontroller connected to an OLED 1.3" display. The ESP32's GPIO pins 21 and 22 are used for I2C communication (SDA and SCL respectively) with the OLED display. The display is powered by the 5V output from the ESP32, and both devices share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of oled: A project utilizing ESP32S in a practical application
ESP32-Powered OLED Display with 18650 Battery
This circuit features an ESP32 microcontroller powered by a single 18650 battery, which drives a 0.96" OLED display. The ESP32 communicates with the OLED via I2C protocol, using GPIO21 and GPIO22 as SDA and SCL lines, respectively. The purpose of the circuit is to display the message 'Hello, World!' on the OLED screen.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of LoRa_Satellite_GS: A project utilizing ESP32S in a practical application
ESP32-Based LoRa Communication Device with OLED Display
This circuit features an ESP32 microcontroller connected to a 0.96" OLED display and a LoRa Ra-02 SX1278 module for wireless communication. The ESP32 facilitates communication with the OLED display via I2C (SDA and SCK lines) and with the LoRa module via SPI (MISO, MOSI, SCK, NSS lines) and GPIO for control signals (DI00, DI01, RST). The circuit is designed for applications requiring wireless data transmission and visual data display.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Mailbox: A project utilizing ESP32S in a practical application
ESP32-Controlled OLED Display and Servo Circuit
This circuit features an ESP32 microcontroller that is connected to a 0.96" OLED display and a servo motor. The ESP32 uses its I2C interface, with pins D21 and D22 connected to the SDA and SCK pins of the OLED for data display, and pin D18 to control the servo motor via PWM. All components share a common ground and are powered by a 5V adapter, which supplies power to the ESP32's Vin pin, the OLED's VDD pin, and the servo's VCC pin.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • IoT devices and smart home systems
  • Wireless sensor networks
  • Wearable electronics
  • Industrial automation
  • Robotics and drones
  • Real-time data monitoring and logging

Technical Specifications

The ESP32S microcontroller is designed to deliver high performance while maintaining energy efficiency. Below are its key technical specifications:

Parameter Specification
Manufacturer Espressif
Part ID ESP32S
Processor Dual-core Xtensa® 32-bit LX6 microprocessor
Clock Speed Up to 240 MHz
Flash Memory 4 MB (varies by module)
SRAM 520 KB
Wireless Connectivity Wi-Fi 802.11 b/g/n, Bluetooth v4.2 + BLE
Operating Voltage 3.0V to 3.6V
GPIO Pins 34 (multiplexed with other functions)
ADC Channels 18 (12-bit resolution)
DAC Channels 2
Communication Interfaces UART, SPI, I2C, I2S, CAN, PWM
Power Consumption Ultra-low power modes available (as low as 5 µA in deep sleep)
Operating Temperature -40°C to +85°C

Pin Configuration

The ESP32S has a versatile pinout that supports multiple functions. Below is a summary of the key pins and their descriptions:

Pin Name Function Description
GPIO0 GPIO, Boot Mode Select Used for boot mode selection during startup.
GPIO2 GPIO, ADC, DAC General-purpose I/O, analog-to-digital conversion, or digital-to-analog output.
GPIO12 GPIO, ADC, Touch Sensor General-purpose I/O, analog input, or capacitive touch sensing.
GPIO13 GPIO, ADC, PWM General-purpose I/O, analog input, or pulse-width modulation.
GPIO15 GPIO, ADC, UART General-purpose I/O, analog input, or UART communication.
EN Enable Used to enable or reset the chip.
3V3 Power 3.3V power supply input.
GND Ground Ground connection.

For a complete pinout diagram, refer to the official Espressif ESP32S datasheet.

Usage Instructions

The ESP32S is highly versatile and can be used in a variety of circuits. Below are the steps to get started:

Basic Setup

  1. Power Supply: Provide a stable 3.3V power supply to the ESP32S module. Ensure the current rating of the power source is sufficient (at least 500 mA).
  2. Connections:
    • Connect the GND pin to the ground of your circuit.
    • Use the EN pin to enable or reset the module.
    • Connect GPIO pins as needed for your application (e.g., sensors, actuators, or communication interfaces).
  3. Programming: The ESP32S can be programmed using the Arduino IDE or Espressif's ESP-IDF framework. Install the necessary drivers and libraries for your development environment.

Example: Blinking an LED with Arduino IDE

The following example demonstrates how to blink an LED connected to GPIO2 of the ESP32S:

// Define the GPIO pin where the LED is connected
#define LED_PIN 2

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

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

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

Important Considerations

  • Voltage Levels: Ensure all connected peripherals operate at 3.3V logic levels to avoid damaging the ESP32S.
  • Boot Mode: GPIO0 must be pulled low during startup to enter programming mode.
  • Antenna Placement: For optimal wireless performance, ensure the onboard antenna is not obstructed by metal objects or enclosures.

Troubleshooting and FAQs

Common Issues

  1. ESP32S Not Detected by Computer:

    • Ensure the correct USB driver is installed for your development board.
    • Check the USB cable for faults or try a different cable.
  2. Program Upload Fails:

    • Verify that GPIO0 is pulled low during programming.
    • Check the serial port settings in your development environment.
  3. Wi-Fi Connection Issues:

    • Ensure the correct SSID and password are used in your code.
    • Check for interference or weak signal strength.
  4. Module Overheating:

    • Verify that the power supply voltage does not exceed 3.6V.
    • Avoid overloading GPIO pins with excessive current.

FAQs

Q: Can the ESP32S operate on battery power?
A: Yes, the ESP32S supports low-power modes, making it suitable for battery-powered applications. Use a 3.3V regulator if the battery voltage exceeds 3.6V.

Q: How do I reset the ESP32S?
A: You can reset the ESP32S by momentarily pulling the EN pin low or pressing the reset button on your development board.

Q: Can I use the ESP32S with a 5V logic device?
A: No, the ESP32S operates at 3.3V logic levels. Use a level shifter to interface with 5V devices.

For additional support, refer to the official Espressif documentation or community forums.