From 0f64a3b0f457414a534e62855885af05b35d0c05 Mon Sep 17 00:00:00 2001 From: Shubham Sharma <10323297+shubham-vunet@users.noreply.github.com> Date: Wed, 2 Oct 2024 21:17:45 +0530 Subject: [PATCH 1/2] Add "Lilygo T-Panel v1.2" pinmap and touch screen --- src/drv/tft/tft_driver_arduinogfx.cpp | 22 ++++++- src/sys/svc/hasp_http_async.cpp | 2 +- user_setups/esp32s3/lilygo-t-panel.ini | 87 ++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 user_setups/esp32s3/lilygo-t-panel.ini diff --git a/src/drv/tft/tft_driver_arduinogfx.cpp b/src/drv/tft/tft_driver_arduinogfx.cpp index ae73d5047..5c80d7506 100644 --- a/src/drv/tft/tft_driver_arduinogfx.cpp +++ b/src/drv/tft/tft_driver_arduinogfx.cpp @@ -25,7 +25,27 @@ void ArduinoGfx::init(int w, int h) { LOG_TRACE(TAG_TFT, F(D_SERVICE_STARTING)); -#if(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(LILYGO_T_RGB) +#if(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(LILYGO_T_PANEL) + + // pinMode(TFT_SCLK, OUTPUT); + // pinMode(TFT_MOSI, OUTPUT); + // pinMode(TFT_MISO, OUTPUT); + Arduino_DataBus* bus = new Arduino_XL9535SWSPI(17 /* SDA */, 18 /* SCL */, -1 /* XL PWD */, 17 /* XL CS */, + 15 /* XL SCK */, 16 /* XL MOSI */); + Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel( + -1 /* DE */, TFT_VSYNC /* VSYNC */, TFT_HSYNC /* HSYNC */, TFT_PCLK /* PCLK */, + TFT_B0 /* B0 */, TFT_B1 /* B1 */, TFT_B2 /* B2 */, TFT_B3 /* B3 */, TFT_B4 /* B4 */, + TFT_G0 /* G0 */, TFT_G1 /* G1 */, TFT_G2 /* G2 */, TFT_G3 /* G3 */, TFT_G4 /* G4 */, TFT_G5 /* G5 */, + TFT_R0 /* R0 */, TFT_R1 /* R1 */, TFT_R2 /* R2 */, TFT_R3 /* R3 */, TFT_R4 /* R4 */, + 1 /* hsync_polarity */, 20 /* hsync_front_porch */, 2 /* hsync_pulse_width */, 0 /* hsync_back_porch */, + 1 /* vsync_polarity */, 30 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 1 /* vsync_back_porch */, + 10 /* pclk_active_neg */, 6000000L /* prefer_speed */, false /* useBigEndian */, + 0 /* de_idle_high*/, 0 /* pclk_idle_high */); + + tft = new Arduino_RGB_Display(TFT_WIDTH /* width */, TFT_HEIGHT /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */, + bus, -1 /* RST */, st7701_sensecap_indicator_init_operations, sizeof(st7701_sensecap_indicator_init_operations)); + +#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(LILYGO_T_RGB) Wire.begin(8 /* SDA */, 48 /* SCL */, 800000L /* speed */); Arduino_DataBus* bus = new Arduino_XL9535SWSPI(8 /* SDA */, 48 /* SCL */, 2 /* XL PWD */, 3 /* XL CS */, 5 /* XL SCK */, 4 /* XL MOSI */); diff --git a/src/sys/svc/hasp_http_async.cpp b/src/sys/svc/hasp_http_async.cpp index e4e882efb..5a561bca0 100644 --- a/src/sys/svc/hasp_http_async.cpp +++ b/src/sys/svc/hasp_http_async.cpp @@ -1311,7 +1311,7 @@ void webHandleGuiConfig(AsyncWebServerRequest* request) httpMessage += getOption(-1, F("None"), bcklpin == -1); #if defined(ARDUINO_ARCH_ESP32) add_gpio_select_option(httpMessage, 5, bcklpin); // D8 on ESP32 for D1 mini 32 - add_gpio_select_option(httpMessage, 12, bcklpin); // TFT_LED on the Liligo Pi + add_gpio_select_option(httpMessage, 12, bcklpin); // TFT_LED on the Lilygo Pi add_gpio_select_option(httpMessage, 13, bcklpin); // TFT_LED on the D1 R32 + Waveshare add_gpio_select_option(httpMessage, 15, bcklpin); // TFT_LED on the AZ Touch add_gpio_select_option(httpMessage, 16, bcklpin); // D4 on ESP32 for D1 mini 32 diff --git a/user_setups/esp32s3/lilygo-t-panel.ini b/user_setups/esp32s3/lilygo-t-panel.ini new file mode 100644 index 000000000..d0f4868e1 --- /dev/null +++ b/user_setups/esp32s3/lilygo-t-panel.ini @@ -0,0 +1,87 @@ +;***************************************************; +; Lilygo T-Panel S3, 4-Inch Touch Screen ; +; - Custom esp32-s3 board ; +; - st7701s TFT ; +; - CST3240 touch controller ; +; - IO Expansion: XL9535 ; +;***************************************************; + +[lilygo-t-panel] +extends = arduino_esp32s3_v2 +board = esp32-s3-devkitc-1 +board_build.arduino.memory_type = qio_opi + +build_flags = + -D HASP_MODEL="Lilygo T-Panel v1.2" + ${arduino_esp32s3_v2.build_flags} + ${esp32s3.ps_ram} + -DLILYGO_T_PANEL + -D LILYGO_T_PANEL=1 + ;-DARDUINO_USB_CDC_ON_BOOT + ;-DUSE_USB_CDC_CONSOLE + +;region -- ArduinoGFX build options ------------------------ + -D HASP_USE_ARDUINOGFX=1 + -D HASP_LV_USE_SW_ROTATE=1 + -D ST7701_DRIVER=1 + -D TFT_WIDTH=480 + -D TFT_HEIGHT=480 + ; Bus Settings + -D TFT_HSYNC=39 + -D TFT_VSYNC=40 + -D TFT_PCLK=41 + -D TFT_B0=1 + -D TFT_B1=2 + -D TFT_B2=3 + -D TFT_B3=4 + -D TFT_B4=5 + -D TFT_G0=6 + -D TFT_G1=7 + -D TFT_G2=8 + -D TFT_G3=9 + -D TFT_G4=10 + -D TFT_G5=11 + -D TFT_R0=12 + -D TFT_R1=13 + -D TFT_R2=42 + -D TFT_R3=46 + -D TFT_R4=45 + -D TFT_BCKL=14 + + + -D TFT_HSYNC_POLARITY=1 + -D TFT_HSYNC_FRONT_PORCH=10 + -D TFT_HSYNC_PULSE_WIDTH=8 + -D TFT_HSYNC_BACK_PORCH=50 + -D TFT_VSYNC_POLARITY=1 + -D TFT_VSYNC_FRONT_PORCH=10 + -D TFT_VSYNC_PULSE_WIDTH=8 + -D TFT_VSYNC_BACK_PORCH=20 + -D TFT_PCLK_ACTIVE_NEG=1 + -D TFT_PREFER_SPEED=12000000 + -D TFT_AUTO_FLUSH=1 + ; Touch Settings + -D TOUCH_WIDTH=480 + -D TOUCH_HEIGHT=480 + -D TOUCH_SDA=17 + -D TOUCH_SCL=18 + -D TOUCH_INT=21 + -D TOUCH_RST=4 + -D TOUCH_CS=-1 + -D TOUCH_DRIVER=0x3240 + ; -D TOUCH_IRQ=-1 + ; -D I2C_TOUCH_FREQUENCY=400000 + ; -D I2C_TOUCH_ADDRESS=0x48 + ; -D I2C_TOUCH_PORT=1 + +;endregion + +lib_deps = + ${arduino_esp32s3_v2.lib_deps} +; moononournation/GFX Library for Arduino@1.4.0 ; Update needs modification of custom PCA class ; ${ft6336.lib_deps} +; ; git+https://github.com/admarschoonen/TouchLib.git + ; moononournation/GFX Library for Arduino@1.4.0 ; +[env:lilygo-t-panel_16MB] +extends = lilygo-t-panel, flash_16mb +monitor_port = COM8 +upload_port = COM8 From f61f0bdfa5da5dfb4106ec0898d56f870362bd2f Mon Sep 17 00:00:00 2001 From: Shubham Sharma <10323297+shubham-vunet@users.noreply.github.com> Date: Wed, 2 Oct 2024 22:28:51 +0530 Subject: [PATCH 2/2] Fix code --- src/drv/tft/tft_driver_arduinogfx.cpp | 4 ---- user_setups/esp32s3/lilygo-t-panel.ini | 22 +++++----------------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/src/drv/tft/tft_driver_arduinogfx.cpp b/src/drv/tft/tft_driver_arduinogfx.cpp index 5c80d7506..be22c08ed 100644 --- a/src/drv/tft/tft_driver_arduinogfx.cpp +++ b/src/drv/tft/tft_driver_arduinogfx.cpp @@ -26,10 +26,6 @@ void ArduinoGfx::init(int w, int h) LOG_TRACE(TAG_TFT, F(D_SERVICE_STARTING)); #if(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(LILYGO_T_PANEL) - - // pinMode(TFT_SCLK, OUTPUT); - // pinMode(TFT_MOSI, OUTPUT); - // pinMode(TFT_MISO, OUTPUT); Arduino_DataBus* bus = new Arduino_XL9535SWSPI(17 /* SDA */, 18 /* SCL */, -1 /* XL PWD */, 17 /* XL CS */, 15 /* XL SCK */, 16 /* XL MOSI */); Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel( diff --git a/user_setups/esp32s3/lilygo-t-panel.ini b/user_setups/esp32s3/lilygo-t-panel.ini index d0f4868e1..54d5f6006 100644 --- a/user_setups/esp32s3/lilygo-t-panel.ini +++ b/user_setups/esp32s3/lilygo-t-panel.ini @@ -2,7 +2,7 @@ ; Lilygo T-Panel S3, 4-Inch Touch Screen ; ; - Custom esp32-s3 board ; ; - st7701s TFT ; -; - CST3240 touch controller ; +; - CST3240 touch controller (WIP) ; ; - IO Expansion: XL9535 ; ;***************************************************; @@ -48,18 +48,6 @@ build_flags = -D TFT_R4=45 -D TFT_BCKL=14 - - -D TFT_HSYNC_POLARITY=1 - -D TFT_HSYNC_FRONT_PORCH=10 - -D TFT_HSYNC_PULSE_WIDTH=8 - -D TFT_HSYNC_BACK_PORCH=50 - -D TFT_VSYNC_POLARITY=1 - -D TFT_VSYNC_FRONT_PORCH=10 - -D TFT_VSYNC_PULSE_WIDTH=8 - -D TFT_VSYNC_BACK_PORCH=20 - -D TFT_PCLK_ACTIVE_NEG=1 - -D TFT_PREFER_SPEED=12000000 - -D TFT_AUTO_FLUSH=1 ; Touch Settings -D TOUCH_WIDTH=480 -D TOUCH_HEIGHT=480 @@ -69,10 +57,10 @@ build_flags = -D TOUCH_RST=4 -D TOUCH_CS=-1 -D TOUCH_DRIVER=0x3240 - ; -D TOUCH_IRQ=-1 - ; -D I2C_TOUCH_FREQUENCY=400000 - ; -D I2C_TOUCH_ADDRESS=0x48 - ; -D I2C_TOUCH_PORT=1 + ; -D TOUCH_IRQ= + ; -D I2C_TOUCH_FREQUENCY= + ; -D I2C_TOUCH_ADDRESS= + ; -D I2C_TOUCH_PORT= ;endregion