From 7f9dc100bd8dc2a88c0e0106a4763111cd0d484d Mon Sep 17 00:00:00 2001 From: fvanroie Date: Tue, 11 Apr 2023 00:06:32 +0200 Subject: [PATCH] Update GS-T3E to PCB v2.3 --- src/drv/tft/tft_driver_arduinogfx.cpp | 30 ++++-- user_setups/esp32s3/gs-t3e.ini | 150 +++++++++++++++++++++----- 2 files changed, 147 insertions(+), 33 deletions(-) diff --git a/src/drv/tft/tft_driver_arduinogfx.cpp b/src/drv/tft/tft_driver_arduinogfx.cpp index 91f8f822..48f798c2 100644 --- a/src/drv/tft/tft_driver_arduinogfx.cpp +++ b/src/drv/tft/tft_driver_arduinogfx.cpp @@ -23,7 +23,21 @@ void tftPinInfo(const __FlashStringHelper* pinfunction, int8_t pin) void ArduinoGfx::init(int w, int h) { LOG_TRACE(TAG_TFT, F(D_SERVICE_STARTING)); -#if(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(GC9503V_DRIVER) + +#if(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 */); + Arduino_ESP32RGBPanel* rgbpanel = new Arduino_ESP32RGBPanel( + 45 /* DE */, 41 /* VSYNC */, 47 /* HSYNC */, 42 /* PCLK */, 21 /* R0 */, 18 /* R1 */, 17 /* R2 */, 46 /* R3 */, + 15 /* R4 */, 14 /* G0 */, 13 /* G1 */, 12 /* G2 */, 11 /* G3 */, 10 /* G4 */, 9 /* G5 */, 7 /* B0 */, + 6 /* B1 */, 5 /* B2 */, 3 /* B3 */, 2 /* B4 */, 1 /* hsync_polarity */, 50 /* hsync_front_porch */, + 1 /* hsync_pulse_width */, 30 /* hsync_back_porch */, 1 /* vsync_polarity */, 20 /* vsync_front_porch */, + 1 /* vsync_pulse_width */, 30 /* vsync_back_porch */, 1 /* pclk_active_neg */); + tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST, + st7701_type4_init_operations, sizeof(st7701_type4_init_operations)); + +#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(GC9503V_DRIVER) Arduino_DataBus* bus = new Arduino_SWSPI(TFT_DC, TFT_CS, TFT_SCLK, TFT_MOSI, TFT_MISO); Arduino_ESP32RGBPanel* rgbpanel = new Arduino_ESP32RGBPanel( TFT_DE, TFT_VSYNC, TFT_HSYNC, TFT_PCLK, TFT_R0, TFT_R1, TFT_R2, TFT_R3, TFT_R4, TFT_G0, TFT_G1, TFT_G2, TFT_G3, @@ -33,18 +47,18 @@ void ArduinoGfx::init(int w, int h) tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST, gc9503v_type1_init_operations, sizeof(gc9503v_type1_init_operations)); -#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) +#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(ST7701_DRIVER) /* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */ Arduino_DataBus* bus = new Arduino_SWSPI(TFT_DC, TFT_CS, TFT_SCLK, TFT_MOSI, TFT_MISO); Arduino_ESP32RGBPanel* rgbpanel = new Arduino_ESP32RGBPanel( - 18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */, 4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, - 0 /* R4 */, 10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */, 15 /* B0 */, 14 /* B1 */, - 13 /* B2 */, 12 /* B3 */, 11 /* B4 */, TFT_HSYNC_POLARITY, TFT_HSYNC_FRONT_PORCH, TFT_HSYNC_PULSE_WIDTH, - TFT_HSYNC_BACK_PORCH, TFT_VSYNC_POLARITY, TFT_VSYNC_FRONT_PORCH, TFT_VSYNC_PULSE_WIDTH, TFT_VSYNC_BACK_PORCH); + TFT_DE, TFT_VSYNC, TFT_HSYNC, TFT_PCLK, TFT_R0, TFT_R1, TFT_R2, TFT_R3, TFT_R4, TFT_G0, TFT_G1, TFT_G2, TFT_G3, + TFT_G4, TFT_G5, TFT_B0, TFT_B1, TFT_B2, TFT_B3, TFT_B4, TFT_HSYNC_POLARITY, TFT_HSYNC_FRONT_PORCH, + TFT_HSYNC_PULSE_WIDTH, TFT_HSYNC_BACK_PORCH, TFT_VSYNC_POLARITY, TFT_VSYNC_FRONT_PORCH, TFT_VSYNC_PULSE_WIDTH, + TFT_VSYNC_BACK_PORCH); /* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */ - tft = new Arduino_RGB_Display(480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, - TFT_RST, st7701_type1_init_operations, sizeof(st7701_type1_init_operations)); + tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST, + st7701_type1_init_operations, sizeof(st7701_type1_init_operations)); #elif 1 /* Reset is not implemented in the panel */ if(TFT_RST != GFX_NOT_DEFINED) { diff --git a/user_setups/esp32s3/gs-t3e.ini b/user_setups/esp32s3/gs-t3e.ini index 058ec303..9a093f1a 100644 --- a/user_setups/esp32s3/gs-t3e.ini +++ b/user_setups/esp32s3/gs-t3e.ini @@ -5,7 +5,86 @@ ; - gt911 touch controller ; ;***************************************************; -[odm-t3e] +; PCB version 1 => DISCONTINUED PRODUCT without ipex connector +[odm-t3e-v1] +extends = arduino_esp32s3_v2 +board = esp32-s3-devkitc-1 +board_build.arduino.memory_type = qio_opi + +build_flags = + -D HASP_MODEL="GS-T3E v1" + ${arduino_esp32s3_v2.build_flags} + ${esp32s3.ps_ram} + ;-DARDUINO_USB_CDC_ON_BOOT + ;-DUSE_USB_CDC_CONSOLE + +;region -- ArduinoGFX build options ------------------------ + -D HASP_USE_ARDUINOGFX=1 + -D ST7701_DRIVER=1 + -D TFT_WIDTH=480 + -D TFT_HEIGHT=480 + ; Bus Settings + -D TFT_HSYNC=16 + -D TFT_VSYNC=17 + -D TFT_DE=18 + -D TFT_PCLK=21 + -D TFT_R0=4 + -D TFT_R1=3 + -D TFT_R2=2 + -D TFT_R3=1 + -D TFT_R4=0 + -D TFT_G0=10 + -D TFT_G1=9 + -D TFT_G2=8 + -D TFT_G3=7 + -D TFT_G4=6 + -D TFT_G5=5 + -D TFT_B0=15 + -D TFT_B1=14 + -D TFT_B2=13 + -D TFT_B3=12 + -D TFT_B4=11 + -D TFT_DC=-1 + -D TFT_CS=39 + -D TFT_SCLK=15 + -D TFT_MOSI=14 + -D TFT_MISO=-1 + -D TFT_RST=-1 + -D TFT_BUSY=-1 + -D TFT_BCKL=38 + ; Panel Settings + -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_DRIVER=0x911 + -D TOUCH_WIDTH=480 + -D TOUCH_HEIGHT=480 + -D TOUCH_SDA=40 + -D TOUCH_SCL=41 + -D TOUCH_RST=-1 + -D TOUCH_IRQ=-1 + -D I2C_TOUCH_FREQUENCY=400000 + -D I2C_TOUCH_ADDRESS=0x5D ; or 0x14 + -D I2C_TOUCH_PORT=1 +;endregion + +lib_deps = + ${arduino_esp32s3_v2.lib_deps} + ${arduinogfx.lib_deps} + ${goodix.lib_deps} + + +; PCB version 2 => SUPPORTED PRODUCT with ESP32-S3 module +[odm-t3e-v2] extends = arduino_esp32s3_v2 board = esp32-s3-devkitc-1 board_build.arduino.memory_type = qio_opi @@ -23,31 +102,36 @@ build_flags = -D TOUCH_DRIVER=0x911 -D TFT_WIDTH=480 -D TFT_HEIGHT=480 - -D SPI_FREQUENCY=20000000 - -D TFT_RD=-1 - -D TFT_WR=47 - -D TFT_RS=0 - -DESP32_PARALLEL - -D TFT_D0=9 - -D TFT_D1=46 - -D TFT_D2=3 - -D TFT_D3=8 - -D TFT_D4=18 - -D TFT_D5=17 - -D TFT_D6=16 - -D TFT_D7=15 - -D TFT_CS=-1 + ; Bus Settings + -D TFT_DE=40 + -D TFT_VSYNC=39 + -D TFT_HSYNC=38 + -D TFT_PCLK=41 + -D TFT_R0=8 + -D TFT_R1=18 + -D TFT_R2=17 + -D TFT_R3=16 + -D TFT_R4=0 + -D TFT_G0=13 + -D TFT_G1=12 + -D TFT_G2=11 + -D TFT_G3=10 + -D TFT_G4=9 + -D TFT_G5=3 + -D TFT_B0=15 + -D TFT_B1=48 + -D TFT_B2=47 + -D TFT_B3=21 + -D TFT_B4=14 + -D TFT_DC=-1 + -D TFT_CS=4 + -D TFT_SCLK=15 + -D TFT_MOSI=48 + -D TFT_MISO=-1 -D TFT_RST=4 -D TFT_BUSY=-1 - -D TFT_BCKL=38 - -D I2C_TOUCH_FREQUENCY=400000 - -D I2C_TOUCH_ADDRESS=0x5D ; or 0x14 - -D I2C_TOUCH_PORT=1 - -D TOUCH_SDA=40 - -D TOUCH_SCL=41 - -D TOUCH_RST=-1 - -D TOUCH_IRQ=-1 - -D TFT_AUTO_FLUSH=1 + -D TFT_BCKL=42 + ; Panel Settings -D TFT_HSYNC_POLARITY=1 -D TFT_HSYNC_FRONT_PORCH=10 -D TFT_HSYNC_PULSE_WIDTH=8 @@ -56,6 +140,20 @@ build_flags = -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_DRIVER=0x911 + -D TOUCH_WIDTH=480 + -D TOUCH_HEIGHT=480 + -D TOUCH_SDA=7 + -D TOUCH_SCL=6 + -D TOUCH_RST=-1 + -D TOUCH_IRQ=-1 + -D I2C_TOUCH_ADDRESS=0x5d ; or 0x14 + -D I2C_TOUCH_FREQUENCY=400000 + -D I2C_TOUCH_PORT=1 ;endregion lib_deps = @@ -63,6 +161,8 @@ lib_deps = ${arduinogfx.lib_deps} ${goodix.lib_deps} +[env:gs-t3e_v1_16MB] +extends = odm-t3e-v1, flash_16mb [env:gs-t3e_16MB] -extends = odm-t3e, flash_16mb \ No newline at end of file +extends = odm-t3e-v2, flash_16mb \ No newline at end of file