

The ESP32-S3-Tiny is a compact, low-power microcontroller module manufactured by Waveshare. It features integrated Wi-Fi and Bluetooth connectivity, making it an ideal choice for Internet of Things (IoT) applications, edge computing, and smart devices. With its dual-core processor, ample memory, and support for AI acceleration, the ESP32-S3-Tiny is designed to handle complex tasks while maintaining energy efficiency.








The following table outlines the key technical details of the ESP32-S3-Tiny:
| Parameter | Specification |
|---|---|
| Microcontroller | ESP32-S3 (Xtensa® 32-bit LX7 dual-core processor) |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 8 MB (external SPI flash) |
| RAM | 512 KB SRAM + 2 MB PSRAM |
| Wi-Fi | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | Bluetooth 5.0 (LE) |
| GPIO Pins | 21 (multiplexed with other functions) |
| Operating Voltage | 3.3V |
| Power Supply Range | 3.0V to 3.6V |
| Current Consumption | 10 µA (deep sleep), ~240 mA (active Wi-Fi) |
| Interfaces | UART, SPI, I2C, I2S, PWM, ADC, DAC, USB-OTG |
| AI Acceleration | Vector instructions for AI/ML workloads |
| Dimensions | 18 mm x 25.5 mm |
The ESP32-S3-Tiny has a total of 21 GPIO pins, which are multiplexed with other peripheral functions. Below is the pinout description:
| Pin | Name | Function |
|---|---|---|
| 1 | GND | Ground |
| 2 | 3V3 | 3.3V Power Supply |
| 3 | EN | Enable pin (active high) |
| 4 | IO0 | GPIO0, boot mode selection, ADC, touch sensor |
| 5 | IO1 | GPIO1, UART TX, ADC |
| 6 | IO2 | GPIO2, UART RX, ADC |
| 7 | IO3 | GPIO3, SPI MOSI, ADC |
| 8 | IO4 | GPIO4, SPI MISO, ADC |
| 9 | IO5 | GPIO5, SPI CLK, ADC |
| 10 | IO6 | GPIO6, I2C SDA |
| 11 | IO7 | GPIO7, I2C SCL |
| 12 | IO8 | GPIO8, PWM, ADC |
| 13 | IO9 | GPIO9, PWM, ADC |
| 14 | IO10 | GPIO10, UART CTS |
| 15 | IO11 | GPIO11, UART RTS |
| 16 | IO12 | GPIO12, USB D+ |
| 17 | IO13 | GPIO13, USB D- |
| 18 | IO14 | GPIO14, DAC output |
| 19 | IO15 | GPIO15, DAC output |
| 20 | IO16 | GPIO16, PWM |
| 21 | IO17 | GPIO17, PWM |
The ESP32-S3-Tiny can communicate with an Arduino UNO via UART. Below is an example of Arduino code to send data to the ESP32-S3-Tiny:
// Example: Sending data from Arduino UNO to ESP32-S3-Tiny via UART
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial espSerial(10, 11); // RX = pin 10, TX = pin 11
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging with PC
espSerial.begin(115200); // Communication with ESP32-S3-Tiny
Serial.println("Arduino is ready to communicate with ESP32-S3-Tiny.");
}
void loop() {
// Send a message to the ESP32-S3-Tiny
espSerial.println("Hello from Arduino!");
Serial.println("Message sent to ESP32-S3-Tiny.");
// Wait for a response from the ESP32-S3-Tiny
if (espSerial.available()) {
String response = espSerial.readString();
Serial.println("Response from ESP32-S3-Tiny: " + response);
}
delay(1000); // Wait 1 second before sending the next message
}
Module Not Responding
Code Upload Fails
Wi-Fi Connection Fails
High Power Consumption
Q: Can the ESP32-S3-Tiny operate at 5V?
A: No, the ESP32-S3-Tiny operates at 3.3V. Applying 5V to any pin may damage the module.
Q: Does the ESP32-S3-Tiny support OTA updates?
A: Yes, the ESP32-S3-Tiny supports Over-The-Air (OTA) firmware updates.
Q: How do I reset the module?
A: Pull the EN pin low momentarily to reset the module.
Q: Can I use the ESP32-S3-Tiny for AI applications?
A: Yes, the module includes vector instructions for AI/ML workloads, making it suitable for lightweight AI tasks.