Waveshare · ESP32-S3 · 2.0" · 240×320
Waveshare ESP32-S3 Touch LCD 2.0" (with camera) specifications
The Waveshare ESP32-S3-Touch-LCD-2 is a 2-inch touch display board with a camera socket on the back — a combination that makes it a small camera viewer, QR-code scanner or AI-vision front end, not just a display.
The 240×320 panel uses an ST7789T3 controller with 262K colours and reaches about 530 cd/m². Touch is handled by a CST816D on I2C. The 24-pin camera connector accepts OV2640 and OV5640 modules, and the ESP32-S3R8's 8 MB of PSRAM gives it room for camera frames.
A QMI8658 6-axis IMU, a microSD slot and a lithium battery charger round it off, with 16 MB of flash and a USB-C port for power, download and debugging. LCD Ultra Pro supports the board in portrait and landscape; the exported Arduino project contains the display and touch driver, so you can concentrate on the interface around the camera.
- Screen
- 2.0" · 240×320
- Chip
- ESP32-S3
- Memory
- 16 MB flash, 8 MB PSRAM
- Input
- capacitive touch
Key features
- 2-inch 240×320, ST7789T3, about 530 cd/m²
- Capacitive touch (CST816D)
- 24-pin camera socket for OV2640 / OV5640
- ESP32-S3R8: 8 MB PSRAM, 16 MB flash
- QMI8658 IMU, microSD slot
- Lithium battery charging
Specifications
| Manufacturer | Waveshare |
|---|---|
| Screen size | 2.0" |
| Resolution | 240×320 px |
| Colour depth | 16-bit |
| Display controller | ST7789 (SPI) |
| Display interface | SPI |
| Touch | CST816 (capacitive, I2C, addr: 0x15) |
| Microcontroller | ESP32-S3 |
| Module | ESP32-S3R8 |
| CPU clock | 240 MHz |
| Internal SRAM | 512 KB |
| PSRAM | 8 MB |
| Flash | 16 MB |
| Wi-Fi | Yes |
| Bluetooth | Yes |
| Display type | 262K colours, about 530 cd/m² |
| Touch | Capacitive, CST816D (I2C) |
| Camera | 24-pin socket, OV2640 / OV5640 compatible |
| IMU | QMI8658 6-axis with temperature sensor |
| Storage | microSD (FAT32, 32 GB or smaller recommended) |
| Battery | 3.7 V MX1.25 header with charging chip |
| Development platforms (manufacturer) | Arduino IDE, ESP-IDF (VS Code plugin) |
Free GPIOs and connectors
These GPIOs are not used by the display, touch or on-board peripherals, so you can wire your own sensors, buttons or relays to them.
| Pin | Capabilities | Note |
|---|---|---|
| GPIO 0 | GPIO, BOOT | Boot button |
| GPIO 3 | GPIO, ADC | Free |
| GPIO 5 | GPIO, ADC | Free |
| GPIO 43/TX | GPIO, UART_TX | UART0 TX |
| GPIO 44/RX | GPIO, UART_RX | UART0 RX |
Good to know before you start
- The camera uses most of the remaining pins: only GPIO 3 and 5 are free besides BOOT and UART0.
- Rotation to 90° (320×240) is supported.
- Camera frames need PSRAM — keep the UI light when streaming images.
- Waveshare recommends FAT32 microSD cards of 32 GB or less.
What it is good for
- •Camera viewers and QR-code scanners
- •AI-vision prototypes with a local display
- •Portable handheld tools
- •Small touch dashboards
LVGL support in LCD Ultra Pro
| Driver status | Matched to the manufacturer’s official demo, compile-tested |
|---|---|
| Arduino export | Complete LVGL 8.4 project with the display driver |
| USB Live preview | No |
| Orientations | 0°, 90° |
| Brightness control | Hardware backlight dimming |
Pick this board in the editor and the canvas matches its exact resolution and shape. Build the interface with widgets, add events without code, try it in Live Preview, then export it as a ready-to-compile Arduino project. See the documentation for the workflow.
Frequently asked questions
Which cameras work with the ESP32-S3-Touch-LCD-2?
Waveshare lists OV2640 and OV5640 modules on the 24-pin camera socket.
Which touch controller does it use?
A CST816D capacitive touch controller on I2C.
How much PSRAM does it have?
8 MB on the ESP32-S3R8, with 16 MB of flash.
Are there free GPIOs?
Few: GPIO 3 and 5, plus GPIO 0 (BOOT) and UART0 on GPIO 43/44.
Sources
Specifications cross-checked against the manufacturer’s documentation (last checked 2026-10-04):
Last updated: