From 60af13480214334484c3e2e53c9c932646824457 Mon Sep 17 00:00:00 2001
From: H-sw123 <1150857014@qq.com>
Date: Thu, 14 Nov 2024 15:01:36 +0800
Subject: [PATCH 1/2] Add Waveshare 7 and 4.3B and 5 and 5B
---
.../waveshare/ESP32_S3_Touch_LCD_4_3_B.h | 273 ++++++++++++++++++
src/board/waveshare/ESP32_S3_Touch_LCD_5.h | 273 ++++++++++++++++++
src/board/waveshare/ESP32_S3_Touch_LCD_5_B.h | 273 ++++++++++++++++++
src/board/waveshare/ESP32_S3_Touch_LCD_7.h | 273 ++++++++++++++++++
4 files changed, 1092 insertions(+)
create mode 100644 src/board/waveshare/ESP32_S3_Touch_LCD_4_3_B.h
create mode 100644 src/board/waveshare/ESP32_S3_Touch_LCD_5.h
create mode 100644 src/board/waveshare/ESP32_S3_Touch_LCD_5_B.h
create mode 100644 src/board/waveshare/ESP32_S3_Touch_LCD_7.h
diff --git a/src/board/waveshare/ESP32_S3_Touch_LCD_4_3_B.h b/src/board/waveshare/ESP32_S3_Touch_LCD_4_3_B.h
new file mode 100644
index 00000000..c6708dcd
--- /dev/null
+++ b/src/board/waveshare/ESP32_S3_Touch_LCD_4_3_B.h
@@ -0,0 +1,273 @@
+/*
+ * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#pragma once
+
+// *INDENT-OFF*
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Please update the following macros to configure the LCD panel /////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 1 when using an LCD panel */
+#define ESP_PANEL_USE_LCD (1) // 0/1
+
+#if ESP_PANEL_USE_LCD
+/**
+ * LCD Controller Name
+ */
+#define ESP_PANEL_LCD_NAME ST7262
+
+/* LCD resolution in pixels */
+#define ESP_PANEL_LCD_WIDTH (800)
+#define ESP_PANEL_LCD_HEIGHT (480)
+
+/* LCD Bus Settings */
+/**
+ * If set to 1, the bus will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_LCD_BUS_SKIP_INIT_HOST (1) // 0/1
+/**
+ * LCD Bus Type.
+ */
+#define ESP_PANEL_LCD_BUS_TYPE (ESP_PANEL_BUS_TYPE_RGB)
+/**
+ * LCD Bus Parameters.
+ *
+ * Please refer to https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/lcd.html and
+ * https://docs.espressif.com/projects/esp-iot-solution/en/latest/display/lcd/index.html for more details.
+ *
+ */
+#if ESP_PANEL_LCD_BUS_TYPE == ESP_PANEL_BUS_TYPE_RGB
+
+ #define ESP_PANEL_LCD_RGB_CLK_HZ (16 * 1000 * 1000)
+ #define ESP_PANEL_LCD_RGB_HPW (4)
+ #define ESP_PANEL_LCD_RGB_HBP (8)
+ #define ESP_PANEL_LCD_RGB_HFP (8)
+ #define ESP_PANEL_LCD_RGB_VPW (4)
+ #define ESP_PANEL_LCD_RGB_VBP (8)
+ #define ESP_PANEL_LCD_RGB_VFP (8)
+ #define ESP_PANEL_LCD_RGB_PCLK_ACTIVE_NEG (1) // 0: rising edge, 1: falling edge
+
+ // | 8-bit RGB888 | 16-bit RGB565 |
+ // |--------------|---------------|
+ #define ESP_PANEL_LCD_RGB_DATA_WIDTH (16) // | 8 | 16 |
+ #define ESP_PANEL_LCD_RGB_PIXEL_BITS (16) // | 24 | 16 |
+
+ #define ESP_PANEL_LCD_RGB_BOUNCE_BUF_SIZE (ESP_PANEL_LCD_WIDTH * 10) // Bounce buffer size in bytes. This function is used to avoid screen drift.
+ // To enable the bounce buffer, set it to a non-zero value. Typically set to `ESP_PANEL_LCD_WIDTH * 10`
+ // The size of the Bounce Buffer must satisfy `width_of_lcd * height_of_lcd = size_of_buffer * N`,
+ // where N is an even number.
+ #define ESP_PANEL_LCD_RGB_IO_HSYNC (46)
+ #define ESP_PANEL_LCD_RGB_IO_VSYNC (3)
+ #define ESP_PANEL_LCD_RGB_IO_DE (5) // -1 if not used
+ #define ESP_PANEL_LCD_RGB_IO_PCLK (7)
+ #define ESP_PANEL_LCD_RGB_IO_DISP (-1) // -1 if not used
+
+ // | RGB565 | RGB666 | RGB888 |
+ // |--------|--------|--------|
+ #define ESP_PANEL_LCD_RGB_IO_DATA0 (14) // | B0 | B0-1 | B0-3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA1 (38) // | B1 | B2 | B4 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA2 (18) // | B2 | B3 | B5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA3 (17) // | B3 | B4 | B6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA4 (10) // | B4 | B5 | B7 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA5 (39) // | G0 | G0 | G0-2 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA6 (0) // | G1 | G1 | G3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA7 (45) // | G2 | G2 | G4 |
+#if ESP_PANEL_LCD_RGB_DATA_WIDTH > 8
+ #define ESP_PANEL_LCD_RGB_IO_DATA8 (48) // | G3 | G3 | G5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA9 (47) // | G4 | G4 | G6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA10 (21) // | G5 | G5 | G7 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA11 (1) // | R0 | R0-1 | R0-3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA12 (2) // | R1 | R2 | R4 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA13 (42) // | R2 | R3 | R5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA14 (41) // | R3 | R4 | R6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA15 (40) // | R4 | R5 | R7 |
+#endif
+#if !ESP_PANEL_LCD_BUS_SKIP_INIT_HOST
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_CS (0)
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_SCK (1)
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_SDA (2)
+ #define ESP_PANEL_LCD_3WIRE_SPI_CS_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SCL_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SDA_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SCL_ACTIVE_EDGE (0) // 0: rising edge, 1: falling edge
+ #define ESP_PANEL_LCD_FLAGS_AUTO_DEL_PANEL_IO (0) // Delete the panel IO instance automatically if set to 1.
+ // If the 3-wire SPI pins are sharing other pins of the RGB interface to save GPIOs,
+ // Please set it to 1 to release the panel IO and its pins (except CS signal).
+ #define ESP_PANEL_LCD_FLAGS_MIRROR_BY_CMD (!ESP_PANEL_LCD_FLAGS_AUTO_DEL_PANEL_IO)
+ // The `mirror()` function will be implemented by LCD command if set to 1.
+#endif
+
+#endif /* ESP_PANEL_LCD_BUS_TYPE */
+
+/**
+ * LCD Vendor Initialization Commands.
+ *
+ * Vendor specific initialization can be different between manufacturers, should consult the LCD supplier for
+ * initialization sequence code. Please uncomment and change the following macro definitions. Otherwise, the LCD driver
+ * will use the default initialization sequence code.
+ *
+ * There are two formats for the sequence code:
+ * 1. Raw data: {command, (uint8_t []){ data0, data1, ... }, data_size, delay_ms}
+ * 2. Formatter: ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(delay_ms, command, { data0, data1, ... }) and
+ * ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(delay_ms, command)
+ */
+/*
+#define ESP_PANEL_LCD_VENDOR_INIT_CMD() \
+ { \
+ {0xFF, (uint8_t []){0x77, 0x01, 0x00, 0x00, 0x10}, 5, 0}, \
+ {0xC0, (uint8_t []){0x3B, 0x00}, 2, 0}, \
+ {0xC1, (uint8_t []){0x0D, 0x02}, 2, 0}, \
+ {0x29, (uint8_t []){0x00}, 0, 120}, \
+ or \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xFF, {0x77, 0x01, 0x00, 0x00, 0x10}), \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xC0, {0x3B, 0x00}), \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xC1, {0x0D, 0x02}), \
+ ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(120, 0x29), \
+ }
+*/
+
+/* LCD Color Settings */
+/* LCD color depth in bits */
+#define ESP_PANEL_LCD_COLOR_BITS (16) // 8/16/18/24
+/*
+ * LCD RGB Element Order. Choose one of the following:
+ * - 0: RGB
+ * - 1: BGR
+ */
+#define ESP_PANEL_LCD_BGR_ORDER (0) // 0/1
+#define ESP_PANEL_LCD_INEVRT_COLOR (0) // 0/1
+
+/* LCD Transformation Flags */
+#define ESP_PANEL_LCD_SWAP_XY (0) // 0/1
+#define ESP_PANEL_LCD_MIRROR_X (0) // 0/1
+#define ESP_PANEL_LCD_MIRROR_Y (0) // 0/1
+
+/* LCD Other Settings */
+/* IO num of RESET pin, set to -1 if not use */
+#define ESP_PANEL_LCD_IO_RST (-1)
+#define ESP_PANEL_LCD_RST_LEVEL (0) // 0: low level, 1: high level
+
+#endif /* ESP_PANEL_USE_LCD */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Please update the following macros to configure the touch panel ///////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 1 when using an touch panel */
+#define ESP_PANEL_USE_TOUCH (1) // 0/1
+#if ESP_PANEL_USE_TOUCH
+/**
+ * Touch controller name
+ */
+#define ESP_PANEL_TOUCH_NAME GT911
+
+/* Touch resolution in pixels */
+#define ESP_PANEL_TOUCH_H_RES (ESP_PANEL_LCD_WIDTH) // Typically set to the same value as the width of LCD
+#define ESP_PANEL_TOUCH_V_RES (ESP_PANEL_LCD_HEIGHT) // Typically set to the same value as the height of LCD
+
+/* Touch Panel Bus Settings */
+/**
+ * If set to 1, the bus will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_TOUCH_BUS_SKIP_INIT_HOST (0) // 0/1
+/**
+ * Touch panel bus type
+ */
+#define ESP_PANEL_TOUCH_BUS_TYPE (ESP_PANEL_BUS_TYPE_I2C)
+/* Touch panel bus parameters */
+#if ESP_PANEL_TOUCH_BUS_TYPE == ESP_PANEL_BUS_TYPE_I2C
+
+ #define ESP_PANEL_TOUCH_BUS_HOST_ID (0) // Typically set to 0
+ #define ESP_PANEL_TOUCH_I2C_ADDRESS (0) // For GT911, there are two addresses: 0x5D(default) and 0x14
+#if !ESP_PANEL_TOUCH_BUS_SKIP_INIT_HOST
+ #define ESP_PANEL_TOUCH_I2C_CLK_HZ (400 * 1000)
+ // Typically set to 400K
+ #define ESP_PANEL_TOUCH_I2C_SCL_PULLUP (1) // 0/1
+ #define ESP_PANEL_TOUCH_I2C_SDA_PULLUP (1) // 0/1
+ #define ESP_PANEL_TOUCH_I2C_IO_SCL (9)
+ #define ESP_PANEL_TOUCH_I2C_IO_SDA (8)
+#endif
+
+#endif /* ESP_PANEL_TOUCH_BUS_TYPE */
+
+/* Touch Transformation Flags */
+#define ESP_PANEL_TOUCH_SWAP_XY (0) // 0/1
+#define ESP_PANEL_TOUCH_MIRROR_X (0) // 0/1
+#define ESP_PANEL_TOUCH_MIRROR_Y (0) // 0/1
+
+/* Touch Other Settings */
+/* IO num of RESET pin, set to -1 if not use */
+#define ESP_PANEL_TOUCH_IO_RST (-1)
+#define ESP_PANEL_TOUCH_RST_LEVEL (0) // 0: low level, 1: high level
+/* IO num of INT pin, set to -1 if not use */
+#define ESP_PANEL_TOUCH_IO_INT (-1)
+#define ESP_PANEL_TOUCH_INT_LEVEL (0) // 0: low level, 1: high level
+
+#endif /* ESP_PANEL_USE_TOUCH */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please update the following macros to configure the backlight ////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#define ESP_PANEL_USE_BACKLIGHT (0) // 0/1
+#if ESP_PANEL_USE_BACKLIGHT
+/* IO num of backlight pin */
+#define ESP_PANEL_BACKLIGHT_IO (-1)
+#define ESP_PANEL_BACKLIGHT_ON_LEVEL (1) // 0: low level, 1: high level
+
+/* Set to 1 if turn off the backlight after initializing the panel; otherwise, set it to turn on */
+#define ESP_PANEL_BACKLIGHT_IDLE_OFF (0) // 0: on, 1: off
+
+/* Set to 1 if use PWM for brightness control */
+#define ESP_PANEL_LCD_BL_USE_PWM (0) // 0/1
+#endif /* ESP_PANEL_USE_BACKLIGHT */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please update the following macros to configure the IO expander //////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 0 if not using IO Expander */
+#define ESP_PANEL_USE_EXPANDER (1) // 0/1
+#if ESP_PANEL_USE_EXPANDER
+/**
+ * IO expander name.
+ */
+#define ESP_PANEL_EXPANDER_NAME CH422G
+
+/* IO expander Settings */
+/**
+ * If set to 1, the driver will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_EXPANDER_SKIP_INIT_HOST (1) // 0/1
+/* IO expander parameters */
+#define ESP_PANEL_EXPANDER_HOST_ID (0) // Typically set to 0
+#define ESP_PANEL_EXPANDER_I2C_ADDRESS (0x20)
+#if !ESP_PANEL_EXPANDER_SKIP_INIT_HOST
+ #define ESP_PANEL_EXPANDER_I2C_CLK_HZ (400 * 1000)
+ // Typically set to 400K
+ #define ESP_PANEL_EXPANDER_I2C_SCL_PULLUP (1) // 0/1
+ #define ESP_PANEL_EXPANDER_I2C_SDA_PULLUP (1) // 0/1
+ #define ESP_PANEL_EXPANDER_I2C_IO_SCL (9)
+ #define ESP_PANEL_EXPANDER_I2C_IO_SDA (8)
+#endif
+#endif /* ESP_PANEL_USE_EXPANDER */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please utilize the following macros to execute any additional code if required. //////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// #define ESP_PANEL_BEGIN_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_EXPANDER_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_EXPANDER_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_LCD_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_LCD_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_TOUCH_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_TOUCH_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_BACKLIGHT_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_BACKLIGHT_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_END_FUNCTION( panel )
+
+// *INDENT-OFF*
diff --git a/src/board/waveshare/ESP32_S3_Touch_LCD_5.h b/src/board/waveshare/ESP32_S3_Touch_LCD_5.h
new file mode 100644
index 00000000..c6708dcd
--- /dev/null
+++ b/src/board/waveshare/ESP32_S3_Touch_LCD_5.h
@@ -0,0 +1,273 @@
+/*
+ * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#pragma once
+
+// *INDENT-OFF*
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Please update the following macros to configure the LCD panel /////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 1 when using an LCD panel */
+#define ESP_PANEL_USE_LCD (1) // 0/1
+
+#if ESP_PANEL_USE_LCD
+/**
+ * LCD Controller Name
+ */
+#define ESP_PANEL_LCD_NAME ST7262
+
+/* LCD resolution in pixels */
+#define ESP_PANEL_LCD_WIDTH (800)
+#define ESP_PANEL_LCD_HEIGHT (480)
+
+/* LCD Bus Settings */
+/**
+ * If set to 1, the bus will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_LCD_BUS_SKIP_INIT_HOST (1) // 0/1
+/**
+ * LCD Bus Type.
+ */
+#define ESP_PANEL_LCD_BUS_TYPE (ESP_PANEL_BUS_TYPE_RGB)
+/**
+ * LCD Bus Parameters.
+ *
+ * Please refer to https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/lcd.html and
+ * https://docs.espressif.com/projects/esp-iot-solution/en/latest/display/lcd/index.html for more details.
+ *
+ */
+#if ESP_PANEL_LCD_BUS_TYPE == ESP_PANEL_BUS_TYPE_RGB
+
+ #define ESP_PANEL_LCD_RGB_CLK_HZ (16 * 1000 * 1000)
+ #define ESP_PANEL_LCD_RGB_HPW (4)
+ #define ESP_PANEL_LCD_RGB_HBP (8)
+ #define ESP_PANEL_LCD_RGB_HFP (8)
+ #define ESP_PANEL_LCD_RGB_VPW (4)
+ #define ESP_PANEL_LCD_RGB_VBP (8)
+ #define ESP_PANEL_LCD_RGB_VFP (8)
+ #define ESP_PANEL_LCD_RGB_PCLK_ACTIVE_NEG (1) // 0: rising edge, 1: falling edge
+
+ // | 8-bit RGB888 | 16-bit RGB565 |
+ // |--------------|---------------|
+ #define ESP_PANEL_LCD_RGB_DATA_WIDTH (16) // | 8 | 16 |
+ #define ESP_PANEL_LCD_RGB_PIXEL_BITS (16) // | 24 | 16 |
+
+ #define ESP_PANEL_LCD_RGB_BOUNCE_BUF_SIZE (ESP_PANEL_LCD_WIDTH * 10) // Bounce buffer size in bytes. This function is used to avoid screen drift.
+ // To enable the bounce buffer, set it to a non-zero value. Typically set to `ESP_PANEL_LCD_WIDTH * 10`
+ // The size of the Bounce Buffer must satisfy `width_of_lcd * height_of_lcd = size_of_buffer * N`,
+ // where N is an even number.
+ #define ESP_PANEL_LCD_RGB_IO_HSYNC (46)
+ #define ESP_PANEL_LCD_RGB_IO_VSYNC (3)
+ #define ESP_PANEL_LCD_RGB_IO_DE (5) // -1 if not used
+ #define ESP_PANEL_LCD_RGB_IO_PCLK (7)
+ #define ESP_PANEL_LCD_RGB_IO_DISP (-1) // -1 if not used
+
+ // | RGB565 | RGB666 | RGB888 |
+ // |--------|--------|--------|
+ #define ESP_PANEL_LCD_RGB_IO_DATA0 (14) // | B0 | B0-1 | B0-3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA1 (38) // | B1 | B2 | B4 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA2 (18) // | B2 | B3 | B5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA3 (17) // | B3 | B4 | B6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA4 (10) // | B4 | B5 | B7 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA5 (39) // | G0 | G0 | G0-2 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA6 (0) // | G1 | G1 | G3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA7 (45) // | G2 | G2 | G4 |
+#if ESP_PANEL_LCD_RGB_DATA_WIDTH > 8
+ #define ESP_PANEL_LCD_RGB_IO_DATA8 (48) // | G3 | G3 | G5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA9 (47) // | G4 | G4 | G6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA10 (21) // | G5 | G5 | G7 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA11 (1) // | R0 | R0-1 | R0-3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA12 (2) // | R1 | R2 | R4 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA13 (42) // | R2 | R3 | R5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA14 (41) // | R3 | R4 | R6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA15 (40) // | R4 | R5 | R7 |
+#endif
+#if !ESP_PANEL_LCD_BUS_SKIP_INIT_HOST
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_CS (0)
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_SCK (1)
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_SDA (2)
+ #define ESP_PANEL_LCD_3WIRE_SPI_CS_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SCL_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SDA_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SCL_ACTIVE_EDGE (0) // 0: rising edge, 1: falling edge
+ #define ESP_PANEL_LCD_FLAGS_AUTO_DEL_PANEL_IO (0) // Delete the panel IO instance automatically if set to 1.
+ // If the 3-wire SPI pins are sharing other pins of the RGB interface to save GPIOs,
+ // Please set it to 1 to release the panel IO and its pins (except CS signal).
+ #define ESP_PANEL_LCD_FLAGS_MIRROR_BY_CMD (!ESP_PANEL_LCD_FLAGS_AUTO_DEL_PANEL_IO)
+ // The `mirror()` function will be implemented by LCD command if set to 1.
+#endif
+
+#endif /* ESP_PANEL_LCD_BUS_TYPE */
+
+/**
+ * LCD Vendor Initialization Commands.
+ *
+ * Vendor specific initialization can be different between manufacturers, should consult the LCD supplier for
+ * initialization sequence code. Please uncomment and change the following macro definitions. Otherwise, the LCD driver
+ * will use the default initialization sequence code.
+ *
+ * There are two formats for the sequence code:
+ * 1. Raw data: {command, (uint8_t []){ data0, data1, ... }, data_size, delay_ms}
+ * 2. Formatter: ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(delay_ms, command, { data0, data1, ... }) and
+ * ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(delay_ms, command)
+ */
+/*
+#define ESP_PANEL_LCD_VENDOR_INIT_CMD() \
+ { \
+ {0xFF, (uint8_t []){0x77, 0x01, 0x00, 0x00, 0x10}, 5, 0}, \
+ {0xC0, (uint8_t []){0x3B, 0x00}, 2, 0}, \
+ {0xC1, (uint8_t []){0x0D, 0x02}, 2, 0}, \
+ {0x29, (uint8_t []){0x00}, 0, 120}, \
+ or \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xFF, {0x77, 0x01, 0x00, 0x00, 0x10}), \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xC0, {0x3B, 0x00}), \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xC1, {0x0D, 0x02}), \
+ ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(120, 0x29), \
+ }
+*/
+
+/* LCD Color Settings */
+/* LCD color depth in bits */
+#define ESP_PANEL_LCD_COLOR_BITS (16) // 8/16/18/24
+/*
+ * LCD RGB Element Order. Choose one of the following:
+ * - 0: RGB
+ * - 1: BGR
+ */
+#define ESP_PANEL_LCD_BGR_ORDER (0) // 0/1
+#define ESP_PANEL_LCD_INEVRT_COLOR (0) // 0/1
+
+/* LCD Transformation Flags */
+#define ESP_PANEL_LCD_SWAP_XY (0) // 0/1
+#define ESP_PANEL_LCD_MIRROR_X (0) // 0/1
+#define ESP_PANEL_LCD_MIRROR_Y (0) // 0/1
+
+/* LCD Other Settings */
+/* IO num of RESET pin, set to -1 if not use */
+#define ESP_PANEL_LCD_IO_RST (-1)
+#define ESP_PANEL_LCD_RST_LEVEL (0) // 0: low level, 1: high level
+
+#endif /* ESP_PANEL_USE_LCD */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Please update the following macros to configure the touch panel ///////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 1 when using an touch panel */
+#define ESP_PANEL_USE_TOUCH (1) // 0/1
+#if ESP_PANEL_USE_TOUCH
+/**
+ * Touch controller name
+ */
+#define ESP_PANEL_TOUCH_NAME GT911
+
+/* Touch resolution in pixels */
+#define ESP_PANEL_TOUCH_H_RES (ESP_PANEL_LCD_WIDTH) // Typically set to the same value as the width of LCD
+#define ESP_PANEL_TOUCH_V_RES (ESP_PANEL_LCD_HEIGHT) // Typically set to the same value as the height of LCD
+
+/* Touch Panel Bus Settings */
+/**
+ * If set to 1, the bus will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_TOUCH_BUS_SKIP_INIT_HOST (0) // 0/1
+/**
+ * Touch panel bus type
+ */
+#define ESP_PANEL_TOUCH_BUS_TYPE (ESP_PANEL_BUS_TYPE_I2C)
+/* Touch panel bus parameters */
+#if ESP_PANEL_TOUCH_BUS_TYPE == ESP_PANEL_BUS_TYPE_I2C
+
+ #define ESP_PANEL_TOUCH_BUS_HOST_ID (0) // Typically set to 0
+ #define ESP_PANEL_TOUCH_I2C_ADDRESS (0) // For GT911, there are two addresses: 0x5D(default) and 0x14
+#if !ESP_PANEL_TOUCH_BUS_SKIP_INIT_HOST
+ #define ESP_PANEL_TOUCH_I2C_CLK_HZ (400 * 1000)
+ // Typically set to 400K
+ #define ESP_PANEL_TOUCH_I2C_SCL_PULLUP (1) // 0/1
+ #define ESP_PANEL_TOUCH_I2C_SDA_PULLUP (1) // 0/1
+ #define ESP_PANEL_TOUCH_I2C_IO_SCL (9)
+ #define ESP_PANEL_TOUCH_I2C_IO_SDA (8)
+#endif
+
+#endif /* ESP_PANEL_TOUCH_BUS_TYPE */
+
+/* Touch Transformation Flags */
+#define ESP_PANEL_TOUCH_SWAP_XY (0) // 0/1
+#define ESP_PANEL_TOUCH_MIRROR_X (0) // 0/1
+#define ESP_PANEL_TOUCH_MIRROR_Y (0) // 0/1
+
+/* Touch Other Settings */
+/* IO num of RESET pin, set to -1 if not use */
+#define ESP_PANEL_TOUCH_IO_RST (-1)
+#define ESP_PANEL_TOUCH_RST_LEVEL (0) // 0: low level, 1: high level
+/* IO num of INT pin, set to -1 if not use */
+#define ESP_PANEL_TOUCH_IO_INT (-1)
+#define ESP_PANEL_TOUCH_INT_LEVEL (0) // 0: low level, 1: high level
+
+#endif /* ESP_PANEL_USE_TOUCH */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please update the following macros to configure the backlight ////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#define ESP_PANEL_USE_BACKLIGHT (0) // 0/1
+#if ESP_PANEL_USE_BACKLIGHT
+/* IO num of backlight pin */
+#define ESP_PANEL_BACKLIGHT_IO (-1)
+#define ESP_PANEL_BACKLIGHT_ON_LEVEL (1) // 0: low level, 1: high level
+
+/* Set to 1 if turn off the backlight after initializing the panel; otherwise, set it to turn on */
+#define ESP_PANEL_BACKLIGHT_IDLE_OFF (0) // 0: on, 1: off
+
+/* Set to 1 if use PWM for brightness control */
+#define ESP_PANEL_LCD_BL_USE_PWM (0) // 0/1
+#endif /* ESP_PANEL_USE_BACKLIGHT */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please update the following macros to configure the IO expander //////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 0 if not using IO Expander */
+#define ESP_PANEL_USE_EXPANDER (1) // 0/1
+#if ESP_PANEL_USE_EXPANDER
+/**
+ * IO expander name.
+ */
+#define ESP_PANEL_EXPANDER_NAME CH422G
+
+/* IO expander Settings */
+/**
+ * If set to 1, the driver will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_EXPANDER_SKIP_INIT_HOST (1) // 0/1
+/* IO expander parameters */
+#define ESP_PANEL_EXPANDER_HOST_ID (0) // Typically set to 0
+#define ESP_PANEL_EXPANDER_I2C_ADDRESS (0x20)
+#if !ESP_PANEL_EXPANDER_SKIP_INIT_HOST
+ #define ESP_PANEL_EXPANDER_I2C_CLK_HZ (400 * 1000)
+ // Typically set to 400K
+ #define ESP_PANEL_EXPANDER_I2C_SCL_PULLUP (1) // 0/1
+ #define ESP_PANEL_EXPANDER_I2C_SDA_PULLUP (1) // 0/1
+ #define ESP_PANEL_EXPANDER_I2C_IO_SCL (9)
+ #define ESP_PANEL_EXPANDER_I2C_IO_SDA (8)
+#endif
+#endif /* ESP_PANEL_USE_EXPANDER */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please utilize the following macros to execute any additional code if required. //////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// #define ESP_PANEL_BEGIN_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_EXPANDER_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_EXPANDER_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_LCD_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_LCD_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_TOUCH_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_TOUCH_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_BACKLIGHT_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_BACKLIGHT_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_END_FUNCTION( panel )
+
+// *INDENT-OFF*
diff --git a/src/board/waveshare/ESP32_S3_Touch_LCD_5_B.h b/src/board/waveshare/ESP32_S3_Touch_LCD_5_B.h
new file mode 100644
index 00000000..63bd5cbe
--- /dev/null
+++ b/src/board/waveshare/ESP32_S3_Touch_LCD_5_B.h
@@ -0,0 +1,273 @@
+/*
+ * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#pragma once
+
+// *INDENT-OFF*
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Please update the following macros to configure the LCD panel /////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 1 when using an LCD panel */
+#define ESP_PANEL_USE_LCD (1) // 0/1
+
+#if ESP_PANEL_USE_LCD
+/**
+ * LCD Controller Name
+ */
+#define ESP_PANEL_LCD_NAME ST7262
+
+/* LCD resolution in pixels */
+#define ESP_PANEL_LCD_WIDTH (1024)
+#define ESP_PANEL_LCD_HEIGHT (600)
+
+/* LCD Bus Settings */
+/**
+ * If set to 1, the bus will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_LCD_BUS_SKIP_INIT_HOST (1) // 0/1
+/**
+ * LCD Bus Type.
+ */
+#define ESP_PANEL_LCD_BUS_TYPE (ESP_PANEL_BUS_TYPE_RGB)
+/**
+ * LCD Bus Parameters.
+ *
+ * Please refer to https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/lcd.html and
+ * https://docs.espressif.com/projects/esp-iot-solution/en/latest/display/lcd/index.html for more details.
+ *
+ */
+#if ESP_PANEL_LCD_BUS_TYPE == ESP_PANEL_BUS_TYPE_RGB
+
+ #define ESP_PANEL_LCD_RGB_CLK_HZ (21 * 1000 * 1000)
+ #define ESP_PANEL_LCD_RGB_HPW (24)
+ #define ESP_PANEL_LCD_RGB_HBP (160)
+ #define ESP_PANEL_LCD_RGB_HFP (160)
+ #define ESP_PANEL_LCD_RGB_VPW (2)
+ #define ESP_PANEL_LCD_RGB_VBP (23)
+ #define ESP_PANEL_LCD_RGB_VFP (12)
+ #define ESP_PANEL_LCD_RGB_PCLK_ACTIVE_NEG (1) // 0: rising edge, 1: falling edge
+
+ // | 8-bit RGB888 | 16-bit RGB565 |
+ // |--------------|---------------|
+ #define ESP_PANEL_LCD_RGB_DATA_WIDTH (16) // | 8 | 16 |
+ #define ESP_PANEL_LCD_RGB_PIXEL_BITS (16) // | 24 | 16 |
+
+ #define ESP_PANEL_LCD_RGB_BOUNCE_BUF_SIZE (ESP_PANEL_LCD_WIDTH * 10) // Bounce buffer size in bytes. This function is used to avoid screen drift.
+ // To enable the bounce buffer, set it to a non-zero value. Typically set to `ESP_PANEL_LCD_WIDTH * 10`
+ // The size of the Bounce Buffer must satisfy `width_of_lcd * height_of_lcd = size_of_buffer * N`,
+ // where N is an even number.
+ #define ESP_PANEL_LCD_RGB_IO_HSYNC (46)
+ #define ESP_PANEL_LCD_RGB_IO_VSYNC (3)
+ #define ESP_PANEL_LCD_RGB_IO_DE (5) // -1 if not used
+ #define ESP_PANEL_LCD_RGB_IO_PCLK (7)
+ #define ESP_PANEL_LCD_RGB_IO_DISP (-1) // -1 if not used
+
+ // | RGB565 | RGB666 | RGB888 |
+ // |--------|--------|--------|
+ #define ESP_PANEL_LCD_RGB_IO_DATA0 (14) // | B0 | B0-1 | B0-3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA1 (38) // | B1 | B2 | B4 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA2 (18) // | B2 | B3 | B5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA3 (17) // | B3 | B4 | B6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA4 (10) // | B4 | B5 | B7 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA5 (39) // | G0 | G0 | G0-2 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA6 (0) // | G1 | G1 | G3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA7 (45) // | G2 | G2 | G4 |
+#if ESP_PANEL_LCD_RGB_DATA_WIDTH > 8
+ #define ESP_PANEL_LCD_RGB_IO_DATA8 (48) // | G3 | G3 | G5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA9 (47) // | G4 | G4 | G6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA10 (21) // | G5 | G5 | G7 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA11 (1) // | R0 | R0-1 | R0-3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA12 (2) // | R1 | R2 | R4 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA13 (42) // | R2 | R3 | R5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA14 (41) // | R3 | R4 | R6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA15 (40) // | R4 | R5 | R7 |
+#endif
+#if !ESP_PANEL_LCD_BUS_SKIP_INIT_HOST
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_CS (0)
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_SCK (1)
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_SDA (2)
+ #define ESP_PANEL_LCD_3WIRE_SPI_CS_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SCL_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SDA_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SCL_ACTIVE_EDGE (0) // 0: rising edge, 1: falling edge
+ #define ESP_PANEL_LCD_FLAGS_AUTO_DEL_PANEL_IO (0) // Delete the panel IO instance automatically if set to 1.
+ // If the 3-wire SPI pins are sharing other pins of the RGB interface to save GPIOs,
+ // Please set it to 1 to release the panel IO and its pins (except CS signal).
+ #define ESP_PANEL_LCD_FLAGS_MIRROR_BY_CMD (!ESP_PANEL_LCD_FLAGS_AUTO_DEL_PANEL_IO)
+ // The `mirror()` function will be implemented by LCD command if set to 1.
+#endif
+
+#endif /* ESP_PANEL_LCD_BUS_TYPE */
+
+/**
+ * LCD Vendor Initialization Commands.
+ *
+ * Vendor specific initialization can be different between manufacturers, should consult the LCD supplier for
+ * initialization sequence code. Please uncomment and change the following macro definitions. Otherwise, the LCD driver
+ * will use the default initialization sequence code.
+ *
+ * There are two formats for the sequence code:
+ * 1. Raw data: {command, (uint8_t []){ data0, data1, ... }, data_size, delay_ms}
+ * 2. Formatter: ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(delay_ms, command, { data0, data1, ... }) and
+ * ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(delay_ms, command)
+ */
+/*
+#define ESP_PANEL_LCD_VENDOR_INIT_CMD() \
+ { \
+ {0xFF, (uint8_t []){0x77, 0x01, 0x00, 0x00, 0x10}, 5, 0}, \
+ {0xC0, (uint8_t []){0x3B, 0x00}, 2, 0}, \
+ {0xC1, (uint8_t []){0x0D, 0x02}, 2, 0}, \
+ {0x29, (uint8_t []){0x00}, 0, 120}, \
+ or \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xFF, {0x77, 0x01, 0x00, 0x00, 0x10}), \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xC0, {0x3B, 0x00}), \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xC1, {0x0D, 0x02}), \
+ ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(120, 0x29), \
+ }
+*/
+
+/* LCD Color Settings */
+/* LCD color depth in bits */
+#define ESP_PANEL_LCD_COLOR_BITS (16) // 8/16/18/24
+/*
+ * LCD RGB Element Order. Choose one of the following:
+ * - 0: RGB
+ * - 1: BGR
+ */
+#define ESP_PANEL_LCD_BGR_ORDER (0) // 0/1
+#define ESP_PANEL_LCD_INEVRT_COLOR (0) // 0/1
+
+/* LCD Transformation Flags */
+#define ESP_PANEL_LCD_SWAP_XY (0) // 0/1
+#define ESP_PANEL_LCD_MIRROR_X (0) // 0/1
+#define ESP_PANEL_LCD_MIRROR_Y (0) // 0/1
+
+/* LCD Other Settings */
+/* IO num of RESET pin, set to -1 if not use */
+#define ESP_PANEL_LCD_IO_RST (-1)
+#define ESP_PANEL_LCD_RST_LEVEL (0) // 0: low level, 1: high level
+
+#endif /* ESP_PANEL_USE_LCD */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Please update the following macros to configure the touch panel ///////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 1 when using an touch panel */
+#define ESP_PANEL_USE_TOUCH (1) // 0/1
+#if ESP_PANEL_USE_TOUCH
+/**
+ * Touch controller name
+ */
+#define ESP_PANEL_TOUCH_NAME GT911
+
+/* Touch resolution in pixels */
+#define ESP_PANEL_TOUCH_H_RES (ESP_PANEL_LCD_WIDTH) // Typically set to the same value as the width of LCD
+#define ESP_PANEL_TOUCH_V_RES (ESP_PANEL_LCD_HEIGHT) // Typically set to the same value as the height of LCD
+
+/* Touch Panel Bus Settings */
+/**
+ * If set to 1, the bus will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_TOUCH_BUS_SKIP_INIT_HOST (0) // 0/1
+/**
+ * Touch panel bus type
+ */
+#define ESP_PANEL_TOUCH_BUS_TYPE (ESP_PANEL_BUS_TYPE_I2C)
+/* Touch panel bus parameters */
+#if ESP_PANEL_TOUCH_BUS_TYPE == ESP_PANEL_BUS_TYPE_I2C
+
+ #define ESP_PANEL_TOUCH_BUS_HOST_ID (0) // Typically set to 0
+ #define ESP_PANEL_TOUCH_I2C_ADDRESS (0) // For GT911, there are two addresses: 0x5D(default) and 0x14
+#if !ESP_PANEL_TOUCH_BUS_SKIP_INIT_HOST
+ #define ESP_PANEL_TOUCH_I2C_CLK_HZ (400 * 1000)
+ // Typically set to 400K
+ #define ESP_PANEL_TOUCH_I2C_SCL_PULLUP (1) // 0/1
+ #define ESP_PANEL_TOUCH_I2C_SDA_PULLUP (1) // 0/1
+ #define ESP_PANEL_TOUCH_I2C_IO_SCL (9)
+ #define ESP_PANEL_TOUCH_I2C_IO_SDA (8)
+#endif
+
+#endif /* ESP_PANEL_TOUCH_BUS_TYPE */
+
+/* Touch Transformation Flags */
+#define ESP_PANEL_TOUCH_SWAP_XY (0) // 0/1
+#define ESP_PANEL_TOUCH_MIRROR_X (0) // 0/1
+#define ESP_PANEL_TOUCH_MIRROR_Y (0) // 0/1
+
+/* Touch Other Settings */
+/* IO num of RESET pin, set to -1 if not use */
+#define ESP_PANEL_TOUCH_IO_RST (-1)
+#define ESP_PANEL_TOUCH_RST_LEVEL (0) // 0: low level, 1: high level
+/* IO num of INT pin, set to -1 if not use */
+#define ESP_PANEL_TOUCH_IO_INT (-1)
+#define ESP_PANEL_TOUCH_INT_LEVEL (0) // 0: low level, 1: high level
+
+#endif /* ESP_PANEL_USE_TOUCH */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please update the following macros to configure the backlight ////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#define ESP_PANEL_USE_BACKLIGHT (0) // 0/1
+#if ESP_PANEL_USE_BACKLIGHT
+/* IO num of backlight pin */
+#define ESP_PANEL_BACKLIGHT_IO (-1)
+#define ESP_PANEL_BACKLIGHT_ON_LEVEL (1) // 0: low level, 1: high level
+
+/* Set to 1 if turn off the backlight after initializing the panel; otherwise, set it to turn on */
+#define ESP_PANEL_BACKLIGHT_IDLE_OFF (0) // 0: on, 1: off
+
+/* Set to 1 if use PWM for brightness control */
+#define ESP_PANEL_LCD_BL_USE_PWM (0) // 0/1
+#endif /* ESP_PANEL_USE_BACKLIGHT */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please update the following macros to configure the IO expander //////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 0 if not using IO Expander */
+#define ESP_PANEL_USE_EXPANDER (1) // 0/1
+#if ESP_PANEL_USE_EXPANDER
+/**
+ * IO expander name.
+ */
+#define ESP_PANEL_EXPANDER_NAME CH422G
+
+/* IO expander Settings */
+/**
+ * If set to 1, the driver will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_EXPANDER_SKIP_INIT_HOST (1) // 0/1
+/* IO expander parameters */
+#define ESP_PANEL_EXPANDER_HOST_ID (0) // Typically set to 0
+#define ESP_PANEL_EXPANDER_I2C_ADDRESS (0x20)
+#if !ESP_PANEL_EXPANDER_SKIP_INIT_HOST
+ #define ESP_PANEL_EXPANDER_I2C_CLK_HZ (400 * 1000)
+ // Typically set to 400K
+ #define ESP_PANEL_EXPANDER_I2C_SCL_PULLUP (1) // 0/1
+ #define ESP_PANEL_EXPANDER_I2C_SDA_PULLUP (1) // 0/1
+ #define ESP_PANEL_EXPANDER_I2C_IO_SCL (9)
+ #define ESP_PANEL_EXPANDER_I2C_IO_SDA (8)
+#endif
+#endif /* ESP_PANEL_USE_EXPANDER */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please utilize the following macros to execute any additional code if required. //////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// #define ESP_PANEL_BEGIN_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_EXPANDER_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_EXPANDER_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_LCD_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_LCD_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_TOUCH_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_TOUCH_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_BACKLIGHT_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_BACKLIGHT_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_END_FUNCTION( panel )
+
+// *INDENT-OFF*
diff --git a/src/board/waveshare/ESP32_S3_Touch_LCD_7.h b/src/board/waveshare/ESP32_S3_Touch_LCD_7.h
new file mode 100644
index 00000000..c6708dcd
--- /dev/null
+++ b/src/board/waveshare/ESP32_S3_Touch_LCD_7.h
@@ -0,0 +1,273 @@
+/*
+ * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#pragma once
+
+// *INDENT-OFF*
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Please update the following macros to configure the LCD panel /////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 1 when using an LCD panel */
+#define ESP_PANEL_USE_LCD (1) // 0/1
+
+#if ESP_PANEL_USE_LCD
+/**
+ * LCD Controller Name
+ */
+#define ESP_PANEL_LCD_NAME ST7262
+
+/* LCD resolution in pixels */
+#define ESP_PANEL_LCD_WIDTH (800)
+#define ESP_PANEL_LCD_HEIGHT (480)
+
+/* LCD Bus Settings */
+/**
+ * If set to 1, the bus will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_LCD_BUS_SKIP_INIT_HOST (1) // 0/1
+/**
+ * LCD Bus Type.
+ */
+#define ESP_PANEL_LCD_BUS_TYPE (ESP_PANEL_BUS_TYPE_RGB)
+/**
+ * LCD Bus Parameters.
+ *
+ * Please refer to https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/lcd.html and
+ * https://docs.espressif.com/projects/esp-iot-solution/en/latest/display/lcd/index.html for more details.
+ *
+ */
+#if ESP_PANEL_LCD_BUS_TYPE == ESP_PANEL_BUS_TYPE_RGB
+
+ #define ESP_PANEL_LCD_RGB_CLK_HZ (16 * 1000 * 1000)
+ #define ESP_PANEL_LCD_RGB_HPW (4)
+ #define ESP_PANEL_LCD_RGB_HBP (8)
+ #define ESP_PANEL_LCD_RGB_HFP (8)
+ #define ESP_PANEL_LCD_RGB_VPW (4)
+ #define ESP_PANEL_LCD_RGB_VBP (8)
+ #define ESP_PANEL_LCD_RGB_VFP (8)
+ #define ESP_PANEL_LCD_RGB_PCLK_ACTIVE_NEG (1) // 0: rising edge, 1: falling edge
+
+ // | 8-bit RGB888 | 16-bit RGB565 |
+ // |--------------|---------------|
+ #define ESP_PANEL_LCD_RGB_DATA_WIDTH (16) // | 8 | 16 |
+ #define ESP_PANEL_LCD_RGB_PIXEL_BITS (16) // | 24 | 16 |
+
+ #define ESP_PANEL_LCD_RGB_BOUNCE_BUF_SIZE (ESP_PANEL_LCD_WIDTH * 10) // Bounce buffer size in bytes. This function is used to avoid screen drift.
+ // To enable the bounce buffer, set it to a non-zero value. Typically set to `ESP_PANEL_LCD_WIDTH * 10`
+ // The size of the Bounce Buffer must satisfy `width_of_lcd * height_of_lcd = size_of_buffer * N`,
+ // where N is an even number.
+ #define ESP_PANEL_LCD_RGB_IO_HSYNC (46)
+ #define ESP_PANEL_LCD_RGB_IO_VSYNC (3)
+ #define ESP_PANEL_LCD_RGB_IO_DE (5) // -1 if not used
+ #define ESP_PANEL_LCD_RGB_IO_PCLK (7)
+ #define ESP_PANEL_LCD_RGB_IO_DISP (-1) // -1 if not used
+
+ // | RGB565 | RGB666 | RGB888 |
+ // |--------|--------|--------|
+ #define ESP_PANEL_LCD_RGB_IO_DATA0 (14) // | B0 | B0-1 | B0-3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA1 (38) // | B1 | B2 | B4 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA2 (18) // | B2 | B3 | B5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA3 (17) // | B3 | B4 | B6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA4 (10) // | B4 | B5 | B7 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA5 (39) // | G0 | G0 | G0-2 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA6 (0) // | G1 | G1 | G3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA7 (45) // | G2 | G2 | G4 |
+#if ESP_PANEL_LCD_RGB_DATA_WIDTH > 8
+ #define ESP_PANEL_LCD_RGB_IO_DATA8 (48) // | G3 | G3 | G5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA9 (47) // | G4 | G4 | G6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA10 (21) // | G5 | G5 | G7 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA11 (1) // | R0 | R0-1 | R0-3 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA12 (2) // | R1 | R2 | R4 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA13 (42) // | R2 | R3 | R5 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA14 (41) // | R3 | R4 | R6 |
+ #define ESP_PANEL_LCD_RGB_IO_DATA15 (40) // | R4 | R5 | R7 |
+#endif
+#if !ESP_PANEL_LCD_BUS_SKIP_INIT_HOST
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_CS (0)
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_SCK (1)
+ #define ESP_PANEL_LCD_3WIRE_SPI_IO_SDA (2)
+ #define ESP_PANEL_LCD_3WIRE_SPI_CS_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SCL_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SDA_USE_EXPNADER (0) // 0/1
+ #define ESP_PANEL_LCD_3WIRE_SPI_SCL_ACTIVE_EDGE (0) // 0: rising edge, 1: falling edge
+ #define ESP_PANEL_LCD_FLAGS_AUTO_DEL_PANEL_IO (0) // Delete the panel IO instance automatically if set to 1.
+ // If the 3-wire SPI pins are sharing other pins of the RGB interface to save GPIOs,
+ // Please set it to 1 to release the panel IO and its pins (except CS signal).
+ #define ESP_PANEL_LCD_FLAGS_MIRROR_BY_CMD (!ESP_PANEL_LCD_FLAGS_AUTO_DEL_PANEL_IO)
+ // The `mirror()` function will be implemented by LCD command if set to 1.
+#endif
+
+#endif /* ESP_PANEL_LCD_BUS_TYPE */
+
+/**
+ * LCD Vendor Initialization Commands.
+ *
+ * Vendor specific initialization can be different between manufacturers, should consult the LCD supplier for
+ * initialization sequence code. Please uncomment and change the following macro definitions. Otherwise, the LCD driver
+ * will use the default initialization sequence code.
+ *
+ * There are two formats for the sequence code:
+ * 1. Raw data: {command, (uint8_t []){ data0, data1, ... }, data_size, delay_ms}
+ * 2. Formatter: ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(delay_ms, command, { data0, data1, ... }) and
+ * ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(delay_ms, command)
+ */
+/*
+#define ESP_PANEL_LCD_VENDOR_INIT_CMD() \
+ { \
+ {0xFF, (uint8_t []){0x77, 0x01, 0x00, 0x00, 0x10}, 5, 0}, \
+ {0xC0, (uint8_t []){0x3B, 0x00}, 2, 0}, \
+ {0xC1, (uint8_t []){0x0D, 0x02}, 2, 0}, \
+ {0x29, (uint8_t []){0x00}, 0, 120}, \
+ or \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xFF, {0x77, 0x01, 0x00, 0x00, 0x10}), \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xC0, {0x3B, 0x00}), \
+ ESP_PANEL_LCD_CMD_WITH_8BIT_PARAM(0, 0xC1, {0x0D, 0x02}), \
+ ESP_PANEL_LCD_CMD_WITH_NONE_PARAM(120, 0x29), \
+ }
+*/
+
+/* LCD Color Settings */
+/* LCD color depth in bits */
+#define ESP_PANEL_LCD_COLOR_BITS (16) // 8/16/18/24
+/*
+ * LCD RGB Element Order. Choose one of the following:
+ * - 0: RGB
+ * - 1: BGR
+ */
+#define ESP_PANEL_LCD_BGR_ORDER (0) // 0/1
+#define ESP_PANEL_LCD_INEVRT_COLOR (0) // 0/1
+
+/* LCD Transformation Flags */
+#define ESP_PANEL_LCD_SWAP_XY (0) // 0/1
+#define ESP_PANEL_LCD_MIRROR_X (0) // 0/1
+#define ESP_PANEL_LCD_MIRROR_Y (0) // 0/1
+
+/* LCD Other Settings */
+/* IO num of RESET pin, set to -1 if not use */
+#define ESP_PANEL_LCD_IO_RST (-1)
+#define ESP_PANEL_LCD_RST_LEVEL (0) // 0: low level, 1: high level
+
+#endif /* ESP_PANEL_USE_LCD */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Please update the following macros to configure the touch panel ///////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 1 when using an touch panel */
+#define ESP_PANEL_USE_TOUCH (1) // 0/1
+#if ESP_PANEL_USE_TOUCH
+/**
+ * Touch controller name
+ */
+#define ESP_PANEL_TOUCH_NAME GT911
+
+/* Touch resolution in pixels */
+#define ESP_PANEL_TOUCH_H_RES (ESP_PANEL_LCD_WIDTH) // Typically set to the same value as the width of LCD
+#define ESP_PANEL_TOUCH_V_RES (ESP_PANEL_LCD_HEIGHT) // Typically set to the same value as the height of LCD
+
+/* Touch Panel Bus Settings */
+/**
+ * If set to 1, the bus will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_TOUCH_BUS_SKIP_INIT_HOST (0) // 0/1
+/**
+ * Touch panel bus type
+ */
+#define ESP_PANEL_TOUCH_BUS_TYPE (ESP_PANEL_BUS_TYPE_I2C)
+/* Touch panel bus parameters */
+#if ESP_PANEL_TOUCH_BUS_TYPE == ESP_PANEL_BUS_TYPE_I2C
+
+ #define ESP_PANEL_TOUCH_BUS_HOST_ID (0) // Typically set to 0
+ #define ESP_PANEL_TOUCH_I2C_ADDRESS (0) // For GT911, there are two addresses: 0x5D(default) and 0x14
+#if !ESP_PANEL_TOUCH_BUS_SKIP_INIT_HOST
+ #define ESP_PANEL_TOUCH_I2C_CLK_HZ (400 * 1000)
+ // Typically set to 400K
+ #define ESP_PANEL_TOUCH_I2C_SCL_PULLUP (1) // 0/1
+ #define ESP_PANEL_TOUCH_I2C_SDA_PULLUP (1) // 0/1
+ #define ESP_PANEL_TOUCH_I2C_IO_SCL (9)
+ #define ESP_PANEL_TOUCH_I2C_IO_SDA (8)
+#endif
+
+#endif /* ESP_PANEL_TOUCH_BUS_TYPE */
+
+/* Touch Transformation Flags */
+#define ESP_PANEL_TOUCH_SWAP_XY (0) // 0/1
+#define ESP_PANEL_TOUCH_MIRROR_X (0) // 0/1
+#define ESP_PANEL_TOUCH_MIRROR_Y (0) // 0/1
+
+/* Touch Other Settings */
+/* IO num of RESET pin, set to -1 if not use */
+#define ESP_PANEL_TOUCH_IO_RST (-1)
+#define ESP_PANEL_TOUCH_RST_LEVEL (0) // 0: low level, 1: high level
+/* IO num of INT pin, set to -1 if not use */
+#define ESP_PANEL_TOUCH_IO_INT (-1)
+#define ESP_PANEL_TOUCH_INT_LEVEL (0) // 0: low level, 1: high level
+
+#endif /* ESP_PANEL_USE_TOUCH */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please update the following macros to configure the backlight ////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#define ESP_PANEL_USE_BACKLIGHT (0) // 0/1
+#if ESP_PANEL_USE_BACKLIGHT
+/* IO num of backlight pin */
+#define ESP_PANEL_BACKLIGHT_IO (-1)
+#define ESP_PANEL_BACKLIGHT_ON_LEVEL (1) // 0: low level, 1: high level
+
+/* Set to 1 if turn off the backlight after initializing the panel; otherwise, set it to turn on */
+#define ESP_PANEL_BACKLIGHT_IDLE_OFF (0) // 0: on, 1: off
+
+/* Set to 1 if use PWM for brightness control */
+#define ESP_PANEL_LCD_BL_USE_PWM (0) // 0/1
+#endif /* ESP_PANEL_USE_BACKLIGHT */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please update the following macros to configure the IO expander //////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+/* Set to 0 if not using IO Expander */
+#define ESP_PANEL_USE_EXPANDER (1) // 0/1
+#if ESP_PANEL_USE_EXPANDER
+/**
+ * IO expander name.
+ */
+#define ESP_PANEL_EXPANDER_NAME CH422G
+
+/* IO expander Settings */
+/**
+ * If set to 1, the driver will skip to initialize the corresponding host. Users need to initialize the host in advance.
+ * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
+ */
+#define ESP_PANEL_EXPANDER_SKIP_INIT_HOST (1) // 0/1
+/* IO expander parameters */
+#define ESP_PANEL_EXPANDER_HOST_ID (0) // Typically set to 0
+#define ESP_PANEL_EXPANDER_I2C_ADDRESS (0x20)
+#if !ESP_PANEL_EXPANDER_SKIP_INIT_HOST
+ #define ESP_PANEL_EXPANDER_I2C_CLK_HZ (400 * 1000)
+ // Typically set to 400K
+ #define ESP_PANEL_EXPANDER_I2C_SCL_PULLUP (1) // 0/1
+ #define ESP_PANEL_EXPANDER_I2C_SDA_PULLUP (1) // 0/1
+ #define ESP_PANEL_EXPANDER_I2C_IO_SCL (9)
+ #define ESP_PANEL_EXPANDER_I2C_IO_SDA (8)
+#endif
+#endif /* ESP_PANEL_USE_EXPANDER */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////// Please utilize the following macros to execute any additional code if required. //////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// #define ESP_PANEL_BEGIN_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_EXPANDER_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_EXPANDER_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_LCD_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_LCD_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_TOUCH_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_TOUCH_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_BACKLIGHT_START_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_BACKLIGHT_END_FUNCTION( panel )
+// #define ESP_PANEL_BEGIN_END_FUNCTION( panel )
+
+// *INDENT-OFF*
From ff23ba8bcf489d0fe75a7d968560fb86784bb410 Mon Sep 17 00:00:00 2001
From: H-sw123 <1150857014@qq.com>
Date: Thu, 14 Nov 2024 15:18:57 +0800
Subject: [PATCH 2/2] Add Waveshare 7 and 4.3B and 5 and 5B
---
ESP_Panel_Board_Supported.h | 10 +++++++++-
docs/Board_Instructions.md | 15 ++++++++++----
.../v8/Porting/ESP_Panel_Board_Supported.h | 10 +++++++++-
.../v8/Rotation/ESP_Panel_Board_Supported.h | 10 +++++++++-
.../PanelTest/ESP_Panel_Board_Supported.h | 10 +++++++++-
.../src/ESP_Panel_Board_Supported.h | 10 +++++++++-
.../v8/Porting/ESP_Panel_Board_Supported.h | 10 +++++++++-
.../v8/WiFiClock/ESP_Panel_Board_Supported.h | 10 +++++++++-
src/board/ESP_PanelBoard.h | 12 +++++++++++
src/board/waveshare/ESP32_S3_Touch_LCD_4_3.h | 4 ++--
src/board/waveshare/Kconfig.waveshare | 20 +++++++++++++++++++
11 files changed, 108 insertions(+), 13 deletions(-)
diff --git a/ESP_Panel_Board_Supported.h b/ESP_Panel_Board_Supported.h
index 75d5c84a..26354441 100644
--- a/ESP_Panel_Board_Supported.h
+++ b/ESP_Panel_Board_Supported.h
@@ -82,11 +82,19 @@
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3 (ESP32_S3_Touch_LCD_4_3): https://www.waveshare.com/esp32-s3-touch-lcd-4.3.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85 (ESP32_S3_Touch_LCD_1_85): https://www.waveshare.com/esp32-s3-touch-lcd-1.85.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1 (ESP32_S3_Touch_LCD_2_1): https://www.waveshare.com/esp32-s3-touch-lcd-2.1.htm
- *
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7 (ESP32_S3_Touch_LCD_7): https://www.waveshare.com/esp32-s3-touch-lcd-7.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B (ESP32_S3_Touch_LCD_4_3_B): https://www.waveshare.com/esp32-s3-touch-lcd-4.3B.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5 (ESP32_S3_Touch_LCD_5): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28117
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B (ESP32_S3_Touch_LCD_5_B): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28151
*/
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// File Version ///////////////////////////////////////////////////////////
diff --git a/docs/Board_Instructions.md b/docs/Board_Instructions.md
index 7650cb87..26ddec06 100644
--- a/docs/Board_Instructions.md
+++ b/docs/Board_Instructions.md
@@ -43,9 +43,13 @@
| **Picture** | **Name** | **LCD Bus** | **LCD Controller** | **LCD resolution** | **Touch Bus** | **Touch Controller** |
| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------: | :--------------: | :----------------: | ------------------ | :-----------: | :------------------: |
-|
| [ESP32-S3-Touch-LCD-4.3](https://www.waveshare.com/esp32-s3-touch-lcd-4.3.htm) | RGB | ST7262 | 800x480 | I2C | GT911 |
+|
| [ESP32-S3-Touch-LCD-4.3](https://www.waveshare.com/esp32-s3-touch-lcd-4.3.htm) | RGB | ST7262 | 800x480 | I2C | GT911 |
|
| [ESP32-S3-Touch-LCD-1.85](https://www.waveshare.com/esp32-s3-touch-lcd-1.85.htm) | QSPI | ST77916 | 360x360 | I2C | CST816 |
|
| [ESP32-S3-Touch-LCD-1.85](https://www.waveshare.com/esp32-s3-touch-lcd-2.1.htm) | RGB | ST7701 | 480x480 | I2C | CST820 (CST816-like) |
+|
| [ESP32-S3-Touch-LCD-7](https://www.waveshare.com/esp32-s3-touch-lcd-7.htm) | RGB | ST7262 | 800x480 | I2C | GT911 |
+|
| [ESP32-S3-Touch-LCD-4.3B](https://www.waveshare.com/esp32-s3-touch-lcd-4.3B.htm) | RGB | ST7262 | 800x480 | I2C | GT911 |
+|
| [ESP32-S3-Touch-LCD-5](https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28117) | RGB | ST7262 | 800x480 | I2C | GT911 |
+|
| [ESP32-S3-Touch-LCD-5B](https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28151) | RGB | ST7262 | 1024x600 | I2C | GT911 |
## Recommended Configurations in the Arduino IDE
@@ -70,9 +74,12 @@ Below are recommended configurations for developing GUI applications on differen
| ESP32-4848S040C_I_Y_3 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Disabled | 16M Flash (3MB) |
| ElecrowCrowPanel 7.0" | ESP32S3 Dev Module | OPI | QIO 80MHz | 4MB | Disabled | Huge App (3MB) |
| Waveshare-ESP32-S3-Touch-LCD-4.3 | ESP32S3 Dev Module | OPI | QIO 80MHz | 8MB | Disabled | 8M with spiffs |
-| Waveshare-ESP32-S3-Touch-LCD-1.85 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Enabled | 16M Flash (3MB) |
-| Waveshare-ESP32-S3-Touch-LCD-2.1 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Enabled | 16M Flash (3MB) |
-
+| Waveshare-ESP32-S3-Touch-LCD-1.85| ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Enabled | 16M Flash (3MB) |
+| Waveshare-ESP32-S3-Touch-LCD-2.1 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Enabled | 16M Flash (3MB) |
+| Waveshare-ESP32-S3-Touch-LCD-7 | ESP32S3 Dev Module | OPI | QIO 80MHz | 8MB | Disabled | 8M with spiffs |
+| Waveshare-ESP32-S3-Touch-LCD-4.3B| ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Enabled | 16M Flash (3MB) |
+| Waveshare-ESP32-S3-Touch-LCD-5 | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Enabled | 16M Flash (3MB) |
+| Waveshare-ESP32-S3-Touch-LCD-5B | ESP32S3 Dev Module | OPI | QIO 80MHz | 16MB | Enabled | 16M Flash (3MB) |
**Notes:**
1. Enable or disable `USB CDC On Boot` based on the type of port used:
diff --git a/examples/LVGL/v8/Porting/ESP_Panel_Board_Supported.h b/examples/LVGL/v8/Porting/ESP_Panel_Board_Supported.h
index 75d5c84a..26354441 100644
--- a/examples/LVGL/v8/Porting/ESP_Panel_Board_Supported.h
+++ b/examples/LVGL/v8/Porting/ESP_Panel_Board_Supported.h
@@ -82,11 +82,19 @@
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3 (ESP32_S3_Touch_LCD_4_3): https://www.waveshare.com/esp32-s3-touch-lcd-4.3.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85 (ESP32_S3_Touch_LCD_1_85): https://www.waveshare.com/esp32-s3-touch-lcd-1.85.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1 (ESP32_S3_Touch_LCD_2_1): https://www.waveshare.com/esp32-s3-touch-lcd-2.1.htm
- *
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7 (ESP32_S3_Touch_LCD_7): https://www.waveshare.com/esp32-s3-touch-lcd-7.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B (ESP32_S3_Touch_LCD_4_3_B): https://www.waveshare.com/esp32-s3-touch-lcd-4.3B.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5 (ESP32_S3_Touch_LCD_5): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28117
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B (ESP32_S3_Touch_LCD_5_B): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28151
*/
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// File Version ///////////////////////////////////////////////////////////
diff --git a/examples/LVGL/v8/Rotation/ESP_Panel_Board_Supported.h b/examples/LVGL/v8/Rotation/ESP_Panel_Board_Supported.h
index 75d5c84a..26354441 100644
--- a/examples/LVGL/v8/Rotation/ESP_Panel_Board_Supported.h
+++ b/examples/LVGL/v8/Rotation/ESP_Panel_Board_Supported.h
@@ -82,11 +82,19 @@
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3 (ESP32_S3_Touch_LCD_4_3): https://www.waveshare.com/esp32-s3-touch-lcd-4.3.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85 (ESP32_S3_Touch_LCD_1_85): https://www.waveshare.com/esp32-s3-touch-lcd-1.85.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1 (ESP32_S3_Touch_LCD_2_1): https://www.waveshare.com/esp32-s3-touch-lcd-2.1.htm
- *
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7 (ESP32_S3_Touch_LCD_7): https://www.waveshare.com/esp32-s3-touch-lcd-7.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B (ESP32_S3_Touch_LCD_4_3_B): https://www.waveshare.com/esp32-s3-touch-lcd-4.3B.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5 (ESP32_S3_Touch_LCD_5): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28117
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B (ESP32_S3_Touch_LCD_5_B): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28151
*/
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// File Version ///////////////////////////////////////////////////////////
diff --git a/examples/Panel/PanelTest/ESP_Panel_Board_Supported.h b/examples/Panel/PanelTest/ESP_Panel_Board_Supported.h
index 75d5c84a..26354441 100644
--- a/examples/Panel/PanelTest/ESP_Panel_Board_Supported.h
+++ b/examples/Panel/PanelTest/ESP_Panel_Board_Supported.h
@@ -82,11 +82,19 @@
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3 (ESP32_S3_Touch_LCD_4_3): https://www.waveshare.com/esp32-s3-touch-lcd-4.3.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85 (ESP32_S3_Touch_LCD_1_85): https://www.waveshare.com/esp32-s3-touch-lcd-1.85.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1 (ESP32_S3_Touch_LCD_2_1): https://www.waveshare.com/esp32-s3-touch-lcd-2.1.htm
- *
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7 (ESP32_S3_Touch_LCD_7): https://www.waveshare.com/esp32-s3-touch-lcd-7.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B (ESP32_S3_Touch_LCD_4_3_B): https://www.waveshare.com/esp32-s3-touch-lcd-4.3B.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5 (ESP32_S3_Touch_LCD_5): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28117
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B (ESP32_S3_Touch_LCD_5_B): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28151
*/
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// File Version ///////////////////////////////////////////////////////////
diff --git a/examples/PlatformIO/src/ESP_Panel_Board_Supported.h b/examples/PlatformIO/src/ESP_Panel_Board_Supported.h
index 75d5c84a..26354441 100644
--- a/examples/PlatformIO/src/ESP_Panel_Board_Supported.h
+++ b/examples/PlatformIO/src/ESP_Panel_Board_Supported.h
@@ -82,11 +82,19 @@
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3 (ESP32_S3_Touch_LCD_4_3): https://www.waveshare.com/esp32-s3-touch-lcd-4.3.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85 (ESP32_S3_Touch_LCD_1_85): https://www.waveshare.com/esp32-s3-touch-lcd-1.85.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1 (ESP32_S3_Touch_LCD_2_1): https://www.waveshare.com/esp32-s3-touch-lcd-2.1.htm
- *
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7 (ESP32_S3_Touch_LCD_7): https://www.waveshare.com/esp32-s3-touch-lcd-7.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B (ESP32_S3_Touch_LCD_4_3_B): https://www.waveshare.com/esp32-s3-touch-lcd-4.3B.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5 (ESP32_S3_Touch_LCD_5): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28117
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B (ESP32_S3_Touch_LCD_5_B): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28151
*/
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// File Version ///////////////////////////////////////////////////////////
diff --git a/examples/SquareLine/v8/Porting/ESP_Panel_Board_Supported.h b/examples/SquareLine/v8/Porting/ESP_Panel_Board_Supported.h
index 75d5c84a..26354441 100644
--- a/examples/SquareLine/v8/Porting/ESP_Panel_Board_Supported.h
+++ b/examples/SquareLine/v8/Porting/ESP_Panel_Board_Supported.h
@@ -82,11 +82,19 @@
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3 (ESP32_S3_Touch_LCD_4_3): https://www.waveshare.com/esp32-s3-touch-lcd-4.3.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85 (ESP32_S3_Touch_LCD_1_85): https://www.waveshare.com/esp32-s3-touch-lcd-1.85.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1 (ESP32_S3_Touch_LCD_2_1): https://www.waveshare.com/esp32-s3-touch-lcd-2.1.htm
- *
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7 (ESP32_S3_Touch_LCD_7): https://www.waveshare.com/esp32-s3-touch-lcd-7.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B (ESP32_S3_Touch_LCD_4_3_B): https://www.waveshare.com/esp32-s3-touch-lcd-4.3B.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5 (ESP32_S3_Touch_LCD_5): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28117
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B (ESP32_S3_Touch_LCD_5_B): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28151
*/
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// File Version ///////////////////////////////////////////////////////////
diff --git a/examples/SquareLine/v8/WiFiClock/ESP_Panel_Board_Supported.h b/examples/SquareLine/v8/WiFiClock/ESP_Panel_Board_Supported.h
index 75d5c84a..26354441 100644
--- a/examples/SquareLine/v8/WiFiClock/ESP_Panel_Board_Supported.h
+++ b/examples/SquareLine/v8/WiFiClock/ESP_Panel_Board_Supported.h
@@ -82,11 +82,19 @@
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3 (ESP32_S3_Touch_LCD_4_3): https://www.waveshare.com/esp32-s3-touch-lcd-4.3.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85 (ESP32_S3_Touch_LCD_1_85): https://www.waveshare.com/esp32-s3-touch-lcd-1.85.htm
* - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1 (ESP32_S3_Touch_LCD_2_1): https://www.waveshare.com/esp32-s3-touch-lcd-2.1.htm
- *
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7 (ESP32_S3_Touch_LCD_7): https://www.waveshare.com/esp32-s3-touch-lcd-7.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B (ESP32_S3_Touch_LCD_4_3_B): https://www.waveshare.com/esp32-s3-touch-lcd-4.3B.htm
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5 (ESP32_S3_Touch_LCD_5): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28117
+ * - BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B (ESP32_S3_Touch_LCD_5_B): https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28151
*/
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85
// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5
+// #define BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// File Version ///////////////////////////////////////////////////////////
diff --git a/src/board/ESP_PanelBoard.h b/src/board/ESP_PanelBoard.h
index 50816c8e..e3c6843c 100644
--- a/src/board/ESP_PanelBoard.h
+++ b/src/board/ESP_PanelBoard.h
@@ -36,6 +36,10 @@
+ defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3) \
+ defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_1_85) \
+ defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1) \
+ + defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7) \
+ + defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B) \
+ + defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5) \
+ + defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B) \
> 1
#error "Multiple boards enabled! Please check file `ESP_Panel_Board_Supported.h` and make sure only one board is enabled."
#endif
@@ -88,6 +92,14 @@
#include "board/waveshare/ESP32_S3_Touch_LCD_1_85.h"
#elif defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1)
#include "board/waveshare/ESP32_S3_Touch_LCD_2_1.h"
+#elif defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7)
+ #include "board/waveshare/ESP32_S3_Touch_LCD_7.h"
+#elif defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B)
+ #include "board/waveshare/ESP32_S3_Touch_LCD_4_3_B.h"
+#elif defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5)
+ #include "board/waveshare/ESP32_S3_Touch_LCD_5.h"
+#elif defined(BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B)
+ #include "board/waveshare/ESP32_S3_Touch_LCD_5_B.h"
#else
#error "Unknown board selected! Please check file `ESP_Panel_Board_Supported.h` and make sure only one board is enabled."
#endif
diff --git a/src/board/waveshare/ESP32_S3_Touch_LCD_4_3.h b/src/board/waveshare/ESP32_S3_Touch_LCD_4_3.h
index ecea5576..c6708dcd 100644
--- a/src/board/waveshare/ESP32_S3_Touch_LCD_4_3.h
+++ b/src/board/waveshare/ESP32_S3_Touch_LCD_4_3.h
@@ -133,7 +133,7 @@
/* LCD Color Settings */
/* LCD color depth in bits */
-#define ESP_PANEL_LCD_COLOR_BITS (18) // 8/16/18/24
+#define ESP_PANEL_LCD_COLOR_BITS (16) // 8/16/18/24
/*
* LCD RGB Element Order. Choose one of the following:
* - 0: RGB
@@ -251,7 +251,7 @@
// Typically set to 400K
#define ESP_PANEL_EXPANDER_I2C_SCL_PULLUP (1) // 0/1
#define ESP_PANEL_EXPANDER_I2C_SDA_PULLUP (1) // 0/1
- #define ESP_PANEL_EXPANDER_I2C_IO_SCL (18)
+ #define ESP_PANEL_EXPANDER_I2C_IO_SCL (9)
#define ESP_PANEL_EXPANDER_I2C_IO_SDA (8)
#endif
#endif /* ESP_PANEL_USE_EXPANDER */
diff --git a/src/board/waveshare/Kconfig.waveshare b/src/board/waveshare/Kconfig.waveshare
index bc6f3a84..1c5e3b55 100644
--- a/src/board/waveshare/Kconfig.waveshare
+++ b/src/board/waveshare/Kconfig.waveshare
@@ -12,3 +12,23 @@ config BOARD_WAVESHARE_ESP32_S3_Touch_LCD_2_1
bool "ESP32_S3_Touch_LCD_2_1"
help
https://www.waveshare.com/esp32-s3-touch-lcd-2.1.htm
+
+config BOARD_WAVESHARE_ESP32_S3_Touch_LCD_7
+ bool "ESP32_S3_Touch_LCD_7"
+ help
+ https://www.waveshare.com/esp32-s3-touch-lcd-7.htm
+
+config BOARD_WAVESHARE_ESP32_S3_Touch_LCD_4_3_B
+ bool "ESP32_S3_Touch_LCD_4_3_B"
+ help
+ https://www.waveshare.com/esp32-s3-touch-lcd-4.3B.htm
+
+config BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5
+ bool "ESP32_S3_Touch_LCD_5"
+ help
+ https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28117
+
+config BOARD_WAVESHARE_ESP32_S3_Touch_LCD_5_B
+ bool "ESP32_S3_Touch_LCD_5_B"
+ help
+ https://www.waveshare.com/esp32-s3-touch-lcd-5.htm?sku=28151
\ No newline at end of file