

The ESP32S3 board, manufactured by Custom, is a versatile and powerful microcontroller designed for Internet of Things (IoT) applications. It features dual-core processing, integrated Wi-Fi and Bluetooth connectivity, and a wide array of GPIO pins. This board is ideal for projects requiring wireless communication, edge computing, or advanced sensor integration. Its robust performance and support for various peripherals make it a popular choice for hobbyists, developers, and engineers alike.








The ESP32S3 board offers a rich set of features and capabilities. Below are its key technical specifications:
| Specification | Details |
|---|---|
| Processor | Dual-core Xtensa® LX7, up to 240 MHz |
| Wireless Connectivity | Wi-Fi 802.11 b/g/n (2.4 GHz), Bluetooth 5.0 LE |
| Flash Memory | 4 MB (expandable, depending on the variant) |
| SRAM | 512 KB internal, with additional PSRAM support |
| GPIO Pins | 45 (configurable for digital I/O, ADC, DAC, PWM, etc.) |
| ADC Channels | 14 channels, 12-bit resolution |
| DAC Channels | 2 channels, 8-bit resolution |
| Communication Interfaces | UART, SPI, I2C, I2S, CAN, RMT, and USB OTG |
| Operating Voltage | 3.3V |
| Power Supply | USB-C (5V input) or external 3.3V source |
| Dimensions | 50 mm x 25 mm |
| Operating Temperature | -40°C to +85°C |
The ESP32S3 board has a flexible pinout. Below is a table summarizing the key pins and their functions:
| Pin | Name | Description |
|---|---|---|
| 1 | GND | Ground pin |
| 2 | 3V3 | 3.3V power output |
| 3 | EN | Enable pin (active high) |
| 4 | GPIO0 | General-purpose I/O, used for boot mode selection |
| 5 | GPIO1-45 | Configurable GPIO pins for digital I/O, ADC, DAC, PWM, etc. |
| 6 | TXD0/RXD0 | UART0 transmit/receive pins (default serial communication) |
| 7 | SCL/SDA | I2C clock and data lines |
| 8 | MOSI/MISO/SCK | SPI interface pins |
| 9 | USB_DM/USB_DP | USB data lines for OTG functionality |
| 10 | VBUS | USB power input (5V) |
Powering the Board:
Programming the Board:
Connecting Peripherals:
Uploading Code:
Below is an example of using the ESP32S3 to read a temperature sensor and send data via Wi-Fi:
#include <WiFi.h> // Include the Wi-Fi library
// Wi-Fi credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";
// Pin configuration
const int tempSensorPin = 34; // GPIO34 for analog input
void setup() {
Serial.begin(115200); // Initialize serial communication
pinMode(tempSensorPin, INPUT); // Set the sensor pin as input
// Connect to Wi-Fi
Serial.print("Connecting to Wi-Fi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWi-Fi connected!");
}
void loop() {
// Read temperature sensor value
int sensorValue = analogRead(tempSensorPin);
float voltage = sensorValue * (3.3 / 4095.0); // Convert ADC value to voltage
float temperature = (voltage - 0.5) * 100.0; // Convert voltage to temperature
// Print temperature to Serial Monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
delay(2000); // Wait 2 seconds before the next reading
}
Board Not Detected by Computer:
Code Upload Fails:
Wi-Fi Connection Issues:
Unstable Operation:
Q: Can the ESP32S3 board run on battery power?
A: Yes, the board can be powered by a 3.7V LiPo battery with a suitable voltage regulator.
Q: Does the ESP32S3 support over-the-air (OTA) updates?
A: Yes, the ESP32S3 supports OTA updates, allowing you to upload new firmware wirelessly.
Q: Can I use the ESP32S3 for machine learning applications?
A: Absolutely! The ESP32S3 has hardware acceleration for AI tasks and supports frameworks like TensorFlow Lite.
Q: Is the ESP32S3 compatible with Arduino libraries?
A: Yes, the ESP32S3 is fully compatible with most Arduino libraries, making it easy to integrate into existing projects.