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

How to Use ESP32-S3: Examples, Pinouts, and Specs

Image of ESP32-S3
Cirkit Designer LogoDesign with ESP32-S3 in Cirkit Designer

Introduction

The ESP32-S3-DEV-KIT-N16R8-M by Waveshare is a development board based on the ESP32-S3 system-on-chip (SoC). The ESP32-S3 is a powerful, low-power SoC with integrated Wi-Fi and Bluetooth capabilities, designed specifically for IoT (Internet of Things) applications. It features a dual-core Xtensa LX7 processor, a rich set of GPIO pins, and support for various peripherals, making it an excellent choice for smart devices, wireless communication, and edge computing.

Explore Projects Built with ESP32-S3

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-S3 Based Automated Watering System with Ultrasonic Sensing and Data Logging
Image of galon otomatis telegram: A project utilizing ESP32-S3 in a practical application
This circuit features an ESP32-S3 microcontroller connected to various peripherals including an HC-SR04 ultrasonic sensor, a water flow sensor, an OLED display, a DS3231 real-time clock (RTC), an SD card module, a water pump, a two-channel relay, and a valve solenoid. The ESP32-S3 manages sensor readings, data logging, and controls the water pump and valve via the relay based on sensor inputs. The circuit is designed for monitoring and controlling water flow, likely in an automated irrigation or fluid management system.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-S3 GPS and Wind Speed Logger with Dual OLED Displays and CAN Bus
Image of esp32-s3-ellipse: A project utilizing ESP32-S3 in a practical application
This circuit features an ESP32-S3 microcontroller interfaced with an SD card module, two OLED displays, a GPS module, and a CAN bus module. The ESP32-S3 records GPS data to the SD card, displays speed on one OLED, and shows wind speed from the CAN bus on the other OLED, providing a comprehensive data logging and display system.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-S3 Based Environmental Monitoring and Control System with Data Logging
Image of ESP32: A project utilizing ESP32-S3 in a practical application
This circuit features an ESP32-S3 microcontroller interfaced with various sensors and modules, including a DHT22 temperature and humidity sensor, an HC-SR04 ultrasonic sensor, an SGP41 VOC and NOx sensor, and an Adafruit INA260 current and power sensor. The ESP32-S3 also controls a DC motor via a relay and communicates with an SD card and an OLED display. An Arduino UNO is used to read inputs from a rotary encoder, and a step-down buck converter is used to regulate voltage from a 12V battery to power the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-S3 Based Vibration Detection System with TFT Display and Power Backup
Image of IOT Thesis: A project utilizing ESP32-S3 in a practical application
This circuit features an ESP32-S3 microcontroller connected to various peripherals including an ADXL355 accelerometer, an SW-420 vibration sensor, a buzzer module, and an ILI9341 TFT display. The ESP32-S3 manages sensor inputs and provides output to the display and buzzer. Power management is handled by a 12V to 5V step-down converter, and a UPS ensures uninterrupted power supply, with a rocker switch to control the power flow.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with ESP32-S3

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 galon otomatis telegram: A project utilizing ESP32-S3 in a practical application
ESP32-S3 Based Automated Watering System with Ultrasonic Sensing and Data Logging
This circuit features an ESP32-S3 microcontroller connected to various peripherals including an HC-SR04 ultrasonic sensor, a water flow sensor, an OLED display, a DS3231 real-time clock (RTC), an SD card module, a water pump, a two-channel relay, and a valve solenoid. The ESP32-S3 manages sensor readings, data logging, and controls the water pump and valve via the relay based on sensor inputs. The circuit is designed for monitoring and controlling water flow, likely in an automated irrigation or fluid management system.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of esp32-s3-ellipse: A project utilizing ESP32-S3 in a practical application
ESP32-S3 GPS and Wind Speed Logger with Dual OLED Displays and CAN Bus
This circuit features an ESP32-S3 microcontroller interfaced with an SD card module, two OLED displays, a GPS module, and a CAN bus module. The ESP32-S3 records GPS data to the SD card, displays speed on one OLED, and shows wind speed from the CAN bus on the other OLED, providing a comprehensive data logging and display system.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ESP32: A project utilizing ESP32-S3 in a practical application
ESP32-S3 Based Environmental Monitoring and Control System with Data Logging
This circuit features an ESP32-S3 microcontroller interfaced with various sensors and modules, including a DHT22 temperature and humidity sensor, an HC-SR04 ultrasonic sensor, an SGP41 VOC and NOx sensor, and an Adafruit INA260 current and power sensor. The ESP32-S3 also controls a DC motor via a relay and communicates with an SD card and an OLED display. An Arduino UNO is used to read inputs from a rotary encoder, and a step-down buck converter is used to regulate voltage from a 12V battery to power the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of IOT Thesis: A project utilizing ESP32-S3 in a practical application
ESP32-S3 Based Vibration Detection System with TFT Display and Power Backup
This circuit features an ESP32-S3 microcontroller connected to various peripherals including an ADXL355 accelerometer, an SW-420 vibration sensor, a buzzer module, and an ILI9341 TFT display. The ESP32-S3 manages sensor inputs and provides output to the display and buzzer. Power management is handled by a 12V to 5V step-down converter, and a UPS ensures uninterrupted power supply, with a rocker switch to control the power flow.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Smart home devices (e.g., smart lights, thermostats, and security systems)
  • Wearable devices with wireless connectivity
  • Industrial IoT applications
  • Wireless sensor networks
  • Edge AI and machine learning applications
  • Robotics and automation systems

Technical Specifications

The following table outlines the key technical specifications of the ESP32-S3-DEV-KIT-N16R8-M:

Specification Details
Processor Dual-core Xtensa LX7, up to 240 MHz
Flash Memory 16 MB (external)
PSRAM 8 MB
Wi-Fi 802.11 b/g/n (2.4 GHz)
Bluetooth Bluetooth 5.0 LE
GPIO Pins 44 GPIO pins (multiplexed with other functions)
Operating Voltage 3.3 V
Power Supply USB Type-C or external 5 V
Interfaces SPI, I2C, UART, I2S, PWM, ADC, DAC, CAN, RMT
ADC Channels 20 channels, 12-bit resolution
DAC Channels 2 channels, 8-bit resolution
USB Support USB OTG (On-The-Go)
Operating Temperature -40°C to +85°C
Dimensions 54 mm x 25 mm

Pin Configuration and Descriptions

The ESP32-S3-DEV-KIT-N16R8-M features a variety of pins for different functionalities. Below is a summary of the pin configuration:

Pin Name Type Description
GPIO0 Input/Output General-purpose I/O, boot mode selection during startup
GPIO1 Input/Output General-purpose I/O, UART TX
GPIO2 Input/Output General-purpose I/O, ADC, DAC
GPIO3 Input/Output General-purpose I/O, UART RX
GPIO4 Input/Output General-purpose I/O, PWM
GPIO5 Input/Output General-purpose I/O, SPI
GPIO18 Input/Output General-purpose I/O, I2C SDA
GPIO19 Input/Output General-purpose I/O, I2C SCL
GPIO21 Input/Output General-purpose I/O, SPI MOSI
GPIO22 Input/Output General-purpose I/O, SPI MISO
GPIO23 Input/Output General-purpose I/O, SPI CLK
3V3 Power 3.3 V power supply output
GND Power Ground
EN Input Enable pin, active high

Note: Many GPIO pins are multiplexed with other functions. Refer to the ESP32-S3 datasheet for detailed pin assignments.

Usage Instructions

How to Use the ESP32-S3 in a Circuit

  1. Powering the Board:

    • Connect the ESP32-S3 to a computer or power source using a USB Type-C cable.
    • Alternatively, supply 5 V to the VIN pin and connect GND to the ground.
  2. Programming the Board:

    • Install the Arduino IDE or ESP-IDF (Espressif IoT Development Framework) on your computer.
    • Add the ESP32 board package to the Arduino IDE via the Board Manager.
    • Select "ESP32-S3 Dev Module" as the board type in the IDE.
    • Write your code and upload it to the board using the USB connection.
  3. Connecting Peripherals:

    • Use the GPIO pins to connect sensors, actuators, or other peripherals.
    • Ensure that the voltage levels of connected devices are compatible with the 3.3 V logic of the ESP32-S3.
  4. Wireless Connectivity:

    • Use the built-in Wi-Fi and Bluetooth capabilities to connect to networks or pair with other devices.
    • Configure the wireless settings in your code.

Important Considerations and Best Practices

  • Voltage Levels: The ESP32-S3 operates at 3.3 V logic. Avoid connecting 5 V signals directly to GPIO pins.
  • Boot Mode: Ensure GPIO0 is pulled low during startup to enter programming mode.
  • Power Supply: Use a stable power source to avoid unexpected resets or malfunctions.
  • Heat Management: While the ESP32-S3 is efficient, prolonged high-performance operation may generate heat. Ensure proper ventilation.

Example Code for Arduino UNO Integration

Below is an example of using the ESP32-S3 to connect to a Wi-Fi network and send data to a server:

#include <WiFi.h> // Include the Wi-Fi library

// Replace with your network credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";

void setup() {
  Serial.begin(115200); // Initialize serial communication
  WiFi.begin(ssid, password); // Connect to Wi-Fi

  Serial.print("Connecting to Wi-Fi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print("."); // Print dots while connecting
  }
  Serial.println("\nConnected to Wi-Fi!");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP()); // Print the device's IP address
}

void loop() {
  // Add your main code here
}

Tip: Replace Your_SSID and Your_PASSWORD with your Wi-Fi network credentials.

Troubleshooting and FAQs

Common Issues and Solutions

  1. The board does not power on:

    • Ensure the USB cable is properly connected and functional.
    • Check the power source and ensure it provides sufficient current (at least 500 mA).
  2. Unable to upload code:

    • Verify that the correct board and port are selected in the Arduino IDE.
    • Ensure GPIO0 is pulled low during programming.
    • Press the "EN" (Enable) button to reset the board before uploading.
  3. Wi-Fi connection fails:

    • Double-check the SSID and password in your code.
    • Ensure the Wi-Fi network is within range and operational.
  4. GPIO pins not working as expected:

    • Confirm that the pins are not being used for other functions (e.g., UART, SPI).
    • Check for short circuits or incorrect wiring.

FAQs

Q: Can the ESP32-S3 be powered by a battery?
A: Yes, the ESP32-S3 can be powered by a 3.7 V LiPo battery connected to the appropriate pins, but ensure proper voltage regulation.

Q: Does the ESP32-S3 support over-the-air (OTA) updates?
A: Yes, the ESP32-S3 supports OTA updates, allowing you to upload firmware wirelessly.

Q: Can I use the ESP32-S3 for AI applications?
A: Yes, the ESP32-S3 includes hardware acceleration for AI tasks, making it suitable for lightweight machine learning models.

Q: Is the ESP32-S3 compatible with Arduino libraries?
A: Most Arduino libraries are compatible with the ESP32-S3, but some may require modifications.

For additional support, refer to the official Waveshare documentation or the Espressif ESP32-S3 datasheet.