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

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

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

Introduction

The ESP32 S3 Pico is a compact microcontroller board developed by Arduino, featuring dual-core processing, integrated Wi-Fi, and Bluetooth capabilities. Designed for IoT applications and embedded systems, this board offers high performance in a small form factor, making it ideal for projects requiring wireless connectivity, edge computing, or real-time data processing.

Explore Projects Built with ESP32 S3 Pico

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Raspberry Pi Pico and ESP32 Wi-Fi Controlled Sensor Interface
Image of pico_esp32: A project utilizing ESP32 S3 Pico in a practical application
This circuit integrates a Raspberry Pi Pico and an ESP32 Wroom Dev Kit, interconnected through various GPIO pins and resistors, to enable communication and control between the two microcontrollers. The ESP32 is powered by a 3.3V supply and shares ground with the Raspberry Pi Pico, while specific GPIO pins are used for data exchange. The provided code sketches for the Raspberry Pi Pico suggest a framework for further development of the system's functionality.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-S3 Based Automated Watering System with Ultrasonic Sensing and Data Logging
Image of galon otomatis telegram: A project utilizing ESP32 S3 Pico 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 Based Vibration Detection System with TFT Display and Power Backup
Image of IOT Thesis: A project utilizing ESP32 S3 Pico 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
ESP32-S3 Based Environmental Monitoring and Control System with Data Logging
Image of ESP32: A project utilizing ESP32 S3 Pico 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

Explore Projects Built with ESP32 S3 Pico

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 pico_esp32: A project utilizing ESP32 S3 Pico in a practical application
Raspberry Pi Pico and ESP32 Wi-Fi Controlled Sensor Interface
This circuit integrates a Raspberry Pi Pico and an ESP32 Wroom Dev Kit, interconnected through various GPIO pins and resistors, to enable communication and control between the two microcontrollers. The ESP32 is powered by a 3.3V supply and shares ground with the Raspberry Pi Pico, while specific GPIO pins are used for data exchange. The provided code sketches for the Raspberry Pi Pico suggest a framework for further development of the system's functionality.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of galon otomatis telegram: A project utilizing ESP32 S3 Pico 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 IOT Thesis: A project utilizing ESP32 S3 Pico 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
Image of ESP32: A project utilizing ESP32 S3 Pico 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

Common Applications and Use Cases

  • IoT Devices: Smart home automation, environmental monitoring, and connected appliances.
  • Wearable Technology: Fitness trackers, health monitoring devices, and smart accessories.
  • Embedded Systems: Robotics, industrial automation, and sensor networks.
  • Prototyping: Rapid development of wireless-enabled projects.
  • Edge Computing: AI/ML inference at the edge for low-latency applications.

Technical Specifications

The ESP32 S3 Pico is packed with features that make it versatile and powerful for a wide range of applications. Below are its key technical details:

Key Technical Details

Feature Specification
Microcontroller Dual-core Xtensa LX7 processor
Clock Speed Up to 240 MHz
Flash Memory 8 MB
RAM 512 KB
Wireless Connectivity Wi-Fi 802.11 b/g/n (2.4 GHz), Bluetooth 5.0 LE
GPIO Pins 27 (multipurpose, including ADC, DAC, I2C, SPI, UART, PWM)
Operating Voltage 3.3V
Input Voltage Range 5V (via USB-C)
Power Consumption Ultra-low power modes available
Dimensions 21 mm x 51 mm
USB Interface USB-C for programming and power
Onboard Peripherals RGB LED, Reset Button, Boot Button

Pin Configuration and Descriptions

The ESP32 S3 Pico features a total of 27 GPIO pins, which can be configured for various functions. Below is the pinout description:

Pin Function Description
1 3V3 3.3V power output
2 GND Ground
3 GPIO0 General-purpose I/O, boot mode selection
4 GPIO1 General-purpose I/O, UART TX
5 GPIO2 General-purpose I/O, UART RX
6 GPIO3 General-purpose I/O, ADC input
7 GPIO4 General-purpose I/O, PWM output
8 GPIO5 General-purpose I/O, SPI clock
9 GPIO6 General-purpose I/O, SPI MOSI
10 GPIO7 General-purpose I/O, SPI MISO
... ... ... (Refer to the official datasheet for the full pinout)

Usage Instructions

The ESP32 S3 Pico is easy to integrate into your projects. Below are the steps to get started and important considerations for using the board effectively.

How to Use the ESP32 S3 Pico in a Circuit

  1. Powering the Board:

    • Connect the board to your computer or power source using a USB-C cable.
    • Ensure the input voltage does not exceed 5V to avoid damaging the board.
  2. Programming the Board:

    • Install the Arduino IDE and add the ESP32 board package via the Board Manager.
    • Select "ESP32 S3 Pico" as the target board in the Tools menu.
    • Write your code and upload it to the board using the USB-C connection.
  3. Connecting Peripherals:

    • Use the GPIO pins to connect sensors, actuators, or other peripherals.
    • Configure the pins in your code according to the desired functionality (e.g., input, output, PWM).

Important Considerations and Best Practices

  • Voltage Levels: The GPIO pins operate at 3.3V. Avoid applying higher voltages to prevent damage.
  • Wi-Fi and Bluetooth: Ensure a stable power supply when using wireless features, as they can increase power consumption.
  • Heat Management: While the board is efficient, prolonged high-performance operation may generate heat. Ensure proper ventilation if necessary.
  • Boot Mode: Use the Boot button to enter programming mode if the board does not automatically detect the upload process.

Example Code for Arduino UNO Integration

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

#include <DHT.h>

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

DHT dht(DHTPIN, DHTTYPE);

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

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

  // Check if the 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 Users Might Face

  1. Board Not Detected by Arduino IDE:

    • Ensure the correct USB driver is installed for the ESP32 S3 Pico.
    • Check that the USB-C cable supports data transfer (some cables are power-only).
    • Verify that the correct board and port are selected in the Arduino IDE.
  2. Upload Fails or Timeout Errors:

    • Press and hold the Boot button while clicking the Upload button in the Arduino IDE.
    • Ensure no other application is using the COM port.
  3. Wi-Fi Connection Issues:

    • Double-check the SSID and password in your code.
    • Ensure the Wi-Fi network operates on the 2.4 GHz band (not 5 GHz).
  4. Overheating:

    • Reduce the clock speed or optimize your code to lower power consumption.
    • Ensure proper ventilation around the board.

Solutions and Tips for Troubleshooting

  • Debugging: Use the Serial Monitor in the Arduino IDE to print debug messages and identify issues.
  • Firmware Updates: Check for the latest firmware updates for the ESP32 S3 Pico to ensure compatibility and performance.
  • Community Support: Visit the Arduino forums or ESP32 community for additional help and resources.

By following this documentation, you can effectively utilize the ESP32 S3 Pico for your IoT and embedded system projects.