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