From b83951c058612daf40f29fda9add74f3e4afa19d Mon Sep 17 00:00:00 2001 From: fvanroie Date: Tue, 24 Nov 2020 18:30:33 +0100 Subject: [PATCH] Enable DMA and LittleFS --- platformio.ini | 103 +++++++++++------- platformio_override-template.ini | 35 ++++-- user_setups/esp32/d1-mini-esp32_ili9341.ini | 18 ++- .../esp32/d132-unoshield_ili9486_parallel.ini | 8 +- user_setups/esp32/esp32-dev_ili9488.ini | 8 +- .../esp32/esp32-dev_ili9488_parallel.ini | 10 +- user_setups/esp32/esp32cam_st7796.ini | 8 +- user_setups/esp32/lolin-d32-pro_ili9341.ini | 12 +- user_setups/esp32/nodemcu-32s_st7796.ini | 8 +- user_setups/esp32/ttgo-esp32-poe_ili9341.ini | 11 +- .../esp8266/d1-mini-esp8266_ili9341.ini | 15 ++- user_setups/esp8266/esp8266_st7735.ini | 8 +- 12 files changed, 158 insertions(+), 86 deletions(-) diff --git a/platformio.ini b/platformio.ini index 9d6ecd67..4148a8d3 100644 --- a/platformio.ini +++ b/platformio.ini @@ -31,26 +31,6 @@ framework = arduino upload_speed = 921600 monitor_speed = 115200 -; -- Shared library dependencies in all environments -lib_deps = - lvgl/lvgl @ ^7.7.2 ; from PIO library - bodmer/TFT_eSPI @ ^2.3.4 ; Tft SPI drivers - bxparks/AceButton @ ^1.7.1 ; GPIO button library - bblanchon/ArduinoJson @ ^6.17.2 ; Json(l) parser - bblanchon/StreamUtils @ 1.6.0 ; for EEPromStream - knolleary/PubSubClient @ ^2.8.0 ; MQTT client - https://github.com/fvanroie/ConsoleInput.git - https://github.com/andrethomas/TasmotaSlave.git - ; ------ Unused / Test libraries - ;https://github.com/netwizeBE/TFT_eSPI.git - ;Syslog@^2.0.0 ; Obsoleted - ;AsyncTCP - ;https://github.com/me-no-dev/ESPAsyncWebServer/archive/master.zip - ;https://github.com/me-no-dev/ESPAsyncTCP/archive/master.zip - -; lib_ignore = -; https://github.com/littlevgl/lvgl.git - build_flags = ;-Os ; Code Size Optimization -Og ; Code Debug Optimization @@ -73,17 +53,71 @@ build_flags = -D HASP_VERSION_MINOR=2 -D HASP_VERSION_REVISION=1124 +; -- Shared library dependencies in all environments +lib_deps = + lvgl/lvgl @ ^7.7.2 ; from PIO library + ;bodmer/TFT_eSPI @ ^2.3.4 ; Tft SPI drivers + bxparks/AceButton @ ^1.7.1 ; GPIO button library + bblanchon/ArduinoJson @ ^6.17.2 ; Json(l) parser + bblanchon/StreamUtils @ 1.6.0 ; for EEPromStream + knolleary/PubSubClient @ ^2.8.0 ; MQTT client + https://github.com/Bodmer/TFT_eSPI.git ; ^2.3.5 needed for DMA + https://github.com/fvanroie/ConsoleInput.git + https://github.com/andrethomas/TasmotaSlave.git + ; ------ Unused / Test libraries + ;https://github.com/netwizeBE/TFT_eSPI.git + ;Syslog@^2.0.0 ; Obsoleted + ;AsyncTCP + ;https://github.com/me-no-dev/ESPAsyncWebServer/archive/master.zip + ;https://github.com/me-no-dev/ESPAsyncTCP/archive/master.zip + +; lib_ignore = +; https://github.com/littlevgl/lvgl.git + src_filter = +<*> -<.git/> -<.svn/> - - - - - extra_scripts = tools/move-rename-firmware.py ; tools/pre:extra_script.py -; -- Platform specific build flags -[flags] -esp8266_flags= +[esp32] +build_flags = ${env.build_flags} + -D PIOENV=${PIOENV} + -D HTTP_UPLOAD_BUFLEN=1024 ; lower http upload buffer + -D MQTT_MAX_PACKET_SIZE=2048 ; longer PubSubClient messages + -D NO_GLOBAL_HTTPUPDATE ; dont instantiate httpUpdate +; -- lvgl build options ----------------------------- + -D LV_MEM_SIZE=20480U ; 20kB lvgl memory +; -- tft_espi build options ------------------------ + ;-D USE_DMA_TO_TFT + ;-D ESP32_DMA ; Make touch reads wait for DMA +; -- hasp-lvgl build options ------------------------ + -D HASP_USE_MQTT=1 + -D HASP_USE_HTTP=1 + -D HASP_USE_MDNS=1 + -D HASP_USE_SYSLOG=1 + -D HASP_USE_TELNET=1 + -D HASP_USE_SPIFFS=0 + -D HASP_USE_LITTLEFS=1 + -D HASP_USE_EEPROM=1 + -D HASP_USE_GPIO=1 +; -- LittleFS build options ------------------------ + -D CONFIG_LITTLEFS_FOR_IDF_3_2 + +lib_deps = + LittleFS_esp32 + +lib_ignore = + GxTFT + XPT2046_Touchscreen + ESP32 BLE Arduino + +; -- Platform specific build flags +[esp8266] +build_flags= -D HTTP_UPLOAD_BUFLEN=640 ; lower http upload buffer -D MQTT_MAX_PACKET_SIZE=1024 ; longer PubSubClient messages -D ATOMIC_FS_UPDATE ; enabled compressed ota updates + -D NO_GLOBAL_HTTPUPDATE ; dont instantiate httpUpdate ; -- lvgl build options ----------------------------- -D LV_MEM_SIZE=10240U ; 10kB lvgl memory ; -- hasp-lvgl build options ------------------------ @@ -99,23 +133,14 @@ esp8266_flags= -D HASP_USE_GPIO=1 -D HASP_USE_ETHERNET=0 -esp32_flags= - ${env.build_flags} - -D HTTP_UPLOAD_BUFLEN=1024 ; lower http upload buffer - -D MQTT_MAX_PACKET_SIZE=2048 ; longer PubSubClient messages -; -- lvgl build options ----------------------------- - -D LV_MEM_SIZE=20480U ; 20kB lvgl memory -; -- hasp-lvgl build options ------------------------ - -D HASP_USE_MQTT=1 - -D HASP_USE_HTTP=1 - -D HASP_USE_MDNS=1 - -D HASP_USE_SYSLOG=1 - -D HASP_USE_TELNET=1 - -D HASP_USE_SPIFFS=1 - -D HASP_USE_LITTLEFS=0 - -D HASP_USE_EEPROM=1 - -D HASP_USE_GPIO=1 +lib_deps = +lib_ignore = + GxTFT + XPT2046_Touchscreen + + +[flags] stm32_flags= ${env.build_flags} -D MQTT_MAX_PACKET_SIZE=2048 ; longer PubSubClient messages diff --git a/platformio_override-template.ini b/platformio_override-template.ini index f052d3a4..36ae99fb 100644 --- a/platformio_override-template.ini +++ b/platformio_override-template.ini @@ -9,7 +9,9 @@ [platformio] extra_configs = ; Uncomment the following line to show all User Setups in the PIO sidebar - ;user_setups/*/*.ini + ; user_setups/esp32/*.ini + ; user_setups/esp8266/*.ini + ; user_setups/stm32f4xx/*.ini [override] ; -- Hasp config options -------------------------------------- @@ -18,7 +20,7 @@ build_flags = ; -DUSE_CONFIG_OVERRIDE extra_default_envs = - my_custom_build + ;my_custom_build ; Comment unneeded environments or create extra ;esp32dev-mrb3511 ;d1mini-lolintft24 @@ -30,15 +32,15 @@ extra_default_envs = ;esp32dev-ili9488 ; -- Define COM ports for each environment -------------------- -[env:d1mini32-lolintft24] +[env:d1-mini-esp32_ili9341.ini] upload_port = COM6 ; Change to the correct port monitor_port = COM6 ; Change to the correct port -[env:d1mini-lolintft24] +[env:d1-mini-esp8266_ili9341.ini] upload_port = COM4 ; Change to the correct port monitor_port = COM4 ; Change to the correct port -[env:esp32dev-mrb3511] +[env:lolind32pro-lolintft24] upload_port = COM3 ; Change to the correct port monitor_port = COM3 ; Change to the correct port @@ -48,16 +50,27 @@ upload_port = 192.168.0.4 ; IP of the ESP upload_flags = --port=3232 +[env:ttgo_esp32_poe-lolintft24] +monitor_port = COM9 ; Change to the correct port +upload_port = COM9 ; Change to the correct port +;upload_protocol = espota ; Use ArduinoOTA after flashing over serial +;upload_port = 10.1.0.130 ; IP of the ESP +upload_flags = + --port=3232 + ; -- Custom Environment configuration example ----------------- [env:my_custom_build] -platform = espressif32 +platform = espressif32@^2.0.0 board = nodemcu-32s +board_build.partitions = user_setups/esp32_partition_app1300k_spiffs1216k.csv upload_port = COM3 monitor_port = COM3 +monitor_filters = esp32_exception_decoder debug_tool = esp-prog debug_init_break = tbreak setup + build_flags = - ${flags.esp32_flags} + ${esp32.build_flags} ; -- TFT_eSPI build options ----------------------------------- ${lcd.raspberrypi} ${pins.vspi32} @@ -65,3 +78,11 @@ build_flags = -D TFT_DC=4 -D TFT_RST=32 -D TOUCH_CS=22 + +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/d1-mini-esp32_ili9341.ini b/user_setups/esp32/d1-mini-esp32_ili9341.ini index e2dbb4f9..8fd95eb2 100644 --- a/user_setups/esp32/d1-mini-esp32_ili9341.ini +++ b/user_setups/esp32/d1-mini-esp32_ili9341.ini @@ -5,7 +5,7 @@ ; - xpt2606 touch controller ; ;***************************************************; -[env:d1mini32-lolintft24] +[env:d1-mini-esp32_ili9341.ini] platform = espressif32@^2.0.0 board = wemos_d1_mini32 ;upload_port = COM5 ; To change the port, use platform_override.ini @@ -14,8 +14,8 @@ monitor_filters = esp32_exception_decoder board_build.partitions = user_setups/esp32_partition_app1300k_spiffs1216k.csv build_flags = - ${flags.esp32_flags} - -D PIOENV=${PIOENV} + ${env.build_flags} + ${esp32.build_flags} ; -- TFT_eSPI build options ------------------------ ${lcd.lolin24} ${pins.vspi32} @@ -24,16 +24,12 @@ build_flags = -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) - ;-D USE_DMA_TO_TFT - ;-D ESP32_DMA ; Make touch reads wait for DMA -; -- LittleFS build options ------------------------ - -D CONFIG_LITTLEFS_FOR_IDF_3_2 + lib_deps = ${env.lib_deps} - LittleFS_esp32 + ${esp32.lib_deps} lib_ignore = - GxTFT - XPT2046_Touchscreen - ESP32 BLE Arduino \ No newline at end of file + ${env.lib_ignore} + ${esp32.lib_ignore} \ No newline at end of file diff --git a/user_setups/esp32/d132-unoshield_ili9486_parallel.ini b/user_setups/esp32/d132-unoshield_ili9486_parallel.ini index 78c09f01..feba7da7 100644 --- a/user_setups/esp32/d132-unoshield_ili9486_parallel.ini +++ b/user_setups/esp32/d132-unoshield_ili9486_parallel.ini @@ -13,7 +13,8 @@ monitor_filters = esp32_exception_decoder board_build.partitions = user_setups/esp32_partition_app1300k_spiffs1216k.csv build_flags = - ${flags.esp32_flags} + ${env.build_flags} + ${esp32.build_flags} ; -- TFT_eSPI build options ------------------------ -D USER_SETUP_LOADED=1 ;-D ST7796_DRIVER=1 ;3.95inch Arduino Display-UNO @@ -47,7 +48,8 @@ build_flags = ; -- Library options ------------------------------- lib_deps = ${env.lib_deps} + ${esp32.lib_deps} lib_ignore = - GxTFT - XPT2046_Touchscreen \ No newline at end of file + ${env.lib_ignore} + ${esp32.lib_ignore} \ No newline at end of file diff --git a/user_setups/esp32/esp32-dev_ili9488.ini b/user_setups/esp32/esp32-dev_ili9488.ini index a4052e4c..efce2fa3 100644 --- a/user_setups/esp32/esp32-dev_ili9488.ini +++ b/user_setups/esp32/esp32-dev_ili9488.ini @@ -20,7 +20,8 @@ debug_tool = esp-prog debug_init_break = tbreak setup build_flags = - ${flags.esp32_flags} + ${env.build_flags} + ${esp32.build_flags} ; -- TFT_eSPI build options ------------------------ -D USER_SETUP_LOADED=1 -D ILI9488_DRIVER=1 @@ -47,7 +48,8 @@ build_flags = ; -- Library options ------------------------------- lib_deps = ${env.lib_deps} + ${esp32.lib_deps} lib_ignore = - GxTFT - XPT2046_Touchscreen \ No newline at end of file + ${env.lib_ignore} + ${esp32.lib_ignore} \ No newline at end of file diff --git a/user_setups/esp32/esp32-dev_ili9488_parallel.ini b/user_setups/esp32/esp32-dev_ili9488_parallel.ini index 1be61798..1635f99b 100644 --- a/user_setups/esp32/esp32-dev_ili9488_parallel.ini +++ b/user_setups/esp32/esp32-dev_ili9488_parallel.ini @@ -17,7 +17,8 @@ debug_tool = esp-prog debug_init_break = tbreak setup build_flags = - ${flags.esp32_flags} + ${env.build_flags} + ${esp32.build_flags} ; -- TFT_eSPI build options ------------------------ ${lcd.mrb3511} -D TFT_BCKL=5 ;None, configurable via web UI (e.g. 2 for D4) @@ -44,8 +45,11 @@ build_flags = ; -- Library options ------------------------------- lib_deps = ${env.lib_deps} + ${esp32.lib_deps} + adafruit/Adafruit GFX Library @ ^1.10.3 + adafruit/Adafruit BusIO @ ^1.6.0 https://github.com/netwizeBE/arduino-goodix.git ; GT911 touch screen driver lib_ignore = - GxTFT - XPT2046_Touchscreen \ No newline at end of file + ${env.lib_ignore} + ; ${esp32.lib_ignore} \ No newline at end of file diff --git a/user_setups/esp32/esp32cam_st7796.ini b/user_setups/esp32/esp32cam_st7796.ini index 42ee1f16..024ac49c 100644 --- a/user_setups/esp32/esp32cam_st7796.ini +++ b/user_setups/esp32/esp32cam_st7796.ini @@ -23,7 +23,8 @@ board_build.partitions = user_setups/esp32_partition_app1300k_spiffs1216k.csv ;ESP32 CAM PINS build_flags = - ${flags.esp32_flags} + ${env.build_flags} + ${esp32.build_flags} ; -- TFT_eSPI build options ------------------------ ${lcd.raspberrypi} -D USE_HSPI_PORT @@ -41,7 +42,8 @@ build_flags = ; -- Library options ------------------------------- lib_deps = ${env.lib_deps} + ${esp32.lib_deps} lib_ignore = - GxTFT - XPT2046_Touchscreen \ No newline at end of file + ${env.lib_ignore} + ${esp32.lib_ignore} \ No newline at end of file diff --git a/user_setups/esp32/lolin-d32-pro_ili9341.ini b/user_setups/esp32/lolin-d32-pro_ili9341.ini index d3ca2301..6beb6e0b 100644 --- a/user_setups/esp32/lolin-d32-pro_ili9341.ini +++ b/user_setups/esp32/lolin-d32-pro_ili9341.ini @@ -16,7 +16,8 @@ monitor_filters = esp32_exception_decoder board_build.partitions = user_setups/esp32_partition_app1300k_spiffs1216k.csv build_flags = - ${flags.esp32_flags} + ${env.build_flags} + ${esp32.build_flags} -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue ; -- TFT_eSPI build options ------------------------ @@ -28,7 +29,10 @@ build_flags = -D TFT_BCKL=-1 ; None, configurable via web UI (e.g. 21) -D TOUCH_CS=17 ; (can also be 22 or 16) -lib_ignore = - GxTFT - XPT2046_Touchscreen +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/nodemcu-32s_st7796.ini b/user_setups/esp32/nodemcu-32s_st7796.ini index ea60fa53..6cf0f86b 100644 --- a/user_setups/esp32/nodemcu-32s_st7796.ini +++ b/user_setups/esp32/nodemcu-32s_st7796.ini @@ -16,7 +16,8 @@ debug_tool = esp-prog debug_init_break = tbreak setup build_flags = - ${flags.esp32_flags} + ${env.build_flags} + ${esp32.build_flags} ; -- TFT_eSPI build options ------------------------ ${lcd.raspberrypi} ${pins.vspi32} @@ -31,7 +32,8 @@ build_flags = ; -- Library options ------------------------------- lib_deps = ${env.lib_deps} + ${esp32.lib_deps} lib_ignore = - GxTFT - XPT2046_Touchscreen \ No newline at end of file + ${env.lib_ignore} + ${esp32.lib_ignore} \ No newline at end of file diff --git a/user_setups/esp32/ttgo-esp32-poe_ili9341.ini b/user_setups/esp32/ttgo-esp32-poe_ili9341.ini index 4a5ecd38..20fa8df5 100644 --- a/user_setups/esp32/ttgo-esp32-poe_ili9341.ini +++ b/user_setups/esp32/ttgo-esp32-poe_ili9341.ini @@ -20,7 +20,8 @@ monitor_filters = esp32_exception_decoder board_build.partitions = user_setups/esp32_partition_app1300k_spiffs1216k.csv build_flags = - ${flags.esp32_flags} + ${env.build_flags} + ${esp32.build_flags} ; -- TFT_eSPI build options ------------------------ ${lcd.lolin24} -D TFT_MISO=2 @@ -35,6 +36,10 @@ build_flags = -D HASP_USE_ETHERNET=1 -D HASP_USE_WIFI=0 +lib_deps = + ${env.lib_deps} + ${esp32.lib_deps} + lib_ignore = - GxTFT - XPT2046_Touchscreen \ No newline at end of file + ${env.lib_ignore} + ${esp32.lib_ignore} \ No newline at end of file diff --git a/user_setups/esp8266/d1-mini-esp8266_ili9341.ini b/user_setups/esp8266/d1-mini-esp8266_ili9341.ini index cb381b01..59186433 100644 --- a/user_setups/esp8266/d1-mini-esp8266_ili9341.ini +++ b/user_setups/esp8266/d1-mini-esp8266_ili9341.ini @@ -5,7 +5,7 @@ ; - xpt2606 touch controller ; ;***************************************************; -[env:d1mini-lolintft24] +[env:d1-mini-esp8266_ili9341.ini] platform = espressif8266@^2.6.2 board = d1_mini ;upload_port = COM7 ; To change the port, use platform_override.ini @@ -16,7 +16,8 @@ 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} + ${env.build_flags} + ${esp8266.build_flags} ; -- TFT_eSPI build options ------------------------ ${lcd.lolin24} ;-D TFT_MISO=12 ;D6 Use default HSPI @@ -28,6 +29,12 @@ build_flags = -D TOUCH_CS=0 ;D3 (can also be D1 or D2) -D TFT_RST=-1 ;RST +; -- Library options ------------------------------- +lib_deps = + ${env.lib_deps} + ${esp8266.lib_deps} + ;Ethernet@<2.0.0 + lib_ignore = - GxTFT - XPT2046_Touchscreen \ No newline at end of file + ${env.lib_ignore} + ${esp8266.lib_ignore} \ No newline at end of file diff --git a/user_setups/esp8266/esp8266_st7735.ini b/user_setups/esp8266/esp8266_st7735.ini index 5efe54fa..b07a34d4 100644 --- a/user_setups/esp8266/esp8266_st7735.ini +++ b/user_setups/esp8266/esp8266_st7735.ini @@ -14,7 +14,8 @@ 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} + ${env.build_flags} + ${esp8266.build_flags} ; -- TFT_eSPI build options ------------------------ -D USER_SETUP_LOADED=1 -D ST7735_DRIVER=1 @@ -35,8 +36,9 @@ build_flags = ; -- Library options ------------------------------- lib_deps = ${env.lib_deps} + ${esp8266.lib_deps} ;Ethernet@<2.0.0 lib_ignore = - GxTFT - XPT2046_Touchscreen \ No newline at end of file + ${env.lib_ignore} + ${esp8266.lib_ignore} \ No newline at end of file