diff --git a/.gitignore b/.gitignore
index 95b48960..d656f83e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@ data/*
src/user_setups/active/*
src/user_config_override.h
platformio_override.ini
+user_setups/active/*
## Visual Studio Code specific ######
.vscode
diff --git a/platformio.ini b/platformio.ini
index 472aea04..50128f2d 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -18,6 +18,8 @@ extra_configs =
pin_config.ini
; -- Add customizations to this file only:
platformio_override.ini
+ ; -- Put active [env] files in this dir to be included in the build menu
+ user_setups/active/*.ini
default_envs =
; Uncomment the needed environments in platformio_override.ini
@@ -128,264 +130,6 @@ hspi32 =
; 7 - mirror content, and rotate 90 deg anti-clockwise
-
-;***************************************************
-; STM32F4 build
-;***************************************************
-[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=PB11 ;D8
- -D TFT_DC=PC5 ;D3
- -D TFT_BCKL=-1 ;None, configurable via web UI (e.g. 2 for D4)
- -D TOUCH_CS=PC4 ;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
-
-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/> - - - - - +
-
-;***************************************************
-
-[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 USE_BUILTIN_ETHERNET=1
- -D HASP_USE_ETHERNET=1
- -D HAL_ETH_MODULE_ENABLED=1
- ;-D LAN8742A_PHY_ADDRESS=0x01U ; Moved to include\stm32f4\hal_conf_custom.h
- ; -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
- EthernetWebServer_STM32
-
-src_filter = +<*> -<.git/> -<.svn/> - - - - - +
-
-
-;***************************************************
-; Generic ESP32 build
-;***************************************************
-[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>
-
-
-;***************************************************
-; Generic ESP32 build with ILI9488 SPI 4-WIRE
-;***************************************************
-[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>
-
-
-;***************************************************
-; NodeMCU32S with MHS-4" RPI Display-B
-;***************************************************
-[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}
-
-
-;***************************************************
-; ESP32 build
-;***************************************************
-[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>
-
-
-
;***************************************************
; D1 Mini ESP32 with Lolin TFT 2.4"
;***************************************************
@@ -455,42 +199,6 @@ build_flags =
-D TFT_RST=-1 ;RST
-;***************************************************
-; ESP-12 build
-;***************************************************
-[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
-
;***************************************************
; Native build
;***************************************************
diff --git a/src/hasp_ethernet.cpp b/src/hasp_ethernet.cpp
index c61f1f10..3f1b6b27 100644
--- a/src/hasp_ethernet.cpp
+++ b/src/hasp_ethernet.cpp
@@ -5,21 +5,49 @@
#if HASP_USE_ETHERNET>0
+#if defined(W5500_MOSI) && defined(W5500_MISO) && defined(W5500_SCLK)
+#define W5500_LAN
+#include
+#include
+#else
#include
#include
#include
+#endif
EthernetClient EthClient;
+IPAddress ip;
void ethernetSetup()
{
- // start Ethernet and UDP
- Log.notice(F("ETH: Begin Ethernet"));
+#ifdef W5500_LAN
+ byte mac[6];
+ uint32_t baseUID = (uint32_t )UID_BASE;
+ mac[0] = 0x00;
+ mac[1] = 0x80;
+ mac[2] = 0xE1;
+ mac[3] = (baseUID & 0x00FF0000) >> 16;
+ mac[4] = (baseUID & 0x0000FF00) >> 8;
+ mac[5] = (baseUID & 0x000000FF);
+ Ethernet.setCsPin(W5500_CS);
+ Ethernet.setRstPin(W5500_RST);
+ Ethernet.setHostname("HASP");
+ Log.notice(F("ETH: Begin Ethernet W5500"));
+ if (Ethernet.begin(mac) == 0) {
+ Log.notice(F("ETH: Failed to configure Ethernet using DHCP"));
+ } else {
+ ip = Ethernet.localIP();
+ Log.notice(F("ETH: DHCP Success got IP=%d.%d.%d.%d"),ip[0], ip[1], ip[2], ip[3]);
+ }
+
+#else
+ // start Ethernet and UDP
+ Log.notice(F("ETH: Begin Ethernet LAN8720"));
if (Ethernet.begin() == 0) {
Log.notice(F("ETH: Failed to configure Ethernet using DHCP"));
} else {
- IPAddress ip = Ethernet.localIP();
+ ip = Ethernet.localIP();
Log.notice(F("ETH: DHCP Success got IP=%d.%d.%d.%d"),ip[0], ip[1], ip[2], ip[3]);
}
@@ -31,7 +59,33 @@ void ethernetSetup()
void ethernetLoop(void)
{
- Ethernet.maintain();
+ switch (Ethernet.maintain()) {
+ case 1:
+ //renewed fail
+ Log.notice(F("ETH: Error: renewed fail"));
+ break;
+
+ case 2:
+ //renewed success
+ ip = Ethernet.localIP();
+ Log.notice(F("ETH: DHCP Renew Success got IP=%d.%d.%d.%d"),ip[0], ip[1], ip[2], ip[3]);
+ break;
+
+ case 3:
+ //rebind fail
+ Log.notice(F("Error: rebind fail"));
+ break;
+
+ case 4:
+ //rebind success
+ ip = Ethernet.localIP();
+ Log.notice(F("ETH: DHCP Rebind Success got IP=%d.%d.%d.%d"),ip[0], ip[1], ip[2], ip[3]);
+ break;
+
+ default:
+ //nothing happened
+ break;
+ }
}
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/> - - - - - +