diff --git a/user_setups/esp32/d1-mini-esp32_ili9341.ini b/user_setups/esp32/d1-mini-esp32_ili9341.ini
new file mode 100644
index 00000000..bae61bc9
--- /dev/null
+++ b/user_setups/esp32/d1-mini-esp32_ili9341.ini
@@ -0,0 +1,23 @@
+;***************************************************;
+; D1 Mini ESP32 with Lolin TFT 2.4" ;
+; - D1-mini-esp32 board ;
+; - ili9341 TFT ;
+; - xpt2606 touch controller ;
+;***************************************************;
+
+[env:d1mini32-lolintft24]
+platform = espressif32@^1.12.0
+board = wemos_d1_mini32
+upload_port = COM5 ; To change the port, use platform_override.ini
+monitor_port = COM5 ; To change the port, use platform_override.ini
+board_build.partitions = default.csv
+build_flags =
+ ${flags.esp32_flags}
+; -- TFT_eSPI build options ------------------------
+ ${lcd.lolin24}
+ ${pins.vspi32}
+ -D TFT_DC=5
+ -D TFT_CS=26
+ -D TFT_RST=-1 ; RST
+ -D TFT_BCKL=-1 ; None, configurable via web UI (e.g. 21)
+ -D TOUCH_CS=17 ; (can also be 22 or 16)
diff --git a/user_setups/esp32/d132-unoshield_ili9486_parallel.ini b/user_setups/esp32/d132-unoshield_ili9486_parallel.ini
new file mode 100644
index 00000000..e3c45355
--- /dev/null
+++ b/user_setups/esp32/d132-unoshield_ili9486_parallel.ini
@@ -0,0 +1,49 @@
+;***************************************************;
+; ESP32 build with ;
+; - Wemos "TTGo" D1 R32 board ;
+; - ili9486 TFT ;
+;***************************************************;
+
+[env:d132-unoshield]
+platform = espressif32
+board = esp32dev
+upload_port = COM4 ; To change the port, use platform_override.ini
+monitor_port = COM4 ; To change the port, use platform_override.ini
+
+build_flags =
+ ${flags.esp32_flags}
+; -- TFT_eSPI build options ------------------------
+ -D USER_SETUP_LOADED=1
+ ;-D ST7796_DRIVER=1 ;3.95inch Arduino Display-UNO
+ -D ILI9486_DRIVER=1 ;3.5inch Arduino Display-UNO
+ -D ESP32_PARALLEL=1
+ -D TFT_ROTATION=${lcd.TFT_ROTATION}
+ -D TFT_WIDTH=320
+ -D TFT_HEIGHT=480
+ ${pins.vspi32}
+ -D TFT_BCKL=-1 ;None, configurable via web UI (e.g. 2 for D4)
+ -D TFT_CS=33 ; Chip select control pin
+ -D TFT_DC=15 ; Data Command control pin - must use a pin in the range 0-31
+ -D TFT_RST=32 ; Reset pin
+ -D TFT_WR=4 ; Write strobe control pin - must use a pin in the range 0-31
+ -D TFT_RD=2
+ -D TFT_D0=12 ; Must use pins in the range 0-31 for the data bus
+ -D TFT_D1=13 ; so a single register write sets/clears all bits
+ -D TFT_D2=26
+ -D TFT_D3=25
+ -D TFT_D4=17
+ -D TFT_D5=16
+ -D TFT_D6=27
+ -D TFT_D7=14
+ -D SD_CS=5
+ -D SPI_FREQUENCY=40000000
+ ;-D SPI_TOUCH_FREQUENCY=2500000 ; Uses ADC instead
+ -D SPI_READ_FREQUENCY=20000000
+; -- Debugging options -----------------------------
+; -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
+
+; -- Library options -------------------------------
+lib_deps =
+ ${env.lib_deps}
+
+src_filter = +<*> +<../drivers/stm32f429_disco>
diff --git a/user_setups/esp32/esp32-dev_ili9488.ini b/user_setups/esp32/esp32-dev_ili9488.ini
new file mode 100644
index 00000000..b3fac875
--- /dev/null
+++ b/user_setups/esp32/esp32-dev_ili9488.ini
@@ -0,0 +1,48 @@
+;***************************************************;
+; Generic ESP32 build with ;
+; - ili9488 TFT SPI 4-WIRE ;
+; - xpt2606 touch controller ;
+;***************************************************;
+
+[env:esp32dev-ili9488]
+platform = espressif32
+board = esp32dev
+upload_port = COM2 ; To change the port, use platform_override.ini
+monitor_port = COM2 ; To change the port, use platform_override.ini
+; upload_protocol = espota ; Use ArduinoOTA after flashing over serial
+; upload_port = 10.4.0.171 ; IP of the ESP
+; upload_flags =
+; --port=3232
+debug_tool = esp-prog
+debug_init_break = tbreak setup
+
+build_flags =
+ ${flags.esp32_flags}
+; -- TFT_eSPI build options ------------------------
+ -D USER_SETUP_LOADED=1
+ -D ILI9488_DRIVER=1
+ -D TFT_ROTATION=0 ; 0=0, 1=90, 2=180 or 3=270 degree
+ -D TFT_WIDTH=320
+ -D TFT_HEIGHT=480
+ -D TFT_MISO=19 ;// (leave TFT SDO disconnected if other SPI devices share MISO)
+ -D TFT_MOSI=23
+ -D TFT_SCLK=18
+ -D TFT_CS=15 ;// Chip select control pin
+ -D TFT_DC=2 ;// Data Command control pin
+ -D TFT_RST=4 ;// Reset pin (could connect to RST pin)
+ -D TFT_BCKL=5 ;None, configurable via web UI (e.g. 2 for D4)
+ -D SUPPORT_TRANSACTIONS
+ -D TOUCH_CS=22
+ -D TOUCH_DRIVER=0 ; XPT2606 Resistive touch panel driver
+ -D SPI_FREQUENCY=27000000
+ -D SPI_TOUCH_FREQUENCY=2500000
+ -D SPI_READ_FREQUENCY=16000000
+
+; -- Debugging options -----------------------------
+; -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
+
+; -- Library options -------------------------------
+lib_deps =
+ ${env.lib_deps}
+
+src_filter = +<*> +<../drivers/stm32f429_disco>
diff --git a/user_setups/esp32/esp32-dev_ili9488_parallel.ini b/user_setups/esp32/esp32-dev_ili9488_parallel.ini
new file mode 100644
index 00000000..52e79ade
--- /dev/null
+++ b/user_setups/esp32/esp32-dev_ili9488_parallel.ini
@@ -0,0 +1,46 @@
+;***************************************************;
+; Generic ESP32 build with ;
+; - ESP32dev board ;
+; - ili9488 TFT ;
+; - GT911 touch controller ;
+;***************************************************;
+
+[env:esp32dev-mrb3511]
+platform = espressif32
+board = esp32dev
+upload_port = COM1 ; To change the port, use platform_override.ini
+monitor_port = COM1 ; To change the port, use platform_override.ini
+debug_tool = esp-prog
+debug_init_break = tbreak setup
+
+build_flags =
+ ${flags.esp32_flags}
+; -- TFT_eSPI build options ------------------------
+ ${lcd.mrb3511}
+ -D TFT_BCKL=5 ;None, configurable via web UI (e.g. 2 for D4)
+ -D TFT_CS=33 ; Chip select control pin
+ -D TFT_DC=15 ; =RS; Data Command control pin - must use a pin in the range 0-31
+ -D TFT_RST=32 ; Reset pin
+ -D TFT_WR=4 ; Write strobe control pin - must use a pin in the range 0-31
+ -D TFT_RD=2
+ -D TFT_D0=12 ; Must use pins in the range 0-31 for the data bus
+ -D TFT_D1=13 ; so a single register write sets/clears all bits
+ -D TFT_D2=26
+ -D TFT_D3=25
+ -D TFT_D4=17
+ -D TFT_D5=16
+ -D TFT_D6=27
+ -D TFT_D7=14
+ -D TOUCH_SDA=21
+ -D TOUCH_SCL=22
+ -D TOUCH_IRQ=34 ; use 34-39 as these are input only pins
+ -D TOUCH_RST=-1 ; not used, connected to 3.3V
+; -- Debugging options -----------------------------
+; -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
+
+; -- Library options -------------------------------
+lib_deps =
+ ${env.lib_deps}
+ https://github.com/netwizeBE/arduino-goodix.git ; GT911 touch screen driver
+
+src_filter = +<*> +<../drivers/stm32f429_disco>
diff --git a/user_setups/esp32/esp32cam_st7796.ini b/user_setups/esp32/esp32cam_st7796.ini
new file mode 100644
index 00000000..cc111771
--- /dev/null
+++ b/user_setups/esp32/esp32cam_st7796.ini
@@ -0,0 +1,41 @@
+;***************************************************;
+; ESP32 build with ;
+; - ESP32Cam board ;
+; - st7796 TFT ;
+; - xpt2606 touch controller ;
+;***************************************************;
+
+[env:esp32cam-st7796]
+platform = espressif32
+board = esp32cam
+; upload_port = COM18 ; To change the port, use platform_override.ini
+; monitor_port = COM18 ; To change the port, use platform_override.ini
+; upload_protocol = espota ; Use ArduinoOTA after flashing over serial
+; upload_port = x.x.x.x; IP of the ESP
+; upload_flags =
+; --port=3232
+
+debug_tool = esp-prog
+debug_init_break = tbreak setup
+;board_build.partitions = min_spiffs.csv
+board_build.partitions = default.csv
+;ESP32 CAM PINS
+build_flags =
+ ${flags.esp32_flags}
+; -- TFT_eSPI build options ------------------------
+ ${lcd.raspberrypi}
+ -D USE_HSPI_PORT
+ ${pins.hspi32}
+ -D TFT_CS=15
+ -D TFT_DC=2
+ -D TFT_RST=-1 ; 3.3v
+ -D TOUCH_CS=0 ; 3 ; RX
+ -D TFT_BCKL=-1
+
+; -- Debugging options -----------------------------
+; -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
+
+; -- Library options -------------------------------
+lib_deps =
+ ${env.lib_deps}
+
diff --git a/user_setups/esp32/nodemcu-32s_st7796.ini b/user_setups/esp32/nodemcu-32s_st7796.ini
new file mode 100644
index 00000000..9ccd8f96
--- /dev/null
+++ b/user_setups/esp32/nodemcu-32s_st7796.ini
@@ -0,0 +1,31 @@
+;***************************************************;
+; NodeMCU32S with build with ;
+; - st7796 TFT ;
+; - MHS-4" RPI Display-B ;
+; - xpt2606 touch controller ;
+;***************************************************;
+
+[env:nodemcu32s-raspi]
+platform = espressif32
+board = nodemcu-32s
+upload_port = COM3 ; To change the port, use platform_override.ini
+monitor_port = COM3 ; To change the port, use platform_override.ini
+debug_tool = esp-prog
+debug_init_break = tbreak setup
+
+build_flags =
+ ${flags.esp32_flags}
+; -- TFT_eSPI build options ------------------------
+ ${lcd.raspberrypi}
+ ${pins.vspi32}
+ -D TFT_CS=15
+ -D TFT_DC=4
+ -D TFT_RST=32
+ -D TOUCH_CS=22
+
+; -- Debugging options -----------------------------
+; -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
+
+; -- Library options -------------------------------
+lib_deps =
+ ${env.lib_deps}
diff --git a/user_setups/esp8266/D1-mini_ili9341.ini b/user_setups/esp8266/D1-mini_ili9341.ini
new file mode 100644
index 00000000..bd669242
--- /dev/null
+++ b/user_setups/esp8266/D1-mini_ili9341.ini
@@ -0,0 +1,28 @@
+;***************************************************;
+; D1 Mini ESP8266 with Lolin TFT 2.4" ;
+; - D1-mini board ;
+; - ili9341 TFT ;
+; - xpt2606 touch controller ;
+;***************************************************;
+
+[env:d1mini-lolintft24]
+platform = espressif8266@^2.4.0 ;@2.3.2
+board = d1_mini
+upload_port = COM7 ; To change the port, use platform_override.ini
+monitor_port = COM7 ; To change the port, use platform_override.ini
+board_build.f_flash = 40000000L
+board_build.flash_mode = dout
+board_build.ldscript = eagle.flash.4m2m.ld ; 2Mb Spiffs
+board_build.f_cpu = 160000000L ; set frequency to 160MHz
+build_flags =
+ ${flags.esp8266_flags}
+; -- TFT_eSPI build options ------------------------
+ ${lcd.lolin24}
+ ;-D TFT_MISO=12 ;D6 Use default HSPI
+ ;-D TFT_MOSI=13 ;D7 Use default HSPI
+ ;-D TFT_SCLK=14 ;D5 Use default HSPI
+ -D TFT_DC=15 ;D8
+ -D TFT_CS=16 ;D0
+ -D TFT_BCKL=-1 ;None, configurable via web UI (e.g. 2 for D4)
+ -D TOUCH_CS=0 ;D3 (can also be D1 or D2)
+ -D TFT_RST=-1 ;RST
diff --git a/user_setups/esp8266/esp8266_st7735.ini b/user_setups/esp8266/esp8266_st7735.ini
new file mode 100644
index 00000000..077eec02
--- /dev/null
+++ b/user_setups/esp8266/esp8266_st7735.ini
@@ -0,0 +1,38 @@
+;***************************************************;
+; ESP8266 build with ;
+; - ESP-12 board ;
+; - st7735 TFT ;
+;***************************************************;
+
+[env:esp12e-st7735]
+platform = espressif8266@^2.4.0 ;@2.3.2
+board = esp12e
+upload_port = COM8 ; To change the port, use platform_override.ini
+monitor_port = COM8 ; To change the port, use platform_override.ini
+board_build.f_flash = 40000000L
+board_build.flash_mode = dout
+board_build.ldscript = eagle.flash.4m2m.ld ; 2Mb Spiffs
+board_build.f_cpu = 160000000L ; set frequency to 160MHz
+build_flags =
+ ${flags.esp8266_flags}
+; -- TFT_eSPI build options ------------------------
+ -D USER_SETUP_LOADED=1
+ -D ST7735_DRIVER=1
+ -D ST7735_BLACKTAB=1
+ -D TFT_ROTATION=${lcd.TFT_ROTATION}
+ -D TFT_WIDTH=128
+ -D TFT_HEIGHT=160
+ -D TFT_MISO=-1 ;NC
+ -D TFT_MOSI=13 ;D7
+ -D TFT_SCLK=14 ;D5
+ -D TFT_CS=15 ;D8
+ -D TFT_DC=0 ;D3
+ -D TFT_BCKL=-1 ;None, configurable via web UI (e.g. 2 for D4)
+ -D TOUCH_CS=-1 ;NC
+ -D TFT_RST=2 ;D4
+ -D SPI_FREQUENCY=27000000
+
+; -- Library options -------------------------------
+lib_deps =
+ ${env.lib_deps}
+ ;Ethernet@<2.0.0
diff --git a/user_setups/stm32f4xx/stm32f407-black_ili9341.ini b/user_setups/stm32f4xx/stm32f407-black_ili9341.ini
new file mode 100644
index 00000000..d7fab307
--- /dev/null
+++ b/user_setups/stm32f4xx/stm32f407-black_ili9341.ini
@@ -0,0 +1,45 @@
+;***************************************************;
+; STM32F4 build with ;
+; - DIY_more board ;
+; - ili9341 TFT ;
+; - xpt2046 touch controller ;
+;***************************************************;
+
+[env:black_f407vg]
+platform = ststm32
+board = diymore_f407vgt
+board_build.mcu = stm32f407vgt6
+upload_protocol = dfu
+monitor_port = COM7 ; To change the port, use platform_override.ini
+build_flags =
+ ${env.build_flags}
+ ${flags.stm32_flags}
+ -I include/stm32f4
+; -- TFT_eSPI build options ------------------------
+ ${lcd.lolin24}
+ ;-D TFT_MISO=PB4 ;Default
+ ;-D TFT_MOSI=PB5 ;Default
+ ;-D TFT_SCLK=PB3 ;Default
+ -D TFT_CS=PE13 ;D8
+ -D TFT_DC=PE14 ;D3
+ -D TFT_BCKL=-1 ;None, configurable via web UI (e.g. 2 for D4)
+ -D TOUCH_CS=PA6 ;NC
+ -D TFT_RST=-1 ;D4
+ -D HASP_OUTPUT_PIN=PE0 ; User LED D2 on DevEBox board
+ -D HASP_INPUT_PIN=PD15 ; User Button K1 on DevEBox board
+ -D STM32_SERIAL1 ; Set this option to use Serial1 as default sersial port, leave out if using Serial2
+ -D HAL_ETH_MODULE_ENABLED=1 ; enable ethernet support
+ -D LAN8742A_PHY_ADDRESS=0x01U ; set LAN8720 PHY address
+ -D HASP_USE_TASMOTA_SLAVE=1
+
+lib_deps =
+ ${env.lib_deps}
+ Ticker@^3.1.5
+ ; STM32duino LwIP@^2.1.2
+ ; STM32duino STM32Ethernet@^1.0.5
+ https://github.com/stm32duino/LwIP.git
+ https://github.com/stm32duino/STM32Ethernet.git
+
+src_filter = +<*> -<.git/> -<.svn/> - - - - - +
+
+;***************************************************
diff --git a/user_setups/stm32f4xx/stm32f407-devebox_ili9341.ini b/user_setups/stm32f4xx/stm32f407-devebox_ili9341.ini
new file mode 100644
index 00000000..fbdc3688
--- /dev/null
+++ b/user_setups/stm32f4xx/stm32f407-devebox_ili9341.ini
@@ -0,0 +1,50 @@
+;***************************************************;
+; STM32F4xx build with ;
+; - DevEBox board ;
+; - ili9341 TFT ;
+; - xpt2046 touch controller ;
+;***************************************************;
+
+[env:DevEBox_STM32F4xx]
+platform = ststm32
+board = black_f407zg
+board_build.mcu = stm32f407vgt6
+; upload_protocol = dfu
+upload_protocol = stlink
+debug_tool = stlink
+monitor_port = COM19 ; To change the port, use platform_override.ini
+build_flags =
+ ${env.build_flags}
+ ${flags.stm32_flags}
+ -I include/stm32f4
+; -- TFT_eSPI build options ------------------------
+ ${lcd.lolin24}
+ ;-D TFT_MISO=PB4 ;Default
+ ;-D TFT_MOSI=PB5 ;Default
+ ;-D TFT_SCLK=PB3 ;Default
+ -D TFT_CS=PE13 ;D8
+ -D TFT_DC=PE14 ;D3
+ -D TFT_BCKL=-1 ;None, configurable via web UI (e.g. 2 for D4)
+ -D TOUCH_CS=PA6 ;NC
+ -D TFT_RST=-1 ;D4
+ -D STM32
+ -D TFT_SPI3
+ -D USE_DMA_TO_TFT
+ -D HASP_USE_TASMOTA_SLAVE=1
+ -D HASP_OUTPUT_PIN=PA1 ; User LED D2 on DevEBox board
+ -D HASP_INPUT_PIN=PA0 ; User Button K1 on DevEBox board
+ -D STM32_SERIAL1 ; Set this option to use Serial1 as default sersial port, leave out if using Serial2
+ -D HASP_USE_ETHERNET=1
+ -D HAL_ETH_MODULE_ENABLED=1
+ -D LAN8742A_PHY_ADDRESS=0x01U
+ ; -D DP83848_PHY_ADDRESS=0x01U
+
+lib_deps =
+ ${env.lib_deps}
+ Ticker@^3.1.5
+ ; STM32duino LwIP@^2.1.2
+ ; STM32duino STM32Ethernet@^1.0.5
+ https://github.com/stm32duino/LwIP.git
+ https://github.com/stm32duino/STM32Ethernet.git
+
+src_filter = +<*> -<.git/> -<.svn/> - - - - - +