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, enhanced AI acceleration, and a wide range of peripherals, making it ideal for complex tasks, real-time applications, 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

  • IoT Devices: Smart home systems, industrial IoT, and connected appliances.
  • AI and Machine Learning: Edge AI applications such as image recognition and voice processing.
  • Wearables: Low-power devices requiring wireless connectivity.
  • Prototyping: Rapid development of Wi-Fi and Bluetooth-enabled projects.
  • Embedded Systems: Applications requiring real-time processing and multiple peripherals.

Technical Specifications

Key Technical Details

Parameter Value
Manufacturer Waveshare
Part ID ESP32-S3-DEV-KIT-N16R8-M
Processor Dual-core Xtensa LX7 (up to 240 MHz)
Flash Memory 16 MB
PSRAM 8 MB
Wi-Fi 802.11 b/g/n (2.4 GHz)
Bluetooth Bluetooth 5.0 LE
GPIO Pins 45 (including ADC, DAC, I2C, SPI, UART, PWM, etc.)
Operating Voltage 3.3V
Power Supply USB Type-C (5V) or external 3.3V
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 interfacing with peripherals. Below is the pinout description:

Pin Name Type Description
GPIO0 Input/Output General-purpose I/O, boot mode selection
GPIO1 Input/Output General-purpose I/O
GPIO2 Input/Output General-purpose I/O, supports ADC and PWM
GPIO3 Input/Output General-purpose I/O, supports ADC and PWM
GPIO4 Input/Output General-purpose I/O, supports ADC and PWM
GPIO21 Input/Output I2C SDA (default), general-purpose I/O
GPIO22 Input/Output I2C SCL (default), general-purpose I/O
GPIO36 Input ADC input channel
GPIO39 Input ADC input channel
3V3 Power 3.3V power supply
GND Power Ground

Note: For a complete pinout diagram, refer to the official Waveshare documentation.


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 3.3V directly to the 3V3 pin and connect GND to ground.
  2. Programming the Board:

    • Install the Arduino IDE or ESP-IDF (Espressif IoT Development Framework).
    • Add the ESP32-S3 board support package to your development environment.
    • Connect the board to your computer and select the appropriate COM port.
  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.3V logic of the ESP32-S3.
  4. Uploading Code:

    • Write your code in the Arduino IDE or ESP-IDF.
    • Compile and upload the code to the ESP32-S3 using the USB connection.

Important Considerations and Best Practices

  • Voltage Levels: Ensure all connected peripherals operate at 3.3V logic levels to avoid damaging the board.
  • Boot Mode: To enter bootloader mode, hold the BOOT button while pressing the EN (reset) button.
  • Power Supply: Use a stable 5V USB power source or a regulated 3.3V supply for reliable operation.
  • Wi-Fi and Bluetooth: Avoid placing the board in metal enclosures to ensure optimal wireless performance.

Example Code for Arduino UNO Integration

Below is an example of using the ESP32-S3 to read data from a DHT11 temperature and humidity sensor and send it to a serial monitor:

#include <WiFi.h>
#include <DHT.h>

// Define DHT sensor type and pin
#define DHTPIN 4       // GPIO4 is connected to the DHT11 data pin
#define DHTTYPE DHT11  // DHT11 sensor

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);  // Initialize serial communication
  dht.begin();           // Initialize the DHT sensor
  Serial.println("ESP32-S3 DHT11 Example");
}

void loop() {
  // Read temperature and humidity values
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  // Check if readings are valid
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  // Print the readings to the serial monitor
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.print("%  Temperature: ");
  Serial.print(temperature);
  Serial.println("°C");

  delay(2000);  // Wait 2 seconds before the next reading
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Board Not Detected by Computer:

    • Ensure the USB cable is functional and supports data transfer.
    • Verify that the correct COM port is selected in the development environment.
    • Install the necessary USB drivers for the ESP32-S3.
  2. Code Upload Fails:

    • Check that the board is in bootloader mode (hold BOOT and press EN).
    • Ensure the correct board and port are selected in the Arduino IDE or ESP-IDF.
  3. Wi-Fi Connection Issues:

    • Verify the SSID and password in your code.
    • Ensure the Wi-Fi network operates on the 2.4 GHz band (ESP32-S3 does not support 5 GHz).
  4. Peripherals Not Working:

    • Double-check the wiring and pin assignments in your code.
    • Ensure the peripherals are compatible with 3.3V logic levels.

FAQs

  • Q: Can the ESP32-S3 operate on battery power?
    A: Yes, the ESP32-S3 can be powered by a 3.7V LiPo battery with a suitable voltage regulator.

  • Q: Does the ESP32-S3 support over-the-air (OTA) updates?
    A: Yes, the ESP32-S3 supports OTA updates for firmware upgrades.

  • Q: Can I use the ESP32-S3 for AI applications?
    A: Yes, the ESP32-S3 includes AI acceleration features, making it suitable for edge AI tasks.

  • Q: What is the maximum range of Wi-Fi and Bluetooth?
    A: The Wi-Fi range is approximately 50 meters indoors and 200 meters outdoors. Bluetooth range depends on the environment and is typically around 10-15 meters.


This concludes the documentation for the ESP32-S3-DEV-KIT-N16R8-M. For further details, refer to the official Waveshare resources.