;***************************************************;
;   Makerfabs ESP32-S3 Parallel TFT With Touch      ;
;               - 16-bit RGB TFT                    ;
;               - GT911 touch controller            ;
;***************************************************;

[makerfabs-s3-tft-rgb]
extends = arduino_esp32s3_v2
board = esp32-s3-devkitc-1
board_build.arduino.memory_type = qio_opi

build_flags =
    ${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 HASP_LV_USE_SW_ROTATE=1
;endregion

lib_deps =
    ${arduino_esp32s3_v2.lib_deps}
    ${arduinogfx.lib_deps}
    Arduino_RPi_DPI_RGBPanel_mod
    ${goodix.lib_deps}

[env:makerfabs-s3-tft40-rgb]
extends = makerfabs-s3-tft-rgb, flash_16mb

build_flags =
    -D HASP_MODEL="Makerfabs ESP32-S3 Parallel TFT With Touch 4.0"
    ${makerfabs-s3-tft-rgb.build_flags}
;region -- ArduinoGFX build options ------------------------
    -D HASP_USE_ARDUINOGFX=1
    -D ST7701_DRIVER=1
    -D TOUCH_DRIVER=0x911
    -D TFT_WIDTH=480
    -D TFT_HEIGHT=480
    ; Bus Settings
    -D TFT_DE=45
    -D TFT_VSYNC=4
    -D TFT_HSYNC=5
    -D TFT_PCLK=21
    -D TFT_B0=6
    -D TFT_B1=7
    -D TFT_B2=15
    -D TFT_B3=16
    -D TFT_B4=8
    -D TFT_G0=0
    -D TFT_G1=9
    -D TFT_G2=14
    -D TFT_G3=47
    -D TFT_G4=48
    -D TFT_G5=3
    -D TFT_R0=39
    -D TFT_R1=40
    -D TFT_R2=41
    -D TFT_R3=42
    -D TFT_R4=2
    -D TFT_DC=-1
    -D TFT_CS=1
    -D TFT_SCLK=12
    -D TFT_MOSI=11
    -D TFT_MISO=-1
    -D TFT_RST=-1
    -D TFT_BUSY=-1
    -D TFT_BCKL=-1  ; 44 after soldering R28
    ; 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=14000000
    -D TFT_AUTO_FLUSH=1
    ; Touch Settings
    -D TOUCH_DRIVER=0x911
    -D TOUCH_WIDTH=480
    -D TOUCH_HEIGHT=480
    -D TOUCH_SDA=17
    -D TOUCH_SCL=18
    -D TOUCH_RST=38
    -D TOUCH_IRQ=-1
    -D I2C_TOUCH_ADDRESS=0x5d ; or 0x14
    -D I2C_TOUCH_FREQUENCY=400000
    -D I2C_TOUCH_PORT=1
;endregion

lib_deps =
    ${sunton-esp32-s3-tft.lib_deps}
    ${goodix.lib_deps}


[env:makerfabs-s3-tft43-rgb]
extends = makerfabs-s3-tft-rgb, flash_16mb

build_flags =
    -D HASP_MODEL="Makerfabs ESP32-S3 Parallel TFT With Touch 4.3"
    ${makerfabs-s3-tft-rgb.build_flags}
    ; Bus Settings
    -D LV_VDB_SIZE=76800 ; 10% of full framebuffer
    -D TFT_WIDTH=800
    -D TFT_HEIGHT=480
    -D TFT_DE=40
    -D TFT_VSYNC=41
    -D TFT_HSYNC=39
    -D TFT_PCLK=42
    -D TFT_R0=45
    -D TFT_R1=48
    -D TFT_R2=47
    -D TFT_R3=21
    -D TFT_R4=14
    -D TFT_G0=5
    -D TFT_G1=6
    -D TFT_G2=7
    -D TFT_G3=15
    -D TFT_G4=16
    -D TFT_G5=4
    -D TFT_B0=8
    -D TFT_B1=3
    -D TFT_B2=46
    -D TFT_B3=9
    -D TFT_B4=1
    -D TFT_BCKL=2
    ; Panel Settings
    -D TFT_HSYNC_POLARITY=0
    -D TFT_HSYNC_FRONT_PORCH=48   ; Maximum HSYNC Front Porch
    -D TFT_HSYNC_PULSE_WIDTH=4    ; Typical HSYNC Pulse Width
    -D TFT_HSYNC_BACK_PORCH=16    ; Typical HSYNC Back Porch
    -D TFT_VSYNC_POLARITY=0
    -D TFT_VSYNC_FRONT_PORCH=12   ; Maximum VSYNC Front Porch
    -D TFT_VSYNC_PULSE_WIDTH=4    ; Typical VSYNC Pulse Width
    -D TFT_VSYNC_BACK_PORCH=4    ; Typical VSYNC Back Porch
    -D TFT_PCLK_ACTIVE_NEG=1
    -D TFT_PREFER_SPEED=14000000  ; 1/2 of Typical DCLK Frequency
    -D TFT_AUTO_FLUSH=1
    ; Touch Settings
    -D TOUCH_WIDTH=800
    -D TOUCH_HEIGHT=480
    -D TOUCH_DRIVER=0x911
    -D TOUCH_SCL=18
    -D TOUCH_SDA=17
    -D TOUCH_IRQ=-1
    -D TOUCH_RST=38
    -D I2C_TOUCH_ADDRESS=0x14 ; or 0x5D
    -D I2C_TOUCH_FREQUENCY=400000
lib_deps =
    ${sunton-esp32-s3-tft.lib_deps}
    ${goodix.lib_deps}

