-
Notifications
You must be signed in to change notification settings - Fork 41
Description
Hi, I am trying to get the library to work on a Waveshare round lcd.
I can get the QSPI LCD to start just fine, however when I try to enable the CST816S it fails to read from it.
You can find the platformio project I set up for this (including special board JSON, lib_deps etc) and the commit where the QSPI works but the I2C fails to initialise : here
I have tried with and without pullups enabled (the schematic seems to indicate there are none on the circuit, and as far as I can tell this is a dedicated I2C line.
To note, the reset for the TP is on an IO Expander that I am currently not activating.
Obviously ultimately I can circumvent and initialise it all separately, but I like the all-in-one approach to the library. Am I missing something or ultimately am I forced to do a manual init / separate management of touch input?
The logs I get through serial, showing the initialisation fail :
[ 316][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 44 successfully set to type UART_RX (2) with bus 0x3fc945c4
#0 0x3fc945c4 in ?? at C:/Users/Martin/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-uart.c:82
[ 327][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 43 successfully set to type UART_TX (3) with bus 0x3fc945c4
#0 0x3fc945c4 in ?? at C:/Users/Martin/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-uart.c:82
[ 337][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 19 successfully set to type USB_DM (45) with bus 0x3fc97648
#0 0x3fc97648 in ?? at C:/Users/Martin/.platformio/packages/framework-arduinoespressif32/cores/esp32/HWCDC.cpp:610
[ 348][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 20 successfully set to type USB_DP (46) with bus 0x3fc97648
#0 0x3fc97648 in ?? at C:/Users/Martin/.platformio/packages/framework-arduinoespressif32/cores/esp32/HWCDC.cpp:610
=========== Before Setup Start ===========
Chip Info:
------------------------------------------
Model : ESP32-S3
Package : 0
Revision : 0.02
Cores : 2
CPU Frequency : 240 MHz
XTAL Frequency : 40 MHz
Features Bitfield : 0x00000012
Embedded Flash : No
Embedded PSRAM : No
2.4GHz WiFi : Yes
Classic BT : No
BT Low Energy : Yes
IEEE 802.15.4 : No
------------------------------------------
INTERNAL Memory Info:
------------------------------------------
Total Size : 386676 B ( 377.6 KB)
Free Bytes : 354432 B ( 346.1 KB)
Allocated Bytes : 27244 B ( 26.6 KB)
Minimum Free Bytes: 349384 B ( 341.2 KB)
Largest Free Block: 319476 B ( 312.0 KB)
------------------------------------------
SPIRAM Memory Info:
------------------------------------------
Total Size : 8388608 B (8192.0 KB)
Free Bytes : 8385672 B (8189.1 KB)
Allocated Bytes : 576 B ( 0.6 KB)
Minimum Free Bytes: 8385672 B (8189.1 KB)
Largest Free Block: 8257524 B (8064.0 KB)
Bus Mode : OPI
------------------------------------------
Flash Info:
------------------------------------------
Chip Size : 16777216 B (16 MB)
Block Size : 65536 B ( 64.0 KB)
Sector Size : 4096 B ( 4.0 KB)
Page Size : 256 B ( 0.2 KB)
Bus Speed : 80 MHz
Bus Mode : QIO
------------------------------------------
Partitions Info:
------------------------------------------
nvs : addr: 0x00009000, size: 20.0 KB, type: DATA, subtype: NVS
otadata : addr: 0x0000E000, size: 8.0 KB, type: DATA, subtype: OTA
app0 : addr: 0x00010000, size: 6400.0 KB, type: APP, subtype: OTA_0
app1 : addr: 0x00650000, size: 6400.0 KB, type: APP, subtype: OTA_1
spiffs : addr: 0x00C90000, size: 3456.0 KB, type: DATA, subtype: SPIFFS
coredump : addr: 0x00FF0000, size: 64.0 KB, type: DATA, subtype: COREDUMP
------------------------------------------
Software Info:
------------------------------------------
Compile Date/Time : Oct 22 2024 15:21:48
ESP-IDF Version : v5.1.4-674-gd38afc77db-dirty
Arduino Version : 3.0.5
------------------------------------------
Board Info:
------------------------------------------
Arduino Board : Waveshare ESP32S3 Round LCD
Arduino Variant : esp32s3
Core Debug Level : 5
Arduino Runs Core : 1
Arduino Events on : 1
Arduino USB Mode : 1
CDC On Boot : 1
============ Before Setup End ============
[ 683][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type GPIO (1) successfully set to 0x4205b9b0
#0 0x4205b9b0 in gpioDetachBus at C:/Users/Martin/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.c:100
[ 684][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 5 successfully set to type GPIO (1) with bus 0x6
[ 693][I][esp32-hal-periman.c:141] perimanSetPinBus(): Pin 19 already has type USB_DM (45) with bus 0x3fc97648
#0 0x3fc97648 in ?? at C:/Users/Martin/.platformio/packages/framework-arduinoespressif32/cores/esp32/HWCDC.cpp:610
[ 702][I][esp32-hal-periman.c:141] perimanSetPinBus(): Pin 20 already has type USB_DP (46) with bus 0x3fc97648
#0 0x3fc97648 in ?? at C:/Users/Martin/.platformio/packages/framework-arduinoespressif32/cores/esp32/HWCDC.cpp:610
Start panel
D (403) ESP_Panel: Panel init start
D (407) ESP_Panel: Use LCD
D (409) ESP_Panel: Use QSPI bus
D (412) ESP_Panel: Create LCD bus
D (415) ESP_PanelHost: Add host SPI[1]
D (418) ESP_Panel: Create LCD device
D (422) ESP_Panel: Use touch
D (424) ESP_Panel: Use I2C bus
D (427) ESP_PanelHost: Add host I2C[0]
D (431) ESP_Panel: Create touch bus
D (434) ESP_Panel: Create touch device
D (437) ESP_Panel: Initialize host
D (441) ESP_PanelHost: Initialize host I2C[0]
D (445) ESP_PanelHost: Initialize host SPI[1]
D (449) ESP_Panel: Panel init end
D (452) ESP_PanelHost: Destroyed
D (455) ESP_Panel: Panel begin start
D (458) ESP_Panel: Begin LCD
D (461) ESP_PanelBus_QSPI: Panel IO @0x3fcecc04 created
D (465) st77916: new st77916 panel @0x3fced170
I (470) st77916: LCD panel create success, version: 0.0.2
D (595) ESP_PanelLcd: Begin start
D (742) st77916: send init commands success
D (742) ESP_PanelLcd: Begin end
D (742) ESP_Panel: Begin touch
D (742) ESP_PanelBus_I2C: Panel IO @0x3fced278 created
D (745) ESP_PanelTouch: Enable interruption
E (750) lcd_panel.io.i2c: panel_io_i2c_rx_buffer(135): i2c transaction failed
E (756) CST816S: read_id(186): I2C read failed
E (760) CST816S: esp_lcd_touch_new_i2c_cst816s(90): Read version failed
E (767) CST816S: Initialization failed!
E (770) CST816S_CPP: [ESP_FAIL] begin(43): New driver failed
E (776) ESP_Panel: begin(549): Begin touch failed
Doing BGR test
D (893) ESP_PanelLcd: Fill the rest lines (8) with white color
=========== After Setup Start ============
INTERNAL Memory Info:
------------------------------------------
Total Size : 386676 B ( 377.6 KB)
Free Bytes : 344448 B ( 336.4 KB)
Allocated Bytes : 36556 B ( 35.7 KB)
Minimum Free Bytes: 329240 B ( 321.5 KB)
Largest Free Block: 311284 B ( 304.0 KB)
------------------------------------------
SPIRAM Memory Info:
------------------------------------------
Total Size : 8388608 B (8192.0 KB)
Free Bytes : 8385012 B (8188.5 KB)
Allocated Bytes : 1156 B ( 1.1 KB)
Minimum Free Bytes: 8369156 B (8173.0 KB)
Largest Free Block: 8257524 B (8064.0 KB)
------------------------------------------
GPIO Info:
------------------------------------------
GPIO : BUS_TYPE[bus/unit][chan]
--------------------------------------
5 : GPIO
19 : USB_DM
20 : USB_DP
43 : UART_TX[0]
44 : UART_RX[0]
============ After Setup End =============
My ESP_Panel_Board_Custom.h :
/*
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
// *INDENT-OFF*
/* Set to 1 if using a custom board */
#define ESP_PANEL_USE_CUSTOM_BOARD (1) // 0/1
#if ESP_PANEL_USE_CUSTOM_BOARD
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////// 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. Choose one of the following:
* - EK9716B
* - GC9A01, GC9B71, GC9503
* - ILI9341
* - NV3022B
* - SH8601
* - SPD2010
* - ST7262, ST7701, ST7789, ST7796, ST77916, ST77922
*/
#define ESP_PANEL_LCD_NAME ST77916
/* LCD resolution in pixels */
#define ESP_PANEL_LCD_WIDTH (360)
#define ESP_PANEL_LCD_HEIGHT (360)
/* 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.
*
* Set to 1 if only the RGB interface is used without the 3-wire SPI interface,
*/
#define ESP_PANEL_LCD_BUS_SKIP_INIT_HOST (0) // 0/1
/**
* LCD Bus Type. Choose one of the following:
* - ESP_PANEL_BUS_TYPE_I2C (not ready)
* - ESP_PANEL_BUS_TYPE_SPI
* - ESP_PANEL_BUS_TYPE_QSPI
* - ESP_PANEL_BUS_TYPE_I80 (not ready)
* - ESP_PANEL_BUS_TYPE_RGB (only supported for ESP32-S3)
*/
#define ESP_PANEL_LCD_BUS_TYPE (ESP_PANEL_BUS_TYPE_QSPI)
/**
* 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_SPI
#define ESP_PANEL_LCD_BUS_HOST_ID (1) // Typically set to 1
#define ESP_PANEL_LCD_SPI_IO_CS (5)
#if !ESP_PANEL_LCD_BUS_SKIP_INIT_HOST
#define ESP_PANEL_LCD_SPI_IO_SCK (7)
#define ESP_PANEL_LCD_SPI_IO_MOSI (6)
#define ESP_PANEL_LCD_SPI_IO_MISO (-1) // -1 if not used
#endif
#define ESP_PANEL_LCD_SPI_IO_DC (4)
#define ESP_PANEL_LCD_SPI_MODE (0) // 0/1/2/3, typically set to 0
#define ESP_PANEL_LCD_SPI_CLK_HZ (40 * 1000 * 1000)
// Should be an integer divisor of 80M, typically set to 40M
#define ESP_PANEL_LCD_SPI_TRANS_QUEUE_SZ (10) // Typically set to 10
#define ESP_PANEL_LCD_SPI_CMD_BITS (8) // Typically set to 8
#define ESP_PANEL_LCD_SPI_PARAM_BITS (8) // Typically set to 8
#elif ESP_PANEL_LCD_BUS_TYPE == ESP_PANEL_BUS_TYPE_QSPI
#define ESP_PANEL_LCD_BUS_HOST_ID (1) // Typically set to 1
#define ESP_PANEL_LCD_SPI_IO_CS (21)
#if !ESP_PANEL_LCD_BUS_SKIP_INIT_HOST
#define ESP_PANEL_LCD_SPI_IO_SCK (40)
#define ESP_PANEL_LCD_SPI_IO_DATA0 (46)
#define ESP_PANEL_LCD_SPI_IO_DATA1 (45)
#define ESP_PANEL_LCD_SPI_IO_DATA2 (42)
#define ESP_PANEL_LCD_SPI_IO_DATA3 (41)
#endif
#define ESP_PANEL_LCD_SPI_MODE (0) // 0/1/2/3, typically set to 0
#define ESP_PANEL_LCD_SPI_CLK_HZ (80 * 1000 * 1000)
// Should be an integer divisor of 80M, typically set to 40M
#define ESP_PANEL_LCD_SPI_TRANS_QUEUE_SZ (10) // Typically set to 10
#define ESP_PANEL_LCD_SPI_CMD_BITS (32) // Typically set to 32
#define ESP_PANEL_LCD_SPI_PARAM_BITS (8) // Typically set to 8
#elif 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 (10)
#define ESP_PANEL_LCD_RGB_HBP (10)
#define ESP_PANEL_LCD_RGB_HFP (20)
#define ESP_PANEL_LCD_RGB_VPW (10)
#define ESP_PANEL_LCD_RGB_VBP (10)
#define ESP_PANEL_LCD_RGB_VFP (10)
#define ESP_PANEL_LCD_RGB_PCLK_ACTIVE_NEG (0) // 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_FRAME_BUF_NUM (1) // 1/2/3
#define ESP_PANEL_LCD_RGB_BOUNCE_BUF_SIZE (0) // 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 (17) // -1 if not used
#define ESP_PANEL_LCD_RGB_IO_PCLK (9)
#define ESP_PANEL_LCD_RGB_IO_DISP (-1) // -1 if not used
// | RGB565 | RGB666 | RGB888 |
// |--------|--------|--------|
#define ESP_PANEL_LCD_RGB_IO_DATA0 (10) // | B0 | B0-1 | B0-3 |
#define ESP_PANEL_LCD_RGB_IO_DATA1 (11) // | B1 | B2 | B4 |
#define ESP_PANEL_LCD_RGB_IO_DATA2 (12) // | B2 | B3 | B5 |
#define ESP_PANEL_LCD_RGB_IO_DATA3 (13) // | B3 | B4 | B6 |
#define ESP_PANEL_LCD_RGB_IO_DATA4 (14) // | B4 | B5 | B7 |
#define ESP_PANEL_LCD_RGB_IO_DATA5 (21) // | G0 | G0 | G0-2 |
#define ESP_PANEL_LCD_RGB_IO_DATA6 (47) // | G1 | G1 | G3 |
#define ESP_PANEL_LCD_RGB_IO_DATA7 (48) // | G2 | G2 | G4 |
#if ESP_PANEL_LCD_RGB_DATA_WIDTH > 8
#define ESP_PANEL_LCD_RGB_IO_DATA8 (45) // | G3 | G3 | G5 |
#define ESP_PANEL_LCD_RGB_IO_DATA9 (38) // | G4 | G4 | G6 |
#define ESP_PANEL_LCD_RGB_IO_DATA10 (39) // | G5 | G5 | G7 |
#define ESP_PANEL_LCD_RGB_IO_DATA11 (40) // | R0 | R0-1 | R0-3 |
#define ESP_PANEL_LCD_RGB_IO_DATA12 (41) // | R1 | R2 | R4 |
#define ESP_PANEL_LCD_RGB_IO_DATA13 (42) // | R2 | R3 | R5 |
#define ESP_PANEL_LCD_RGB_IO_DATA14 (2) // | R3 | R4 | R6 |
#define ESP_PANEL_LCD_RGB_IO_DATA15 (1) // | 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
#else
#error "The function is not ready and will be implemented in the future."
#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. Formater: 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 */
/* Reset pin */
#define ESP_PANEL_LCD_IO_RST (-1) // IO num of RESET pin, set to -1 if not use
#define ESP_PANEL_LCD_RST_LEVEL (0) // Active level. 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. Choose one of the following:
* - CST816S
* - FT5x06
* - GT911, GT1151
* - ST1633, ST7123
* - TT21100
* - XPT2046
*/
#define ESP_PANEL_TOUCH_NAME CST816S
/* 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. Choose one of the following:
* - ESP_PANEL_BUS_TYPE_I2C
* - ESP_PANEL_BUS_TYPE_SPI
*/
#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) // Typically set to 0 to use the default address.
// - For touchs with only one address, set to 0
// - For touchs with multiple addresses, set to 0 or the address
// Like 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 (3)
#define ESP_PANEL_TOUCH_I2C_IO_SDA (1)
#endif
#elif ESP_PANEL_TOUCH_BUS_TYPE == ESP_PANEL_BUS_TYPE_SPI
#define ESP_PANEL_TOUCH_BUS_HOST_ID (1) // Typically set to 1
#define ESP_PANEL_TOUCH_SPI_IO_CS (5)
#if !ESP_PANEL_TOUCH_BUS_SKIP_INIT_HOST
#define ESP_PANEL_TOUCH_SPI_IO_SCK (7)
#define ESP_PANEL_TOUCH_SPI_IO_MOSI (6)
#define ESP_PANEL_TOUCH_SPI_IO_MISO (9)
#endif
#define ESP_PANEL_TOUCH_SPI_CLK_HZ (1 * 1000 * 1000)
// Should be an integer divisor of 80M, typically set to 1M
#else
#error "The function is not ready and will be implemented in the future."
#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 */
/* Reset pin */
#define ESP_PANEL_TOUCH_IO_RST (-1) // IO num of RESET pin, set to -1 if not use
// For GT911, the RST pin is also used to configure the I2C address
#define ESP_PANEL_TOUCH_RST_LEVEL (0) // Active level. 0: low level, 1: high level
/* Interrupt pin */
#define ESP_PANEL_TOUCH_IO_INT (4) // IO num of INT pin, set to -1 if not use
// For GT911, the INT pin is also used to configure the I2C address
#define ESP_PANEL_TOUCH_INT_LEVEL (0) // Active level. 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
/* Backlight pin */
#define ESP_PANEL_BACKLIGHT_IO (45) // IO num of backlight pin
#define ESP_PANEL_BACKLIGHT_ON_LEVEL (1) // 0: low level, 1: high level
/* Set to 1 if you want to 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 (1) // 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 (0) // 0/1
#if ESP_PANEL_USE_EXPANDER
/**
* IO expander name. Choose one of the following:
* - CH422G
* - HT8574
* - TCA95xx_8bit
* - TCA95xx_16bit
*/
#define ESP_PANEL_EXPANDER_NAME TCA95xx_8bit
/* 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 (0) // 0/1
/* IO expander parameters */
#define ESP_PANEL_EXPANDER_HOST_ID (0) // Typically set to 0
#define ESP_PANEL_EXPANDER_I2C_ADDRESS (0x20) // The actual I2C address. Even for the same model of IC,
// the I2C address may be different, and confirmation based on
// the actual hardware connection is required
#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 (18)
#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 )
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// File Version ///////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
* Do not change the following versions, they are used to check if the configurations in this file are compatible with
* the current version of `ESP_Panel_Board_Custom.h` in the library. The detailed rules are as follows:
*
* 1. If the major version is not consistent, then the configurations in this file are incompatible with the library
* and must be replaced with the file from the library.
* 2. If the minor version is not consistent, this file might be missing some new configurations, which will be set to
* default values. It is recommended to replace it with the file from the library.
* 3. Even if the patch version is not consistent, it will not affect normal functionality.
*
*/
#define ESP_PANEL_BOARD_CUSTOM_FILE_VERSION_MAJOR 0
#define ESP_PANEL_BOARD_CUSTOM_FILE_VERSION_MINOR 2
#define ESP_PANEL_BOARD_CUSTOM_FILE_VERSION_PATCH 2
#endif /* ESP_PANEL_USE_CUSTOM_BOARD */
// *INDENT-OFF*