ESP32-S3-Touch-AMOLED-2.16
This product is a high-performance, highly integrated microcontroller development board designed by Waveshare. Despite its compact size, it features an onboard 2.16inch capacitive HD AMOLED screen, a highly integrated power management chip, a 6-axis IMU (3-axis accelerometer and 3-axis gyroscope), an RTC, a low-power audio codec chip, and echo cancellation circuitry, facilitating development and integration into end products.
If you are looking for:
- Accelerating development with AI tools: Share this page link with AI tools to help them accurately understand the board hardware and generate usable code.
- Developing with Arduino IDE: See Working with Arduino
- Developing with ESP-IDF: See Working with ESP-IDF
- Downloading schematics, datasheets, and example code: See Related Resources
- Having issues: See Product FAQ or contact Technical Support
| SKU | Product |
|---|---|
| 33969 | ESP32-S3-Touch-AMOLED-2.16 |
| 33970 | ESP32-S3-Touch-AMOLED-2.16-EN |
Onboard Resources

- ESP32-S3R8 Wi-Fi and Bluetooth SoC, up to 240MHz operating frequency, with onboard 8MB PSRAM
- 16MB NOR Flash
- AXP2101 Highly integrated power management chip
- Onboard Chip Antenna Supports 2.4GHz Wi-Fi (802.11 b/g/n) and Bluetooth 5 (LE)
- Type-C Port ESP32-S3 USB port for programming and log output
- MX1.25 lithium battery header MX1.25 2PIN connector for connecting a 3.7V lithium battery, supports charging and discharging
- IPEX 1 Antenna Connector Can be switched to an external antenna by changing the resistors
- TF card slot
- Dual-microphone Design Combined with echo cancellation circuitry for higher quality audio capture
- GPIO 18 Button Supports custom functions
- PWR Power Button Controls power on/off and supports custom functions
- BOOT button Used for device startup and functional debugging
- QMI8658 6-axis IMU includes a 3-axis gyroscope and a 3-axis accelerometer
- Screen Interface
Peripheral Quick Reference
| Peripheral | Device / Function | Interface | Main Pins | Description |
|---|---|---|---|---|
| Main controller | ESP32-S3R8 | - | - | ESP32-S3, with embedded PSRAM |
| Display | 2.16inch AMOLED, CO5300 driver | QSPI | GPIO4/5/6/7/38/12/39 | 480 x 480, QSPI quad-data line |
| Touch | CST9220 | I2C + INT + RST | GPIO14/15/11/40 | Shares I2C with RTC, IMU, PMU, audio codec |
| Power management | AXP2101 | I2C | GPIO14/15 | Manages power, battery/USB detection, etc. |
| IMU | QMI8658A / QMI8658C | I2C + INT | GPIO14/15/17/21 | 6/9-axis sensor; QMI_INT1, QMI_INT2 connected to GPIO17, GPIO21 |
| RTC | PCF85063ATL | I2C + INT | GPIO14/15/13 | RTC interrupt connected to GPIO13 |
| TF | TF card slot | SD SPI | GPIO1/2/3/41 | BSP uses CMD=GPIO1, CLK=GPIO2, D0=GPIO3; schematic also shows SDCS=GPIO41 |
| Audio codec | ES8311 | I2C + I2S | GPIO8/9/42/45/46 | Speaker playback; GPIO46 is amplifier control |
| Microphone ADC | ES7210 | I2C + I2S | GPIO9/10/42/45 | Dual digital microphone array capture |
| I2C bus | Onboard shared I2C | I2C | GPIO14=SCL, GPIO15=SDA | Connects touch, AXP2101, QMI8658, RTC, codec, etc. |
| USB | USB D-/D+ | USB | GPIO19/20 | ESP32-S3 native USB |
| UART | UART0 | UART | GPIO43/44 | GPIO43=U0TXD, GPIO44=U0RXD |
| Buttons / system outputs | BOOT, CHIP_PU, GPIO18, PWRON, SYS_OUT | GPIO / PMU | GPIO0/18/16 | GPIO18 to Key3; GPIO16 is SYS_OUT as marked on schematic |
Pinout Definition
GPIO Pin Assignments
| GPIO | Function | Connected to / Remarks |
|---|---|---|
GPIO0 | BOOT / download mode | ESP32-S3 boot configuration pin; use with caution |
GPIO1 | SD MOSI / CMD | TF |
GPIO2 | SD SCK / CLK | TF |
GPIO3 | SD MISO / D0 | TF |
GPIO4 | LCD QSPI_SIO0 | AMOLED QSPI data 0 |
GPIO5 | LCD QSPI_SI1 | AMOLED QSPI data 1 |
GPIO6 | LCD QSPI_SI2 | AMOLED QSPI data 2 |
GPIO7 | LCD QSPI_SI3 | AMOLED QSPI data 3 |
GPIO8 | I2S_DSDIN | ES8311 audio data input, speaker playback path |
GPIO9 | I2S_SCLK / BCLK | Shared I2S bit clock for ES8311, ES7210 |
GPIO10 | I2S_ASDOUT | ES7210 microphone ADC data output to ESP32-S3 |
GPIO11 | TP_INT | Touch interrupt |
GPIO12 | LCD_CS | AMOLED chip select |
GPIO13 | RTC_INT | PCF85063ATL RTC interrupt |
GPIO14 | TP_SCL / ESP32_SCL / RTC_SCL | Onboard shared I2C SCL |
GPIO15 | TP_SDA / ESP32_SDA / RTC_SDA | Onboard shared I2C SDA |
GPIO16 | SYS_OUT | Power / system output related signal |
GPIO17 | QMI_INT1 | QMI8658 interrupt 1 |
GPIO18 | KEY3 | User button, pulled up to VCC3V3 via R18 10K, shorted to GND when pressed |
GPIO19 | USB_N | ESP32-S3 native USB D- |
GPIO20 | USB_P | ESP32-S3 native USB D+ |
GPIO21 | QMI_INT2 | QMI8658 interrupt 2 |
GPIO38 | LCD QSPI_SCL | AMOLED QSPI clock |
GPIO39 | LCD_RESET | AMOLED reset |
GPIO40 | TP_RESET | Touch reset |
GPIO41 | SDCS | TF chip select |
GPIO42 | I2S_MCLK | Audio master clock for ES8311, ES7210 |
GPIO43 | U0TXD | UART0 TX |
GPIO44 | U0RXD | UART0 RX |
GPIO45 | I2S_LRCK | I2S left/right channel clock for ES8311, ES7210 |
GPIO46 | PA_CTRL | Speaker amplifier enable / control |
LCD and Touch Pins
| Signal | GPIO | Description |
|---|---|---|
LCD_CS | GPIO12 | QSPI chip select |
QSPI_SIO0 | GPIO4 | QSPI data 0 |
QSPI_SI1 | GPIO5 | QSPI data 1 |
QSPI_SI2 | GPIO6 | QSPI data 2 |
QSPI_SI3 | GPIO7 | QSPI data 3 |
QSPI_SCL | GPIO38 | QSPI clock |
LCD_RESET | GPIO39 | Display reset |
TP_SCL | GPIO14 | Touch I2C SCL |
TP_SDA | GPIO15 | Touch I2C SDA |
TP_INT | GPIO11 | Touch interrupt |
TP_RESET | GPIO40 | Touch reset |
Audio Pins
| Signal | GPIO | Connected to | Description |
|---|---|---|---|
I2S_MCLK | GPIO42 | ES8311 / ES7210 | Audio master clock |
I2S_SCLK | GPIO9 | ES8311 / ES7210 | I2S BCLK |
I2S_LRCK | GPIO45 | ES8311 / ES7210 | I2S WS / LRCK |
I2S_DSDIN | GPIO8 | ES8311 | Playback data from ESP32-S3 to ES8311 |
I2S_ASDOUT | GPIO10 | ES7210 | Recording data from ES7210 to ESP32-S3 |
PA_CTRL | GPIO46 | Amplifier | Speaker amplifier control |
ESP32_SCL | GPIO14 | ES8311 / ES7210 control | I2C SCL |
ESP32_SDA | GPIO15 | ES8311 / ES7210 control | I2C SDA |
TF Card Pins
| Signal | GPIO | Description |
|---|---|---|
SD_MOSI / SD_CMD | GPIO1 | TF command line |
SD_SCK / SD_CLK | GPIO2 | TF clock |
SD_MISO / SD_D0 | GPIO3 | TF data 0 |
SDCS | GPIO41 | TF chip select |
Button Pins
| Button / Signal | GPIO / Signal | Description |
|---|---|---|
Key3 | GPIO18 | User button, default pulled up, shorted to GND when pressed |
Key2 | GPIO0 / CHIP_PU | Button area connects both GPIO0 and CHIP_PU; related to startup/reset, use with caution |
Key1 | PWRON | PMU power button input |
SYS_OUT | GPIO16 | System output / power-related control signal |
I2C Device Summary
| Device | Model | I2C Pins | Additional interrupt / control |
|---|---|---|---|
| Touch | CST9220 | GPIO14 / GPIO15 | TP_INT=GPIO11, TP_RESET=GPIO40 |
| Power management | AXP2101 | GPIO14 / GPIO15 | Power-related interrupts via PMU |
| IMU | QMI8658A / QMI8658C | GPIO14 / GPIO15 | QMI_INT1=GPIO17, QMI_INT2=GPIO21 |
| RTC | PCF85063ATL | GPIO14 / GPIO15 | RTC_INT=GPIO13 |
| Audio codec | ES8311 / ES7210 | GPIO14 / GPIO15 | I2S see "Audio Pins" |
Precautions
GPIO14andGPIO15are the onboard shared I2C bus, already connected to multiple devices. When adding external I2C devices, be aware of address conflicts and bus levels.GPIO19andGPIO20are the ESP32-S3 native USB pins. Do not occupy them as general-purpose GPIO.GPIO43andGPIO44are UART0, typically used for downloading and debug logs.GPIO0is related to boot mode; it is not recommended to permanently use it as a normal peripheral.GPIO18is connected to the onboardKey3. When used as a regular GPIO, consider the pull-up and the level effect when the button is pressed (shorted to GND).
Dimensions

Development Methods
The ESP32-S3-Touch-AMOLED-2.16 supports both the Arduino IDE and ESP-IDF development frameworks, giving developers flexible options. You can choose the development tool that best suits your project needs and personal preferences.
Arduino generally offers a gentler learning curve and may be more approachable for beginners and hobbyists. ESP-IDF provides advanced tooling and finer control over system behavior, making it better suited to complex projects and applications with demanding performance requirements.
-
Arduino IDE is a convenient, flexible, and easy-to-use open-source electronics prototyping platform. It requires minimal foundational knowledge, allowing for rapid development after a short learning period. Arduino has a huge global user community, providing a vast amount of open-source code, project examples, and tutorials, as well as a rich library ecosystem that encapsulates complex functions, enabling developers to implement various features rapidly. You can refer to the Working with Arduino to complete the initial setup, and the tutorial also provides related example programs for reference.
-
ESP-IDF, short for Espressif IoT Development Framework, is a professional development framework launched by Espressif Systems for its ESP series of chips. It is based on C language development and includes compilers, debuggers, flashing tools, etc. It supports development via command line or integrated development environments (such as Visual Studio Code with the Espressif IDF plugin), which provides features like code navigation, project management, and debugging. We recommend using VS Code for development. For the specific configuration process, please refer to the Working with ESP-IDF. The tutorial also provides relevant example programs for reference.
