Waveshare · ESP32-S3 · 7.0" · 1024×600
Waveshare ESP32-S3-LCD-7B specifications
The Waveshare ESP32-S3-Touch-LCD-7B is a 7-inch industrial-style display board with an unusually high resolution for an ESP32: 1024×600 pixels on an IPS panel with 170° viewing angles and 235 cd/m² brightness. Waveshare also sells it without touch as the ESP32-S3-LCD-7B; the touch version adds a 5-point capacitive GT911 behind toughened glass.
Its real strength is connectivity. Next to Wi-Fi and Bluetooth, the board has a CAN transceiver (TJA1051), an RS485 interface — both with switchable 120 Ω termination — I2C, a selectable UART, a microSD slot and a lithium battery charger. An I/O expander takes care of the backlight, the display power, the touch reset and the USB/CAN switch, which frees the ESP32-S3's pins for the 16-bit RGB display.
It is one of the boards we run LCD Ultra Pro on ourselves: the driver is verified on real hardware, and USB Live streams the editor canvas to the panel while you design.
- Screen
- 7.0" · 1024×600
- Chip
- ESP32-S3
- Memory
- 16 MB flash, 8 MB PSRAM
- Input
- capacitive touch
Key features
- 7-inch IPS, 1024×600, 170° viewing angle, 235 cd/m²
- 5-point capacitive touch (GT911) behind toughened glass
- ESP32-S3-WROOM-1-N16R8: 16 MB flash, 8 MB PSRAM
- CAN (TJA1051) and RS485 with switchable termination
- Lithium battery charging, microSD slot, I2C and UART connectors
- Verified on real hardware, USB Live in landscape and portrait
Specifications
| Manufacturer | Waveshare |
|---|---|
| Screen size | 7.0" |
| Resolution | 1024×600 px |
| Colour depth | 16-bit |
| Display controller | RGB Parallel |
| Display interface | RGB565 Parallel |
| Touch | GT911 (I2C) |
| Microcontroller | ESP32-S3 |
| Module | ESP32-S3-WROOM-1-N16R8 |
| CPU clock | 240 MHz |
| Internal SRAM | 512 KB |
| PSRAM | 8 MB |
| Flash | 16 MB |
| Wi-Fi | Yes |
| Bluetooth | Yes |
| Display type | IPS, 65K colours, 170° viewing angle, 235 cd/m² |
| Power | 5 V over USB-C, about 350 mA |
| Battery | 3.7 V lithium cell (PH2.0), CS8501 charger, 580 mA charge current |
| USB | USB-C native USB + USB-C USB-to-UART (CH343) |
| Industrial interfaces | CAN (TJA1051), RS485, both with 120 Ω DIP-switch termination |
| Other interfaces | I2C, UART1/UART2 (switch-selectable), microSD (TF), sensor/ADC header, 5 V output |
| Buttons and LEDs | BOOT, RESET; power, charge and done LEDs |
| Dimensions (touch version) | 192.96 × 110.76 mm |
| Operating temperature | 0 °C to 65 °C |
| Development platforms (manufacturer) | Arduino IDE (LVGL 8.4), ESP-IDF, PlatformIO |
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 6 | GPIO, ADC, PWM | On the GPIO connector (J8: 3V3 / GND / GP6) — ADC1_CH5 |
| GPIO 11 | GPIO, PWM | microSD slot MOSI — not on a connector |
| GPIO 12 | GPIO, PWM | microSD slot SCK — not on a connector |
| GPIO 13 | GPIO, PWM | microSD slot MISO — not on a connector |
| GPIO 19 | GPIO, PWM, USB_DM | USB D- / CAN RX (switched by the IO expander) — not a plain GPIO on a connector |
| GPIO 20 | GPIO, PWM, USB_DP | USB D+ / CAN TX (switched by the IO expander) — not a plain GPIO on a connector |
| GPIO 43/TX | GPIO, UART_TX | UART0 TX — on the UART2 connector (H3) when switch SW1 selects it (shared with the USB-to-UART port) |
| GPIO 44/RX | GPIO, UART_RX | UART0 RX — on the UART2 connector (H3) when switch SW1 selects it (shared with the USB-to-UART port) |
- GPIO connector (J8) — GPIO 6
- I2C connector (H1) — GPIO 8, 9 (SDA, SCL)
Same I2C bus as the touch controller (GT911) and the IO expander (CH422G)
- UART2 connector (H3) — GPIO 43, 44 (TX, RX)
Only when switch SW1 selects UART2 — shared with the USB-to-UART port
Good to know before you start
- The only plain free GPIO is GPIO 6 on the J8 header (3V3 / GND / GP6), and it is ADC-capable. Add more I/O through the I2C connector.
- Native USB and CAN share GPIO 19/20 — the I/O expander switches between them, so you cannot use the native USB port and CAN at the same time.
- The UART2 connector shares UART0 with the USB-to-UART port and is only active when switch SW1 selects it.
- Waveshare recommends a lithium cell under 2000 mAh; the charge current is about 580 mA.
What it is good for
- •Industrial HMIs on CAN or RS485 (Modbus RTU) networks
- •Large smart home control panels with crisp text
- •Vehicle and machine dashboards
- •Detailed charts and multi-tile layouts at 1024×600
LVGL support in LCD Ultra Pro
| Driver status | Verified on real hardware |
|---|---|
| Arduino export | Complete LVGL 8.4 project with the display driver |
| USB Live preview | Yes, also in portrait |
| 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
What is the difference between the ESP32-S3-LCD-7B and the ESP32-S3-Touch-LCD-7B?
The Touch version adds a 5-point capacitive GT911 touch panel behind toughened glass; the electronics and the 1024×600 display are otherwise the same.
Does the Waveshare 7B support CAN and RS485?
Yes. It has a TJA1051 CAN transceiver and an RS485 interface, each with a 120 Ω termination resistor that can be switched on with a DIP switch.
Can I use native USB and CAN together?
No. They share GPIO 19 and 20, and the on-board I/O expander switches the pins to one or the other.
Is the LVGL driver tested on real hardware?
Yes. The Waveshare 7B is in LCD Ultra Pro's Verified tier, and USB Live works on it in both landscape and portrait.
Sources
Specifications cross-checked against the manufacturer’s documentation (last checked 2026-10-04):
Last updated: