diff --git a/platformio.ini b/platformio.ini index 9edb1cce..e2dfa89a 100644 --- a/platformio.ini +++ b/platformio.ini @@ -83,6 +83,7 @@ lib_deps = ;AsyncTCP ;https://github.com/me-no-dev/ESPAsyncWebServer/archive/master.zip ;https://github.com/me-no-dev/ESPAsyncTCP/archive/master.zip + adafruit/Adafruit STMPE610@^1.1.3 ;STMPE610 touch controller src_filter = +<*> -<.git/> - - - - - diff --git a/src/drv/touch/hasp_drv_stmpe610.cpp b/src/drv/touch/hasp_drv_stmpe610.cpp index 27dbc245..f1a6df4a 100644 --- a/src/drv/touch/hasp_drv_stmpe610.cpp +++ b/src/drv/touch/hasp_drv_stmpe610.cpp @@ -27,14 +27,29 @@ bool IRAM_ATTR STMPE610_getXY(int16_t * touchX, int16_t * touchY, uint8_t touchR } touch.writeRegister8(STMPE_INT_STA, 0xFF); if (1 == touchRotation) { - y = map(y, TS_MINX, TS_MAXX, 0, TFT_WIDTH); - x = map(x, TS_MINY, TS_MAXY, 0, TFT_HEIGHT); - } else if (2 == touchRotation) { + #if HX8357D_DRIVER == 1 + y = map(y, TS_MINX, TS_MAXX, 0, TFT_HEIGHT); + x = map(x, TS_MINY, TS_MAXY, TFT_WIDTH, 0); + #else x = map(x, TS_MAXX, TS_MINX, 0, TFT_WIDTH); y = map(y, TS_MAXY, TS_MINY, 0, TFT_HEIGHT); + #endif + } else if (2 == touchRotation) { + #if HX8357D_DRIVER == 1 + x = map(x, TS_MAXX, TS_MINX, TFT_WIDTH, 0); + y = map(y, TS_MAXY, TS_MINY, 0, TFT_HEIGHT); + #else + x = map(x, TS_MAXX, TS_MINX, 0, TFT_WIDTH); + y = map(y, TS_MAXY, TS_MINY, 0, TFT_HEIGHT); + #endif } else { + #if HX8357D_DRIVER == 1 + x = map(x, TS_MINX, TS_MAXX, TFT_WIDTH, 0); + y = map(y, TS_MINY, TS_MAXY, 0, TFT_HEIGHT); + #else x = map(x, TS_MINX, TS_MAXX, 0, TFT_WIDTH); y = map(y, TS_MINY, TS_MAXY, 0, TFT_HEIGHT); + #endif } *touchX = x; diff --git a/user_setups/esp32/huzzah32-featherwing-24.ini b/user_setups/esp32/huzzah32-featherwing-24.ini new file mode 100644 index 00000000..79b57552 --- /dev/null +++ b/user_setups/esp32/huzzah32-featherwing-24.ini @@ -0,0 +1,33 @@ +;***************************************************; +; HUZZAH32 ESP32 with Featherwing TFT 2.4" ; +; - HUZZAH32 esp32 board ; +; - ili9341 TFT Featherwing 2.4" ; +; - STMPE610 touch controller ; +;***************************************************; + +[env:huzzah32-featherwing-24] +extends = esp32 +board = featheresp32 + +build_flags = + ${env.build_flags} + ${esp32.build_flags} +;region -- TFT_eSPI build options ------------------------ + ${lcd.featherwing-24} + -D TFT_MISO=19 + -D TFT_MOSI=18 + -D TFT_SCLK=5 + -D TFT_DC=33 + -D TFT_CS=15 + -D TFT_RST=-1 ; RST + -D TFT_BCKL=-1 ; Solder the LITE pad to a PWM enabled pin of the ESP. + -D STMPE_CS=32 +;endregion + +lib_deps = + ${env.lib_deps} + ${esp32.lib_deps} + +lib_ignore = + ${env.lib_ignore} + ${esp32.lib_ignore} \ No newline at end of file diff --git a/user_setups/esp32/huzzah32-featherwing-35.ini b/user_setups/esp32/huzzah32-featherwing-35.ini new file mode 100644 index 00000000..db9e512f --- /dev/null +++ b/user_setups/esp32/huzzah32-featherwing-35.ini @@ -0,0 +1,33 @@ +;***************************************************; +; HUZZAH32 ESP32 with Featherwing TFT 3.5" ; +; - HUZZAH32 esp32 board ; +; - HX8357D TFT Featherwing 3.5" ; +; - STMPE610 touch controller ; +;***************************************************; + +[env:huzzah32-featherwing-35] +extends = esp32 +board = featheresp32 + +build_flags = + ${env.build_flags} + ${esp32.build_flags} +;region -- TFT_eSPI build options ------------------------ + ${lcd.featherwing-35} + -D TFT_MISO=19 + -D TFT_MOSI=18 + -D TFT_SCLK=5 + -D TFT_DC=33 + -D TFT_CS=15 + -D TFT_RST=-1 ; RST + -D TFT_BCKL=-1 ; Solder the LITE pad to a PWM enabled pin of the ESP. + -D STMPE_CS=32 +;endregion + +lib_deps = + ${env.lib_deps} + ${esp32.lib_deps} + +lib_ignore = + ${env.lib_ignore} + ${esp32.lib_ignore} \ No newline at end of file diff --git a/user_setups/lcd_config.ini b/user_setups/lcd_config.ini index 366fd709..2065f3c9 100644 --- a/user_setups/lcd_config.ini +++ b/user_setups/lcd_config.ini @@ -86,3 +86,27 @@ wt32-sc01 = -D SPI_FREQUENCY=40000000 -D USER_SETUP_LOADED=1 ;-D SUPPORT_TRANSACTIONS ; Default on ESP32 + +featherwing-35 = + -D HX8357D_DRIVER=1 + -D TFT_WIDTH=320 + -D TFT_HEIGHT=480 + -D TFT_ROTATION=0 ; Use default, see TFT_ROTATION values + -D SPI_FREQUENCY=27000000 + -D SPI_TOUCH_FREQUENCY=2500000 + -D SPI_READ_FREQUENCY=20000000 + -D USER_SETUP_LOADED=1 + -D TOUCH_DRIVER=610 ;STMPE610 + ;-D SUPPORT_TRANSACTIONS ; Default on ESP32 + +featherwing-24 = + -D ILI9341_DRIVER=1 + -D TFT_WIDTH=240 + -D TFT_HEIGHT=320 + -D TFT_ROTATION=0 ; Use default, see TFT_ROTATION values + -D SPI_FREQUENCY=27000000 + -D SPI_TOUCH_FREQUENCY=2500000 + -D SPI_READ_FREQUENCY=20000000 + -D USER_SETUP_LOADED=1 + -D TOUCH_DRIVER=610 ;STMPE610 + ;-D SUPPORT_TRANSACTIONS ; Default on ESP32 \ No newline at end of file