diff --git a/platformio.ini b/platformio.ini index fcbb7b28..5549cc17 100644 --- a/platformio.ini +++ b/platformio.ini @@ -2,273 +2,208 @@ ; Please visit documentation: https://docs.platformio.org/page/projectconf.html [platformio] -src_dir = ./wled00 +src_dir = ./wled00 data_dir = ./wled00/data -;lib_extra_dirs = ./wled00/src -lib_dir = ./wled00/src -extra_configs = platformio_override.ini +lib_dir = ./wled00/src +extra_configs = + platformio_override.ini + ; Please uncomment one of the 5 lines below to select your board default_envs = nodemcuv2 ; default_envs = esp01 ; default_envs = esp01_1m ; default_envs = esp07 ; default_envs = d1_mini +; default_envs = d1_mini_debug ; default_envs = esp32dev ; default_envs = esp8285_4CH_MagicHome ; default_envs = esp8285_4CH_H801 ; default_envs = esp8285_5CH_H801 + # Release binaries follow -; default_envs = nodemcuv2, esp01, esp01_1m, esp32dev, - - +; default_envs = nodemcuv2, esp01, esp01_1m, esp32dev [common] -framework = arduino -monitor_speed = 115200 -board_build.flash_mode = dout -upload_speed = 115200 -upload_speed_fast = 921600 -build_flags = - -w ; supresses all C/C++ warnings - ; -D VERSION=0.8.5 - ; -D DEBUG - #build_flags for the IRremoteESP8266 library (enabled decoders have to appear here) - -D _IR_ENABLE_DEFAULT_=false - -D DECODE_HASH=true - -D DECODE_NEC=true - -D DECODE_SONY=true - -D DECODE_SAMSUNG=true - -D DECODE_LG=true - -# TODO replace libs in /lib with managed libs in here if possible. -# If they are not changed it's just a matter of setting the correct version and change the import statement -lib_deps_external = - #Blynk@0.5.4(changed) - #E131@1.0.0(changed) - FastLED@3.3.2 - NeoPixelBus@2.5.6 - ESPAsyncTCP@1.2.0 - ESPAsyncUDP@697c75a025 - AsyncTCP@1.0.3 - Esp Async WebServer@1.2.0 - #ArduinoJson@5.13.5 - #IRremoteESP8266@2.7.2 - https://github.com/crankyoldgit/IRremoteESP8266.git - #Time@1.5 - #Timezone@1.2.1 - #For use SSD1306 OLED display uncomment following - #U8g2@~2.27.2 - #For Dallas sensor uncomment following 2 lines - #DallasTemperature@~3.8.0 - #OneWire@~2.3.5 -[common:esp8266] # ------------------------------------------------------------------------------ # PLATFORM: # !! DO NOT confuse platformio's ESP8266 development platform with Arduino core for ESP8266 -# We use Arduino Core 2.5.0 (platformIO 2.0.4) as default # # arduino core 2.3.0 = platformIO 1.5.0 # arduino core 2.4.0 = platformIO 1.6.0 # arduino core 2.4.1 = platformIO 1.7.3 # arduino core 2.4.2 = platformIO 1.8.0 # arduino core 2.5.0 = platformIO 2.0.4 -# arduino core stage = platformIO feature#stage +# arduino core 2.5.1 = platformIO 2.1.1 +# arduino core 2.5.2 = platformIO 2.2.3 +# arduino core 2.6.1 = platformIO 2.3.0 +# arduino core 2.6.2 = platformIO 2.3.1 +# arduino core 2.6.3 = platformIO 2.3.2 # ------------------------------------------------------------------------------ arduino_core_2_3_0 = espressif8266@1.5.0 arduino_core_2_4_0 = espressif8266@1.6.0 arduino_core_2_4_1 = espressif8266@1.7.3 arduino_core_2_4_2 = espressif8266@1.8.0 arduino_core_2_5_0 = espressif8266@2.0.4 +arduino_core_2_5_1 = espressif8266@2.1.1 arduino_core_2_5_2 = espressif8266@2.2.3 arduino_core_2_6_1 = espressif8266@2.3.0 arduino_core_2_6_2 = espressif8266@2.3.1 -arduino_core_2_6_3 = espressif8266@2.3.3 -arduino_core_stage = https://github.com/platformio/platform-espressif8266.git#feature/stage -platform = ${common:esp8266.arduino_core_2_6_3} -build_flags = - -D ESP8266 - -D PIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH -board_build.ldscript = eagle.flash.4m1m.ld ;;;; Required for core > v2.5.0 or staging version 4MB Flash 3MB SPIFFs -lib_ignore = AsyncTCP +arduino_core_2_6_3 = espressif8266@2.3.2 -[common:esp8266_1M] -platform = ${common:esp8266.arduino_core_2_6_3} -build_flags = - -D PIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH - ; -D WLED_DISABLE_OTA - ; -D WLED_DISABLE_ALEXA - -D WLED_DISABLE_BLYNK - -D WLED_DISABLE_CRONIXIE - ; -D WLED_DISABLE_HUESYNC - -D WLED_DISABLE_INFRARED -board_build.ldscript = eagle.flash.1m.ld ;;;; Compile with no SPIFFS to leave space for OTA -lib_ignore = ${common:esp8266.lib_ignore} +# Development platforms +arduino_core_develop = https://github.com/platformio/platform-espressif8266#develop +arduino_core_git = https://github.com/platformio/platform-espressif8266#feature/stage -[common:esp8266_512k] -platform = ${common:esp8266.arduino_core_2_6_3} -build_flags = - -D PIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH - -D WLED_DISABLE_OTA - -D WLED_DISABLE_ALEXA - -D WLED_DISABLE_BLYNK - -D WLED_DISABLE_CRONIXIE - -D WLED_DISABLE_HUESYNC - -D WLED_DISABLE_INFRARED -board_build.ldscript = eagle.flash.512k.ld ;;;; Compile with no SPIFFS -lib_ignore = ${common:esp8266.lib_ignore} +platform = ${common.arduino_core_2_4_2} +platform_latest = ${common.arduino_core_2_6_3} -[common:esp32] -platform = espressif32@1.11.2 -build_flags = - -D PIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH - -D ARDUINO_ARCH_ESP32 -lib_ignore = - ESPAsyncTCP - ESPAsyncUDP +# ------------------------------------------------------------------------------ +# FLAGS: DEBUG +# +# ------------------------------------------------------------------------------ +debug_flags = -D DEBUG=1 -D WLED_DEBUG -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_TLS_MEM +#if needed (for memleaks etc) also add; -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" + +# ------------------------------------------------------------------------------ +# FLAGS: ldscript +# ldscript_512k ( 512 KB) = 487 KB sketch, 4 KB eeprom, no spiffs, 16 KB reserved +# ldscript_1m0m (1024 KB) = 999 KB sketch, 4 KB eeprom, no spiffs, 16 KB reserved +# ldscript_2m1m (2048 KB) = 1019 KB sketch, 4 KB eeprom, 1004 KB spiffs, 16 KB reserved +# ldscript_4m1m (4096 KB) = 1019 KB sketch, 4 KB eeprom, 1002 KB spiffs, 16 KB reserved, 2048 KB empty/ota? +# ldscript_4m3m (4096 KB) = 1019 KB sketch, 4 KB eeprom, 3040 KB spiffs, 16 KB reserved +# +# Available lwIP variants (macros): +# -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH = v1.4 Higher Bandwidth (default) +# -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY = v2 Lower Memory +# -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH = v2 Higher Bandwidth +# +# BearSSL performance: +# When building with -DSECURE_CLIENT=SECURE_CLIENT_BEARSSL, please add `board_build.f_cpu = 160000000` to the environment configuration +# +# BearSSL ciphers: +# When building on core >= 2.5, you can add the build flag -DBEARSSL_SSL_BASIC in order to build BearSSL with a limited set of ciphers: +# TLS_RSA_WITH_AES_128_CBC_SHA256 / AES128-SHA256 +# TLS_RSA_WITH_AES_256_CBC_SHA256 / AES256-SHA256 +# TLS_RSA_WITH_AES_128_CBC_SHA / AES128-SHA +# TLS_RSA_WITH_AES_256_CBC_SHA / AES256-SHA +# This reduces the OTA size with ~45KB, so it's especially useful on low memory boards (512k/1m). +# ------------------------------------------------------------------------------ +build_flags = -g -w -DMQTT_MAX_PACKET_SIZE=1024 -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH + -DSECURE_CLIENT=SECURE_CLIENT_BEARSSL -DBEARSSL_SSL_BASIC +build_flags_esp8266 = ${common.build_flags} -DESP8266 +build_flags_esp32 = ${common.build_flags} -DARDUINO_ARCH_ESP32 + +ldscript_512k = eagle.flash.512k.ld ;for older versions change this to eagle.flash.512k0.ld +ldscript_1m0m = eagle.flash.1m.ld ;for older versions change this to eagle.flash.1m0.ld +ldscript_2m1m = eagle.flash.2m1m.ld +ldscript_4m1m = eagle.flash.4m1m.ld +ldscript_4m3m = eagle.flash.4m3m.ld + +shared_libdeps_dir = ./wled00/src + +# ------------------------------------------------------------------------------ +# COMMON SETTINGS: +# ------------------------------------------------------------------------------ +[env] +framework = arduino +board_build.flash_mode = dout +monitor_speed = 115200 +upload_speed = 115200 +lib_extra_dirs = + ${common.shared_libdeps_dir} + +# ------------------------------------------------------------------------------ +# LIBRARIES: required dependencies +# Please note that we don't always use the latest version of a library. +# +# The following libraries have been included (and some of them changd) in the source: +# ArduinoJson@5.13.5, Blynk@0.5.4(changed), E131@1.0.0(changed), Time@1.5, Timezone@1.2.1 +# ------------------------------------------------------------------------------ +lib_compat_mode = strict +lib_deps = + FastLED@3.3.2 + NeoPixelBus@2.5.6 + ESPAsyncTCP@1.2.0 + ESPAsyncUDP@697c75a025 + AsyncTCP@1.0.3 + Esp Async WebServer@1.2.0 + IRremoteESP8266@2.7.3 + #For use SSD1306 OLED display uncomment following + #U8g2@~2.27.2 + #For Dallas sensor uncomment following 2 lines + #DallasTemperature@~3.8.0 + #OneWire@~2.3.5 +lib_ignore = + AsyncTCP + +# ------------------------------------------------------------------------------ +# WLED BUILDS +# ------------------------------------------------------------------------------ -# see: http://docs.platformio.org/en/latest/platforms/espressif8266.html [env:nodemcuv2] board = nodemcuv2 -platform = ${common:esp8266.platform} -monitor_speed = ${common.monitor_speed} -upload_speed = ${common.upload_speed} -framework = ${common.framework} -build_flags = - ${common.build_flags} - ${common:esp8266.build_flags} -board_build.ldscript = ${common:esp8266.board_build.ldscript} -lib_deps = - ${common.lib_deps_external} -lib_compat_mode = strict -lib_ignore = ${common:esp8266.lib_ignore} - -[env:d1_mini] -board = d1_mini -platform = ${common:esp8266.platform} -monitor_speed = ${common.monitor_speed} -upload_speed = ${common.upload_speed} -framework = ${common.framework} -build_flags = - ${common.build_flags} - ${common:esp8266.build_flags} -board_build.ldscript = ${common:esp8266.board_build.ldscript} -lib_deps = - ${common.lib_deps_external} -lib_compat_mode = strict -lib_ignore = ${common:esp8266.lib_ignore} - -[env:esp01_1m] -board = esp01_1m -platform = ${common:esp8266_1M.platform} -monitor_speed = ${common.monitor_speed} -upload_speed = ${common.upload_speed} -framework = ${common.framework} -build_flags = - ${common.build_flags} - ${common:esp8266_1M.build_flags} - # disable IR because there is no pin for it - -D WLED_DISABLE_INFRARED -board_build.ldscript = ${common:esp8266_1M.board_build.ldscript} -lib_deps = - ${common.lib_deps_external} -lib_compat_mode = strict -lib_ignore = ${common:esp8266.lib_ignore} +platform = ${common.platform_latest} +board_build.ldscript = ${common.ldscript_4m1m} +build_flags = ${common.build_flags_esp8266} [env:esp01] board = esp01 -platform = ${common:esp8266_512k.platform} -monitor_speed = ${common.monitor_speed} -upload_speed = ${common.upload_speed} -framework = ${common.framework} -build_flags = - ${common.build_flags} - ${common:esp8266_512k.build_flags} -board_build.ldscript = ${common:esp8266_512k.board_build.ldscript} -lib_deps = - ${common.lib_deps_external} -lib_compat_mode = strict -lib_ignore = ${common:esp8266.lib_ignore} +platform = ${common.platform_latest} +board_build.ldscript = ${common.ldscript_512k} +build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_OTA -D WLED_DISABLE_ALEXA -D WLED_DISABLE_BLYNK + -D WLED_DISABLE_CRONIXIE -D WLED_DISABLE_HUESYNC -D WLED_DISABLE_INFRARED + +[env:esp01_1m] +board = esp01_1m +platform = ${common.platform_latest} +board_build.ldscript = ${common.ldscript_1m0m} +build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_BLYNK -D WLED_DISABLE_CRONIXIE -D WLED_DISABLE_INFRARED [env:esp07] board = esp07 -platform = ${common:esp8266.platform} -monitor_speed = ${common.monitor_speed} -upload_speed = ${common.upload_speed} -framework = ${common.framework} -build_flags = - ${common.build_flags} - ${common:esp8266.build_flags} -board_build.ldscript = ${common:esp8266.board_build.ldscript} -lib_deps = - ${common.lib_deps_external} -lib_compat_mode = strict -lib_ignore = ${common:esp8266.lib_ignore} +platform = ${common.platform_latest} +board_build.ldscript = ${common.ldscript_4m1m} +build_flags = ${common.build_flags_esp8266} + +[env:d1_mini] +board = d1_mini +platform = ${common.platform_latest} +board_build.ldscript = ${common.ldscript_4m1m} +build_flags = ${common.build_flags_esp8266} -# see: http://docs.platformio.org/en/latest/platforms/espressif32.html [env:esp32dev] board = esp32dev -platform = ${common:esp32.platform} -monitor_speed = ${common.monitor_speed} -upload_speed = ${common.upload_speed_fast} -framework = ${common.framework} -build_flags = - ${common.build_flags} - ${common:esp32.build_flags} -lib_deps = - ${common.lib_deps_external} -lib_ignore = ${common:esp32.lib_ignore} -lib_compat_mode = strict +platform = espressif32@1.11.2 +build_flags = ${common.build_flags_esp32} +lib_ignore = + ESPAsyncTCP + ESPAsyncUDP [env:esp8285_4CH_MagicHome] board = esp8285 -platform = ${common:esp8266_1M.platform} -monitor_speed = ${common.monitor_speed} -upload_speed = ${common.upload_speed} -framework = ${common.framework} -build_flags = - ${common.build_flags} - ${common:esp8266_1M.build_flags} - -D WLED_DISABLE_HUESYNC - -D WLED_USE_ANALOG_LEDS -board_build.ldscript = ${common:esp8266_1M.board_build.ldscript} -lib_deps = - ${common.lib_deps_external} -lib_compat_mode = strict -lib_ignore = ${common:esp8266.lib_ignore} +platform = ${common.platform_latest} +board_build.ldscript = ${common.ldscript_1m0m} +build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_HUESYNC -D WLED_USE_ANALOG_LEDS [env:esp8285_4CH_H801] board = esp8285 -platform = ${common:esp8266_1M.platform} -monitor_speed = ${common.monitor_speed} -upload_speed = ${common.upload_speed} -framework = ${common.framework} -build_flags = - ${common.build_flags} - ${common:esp8266_1M.build_flags} - -D WLED_DISABLE_HUESYNC - -D WLED_USE_ANALOG_LEDS - -D WLED_USE_H801 -board_build.ldscript = ${common:esp8266_1M.board_build.ldscript} -lib_deps = - ${common.lib_deps_external} -lib_compat_mode = strict -lib_ignore = ${common:esp8266.lib_ignore} +platform = ${common.platform_latest} +board_build.ldscript = ${common.ldscript_1m0m} +build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_HUESYNC -D WLED_USE_ANALOG_LEDS -D WLED_USE_H801 [env:esp8285_5CH_H801] board = esp8285 -platform = ${common:esp8266_1M.platform} -monitor_speed = ${common.monitor_speed} -upload_speed = ${common.upload_speed} -framework = ${common.framework} -build_flags = - ${common.build_flags} - ${common:esp8266_1M.build_flags} - -D WLED_DISABLE_HUESYNC - -D WLED_USE_ANALOG_LEDS - -D WLED_USE_H801 - -D WLED_ENABLE_5CH_LEDS -board_build.ldscript = ${common:esp8266_1M.board_build.ldscript} -lib_deps = - ${common.lib_deps_external} -lib_compat_mode = strict -lib_ignore = ${common:esp8266.lib_ignore} +platform = ${common.platform_latest} +board_build.ldscript = ${common.ldscript_1m0m} +build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_HUESYNC -D WLED_USE_ANALOG_LEDS -D WLED_USE_H801 -D WLED_ENABLE_5CH_LEDS + +# ------------------------------------------------------------------------------ +# DEVELOPMENT BOARDS +# ------------------------------------------------------------------------------ + +[env:d1_mini_debug] +board = d1_mini +build_type = debug +platform = ${common.platform_latest} +board_build.ldscript = ${common.ldscript_4m1m} +build_flags = ${common.build_flags_esp8266} ${common.debug_flags} diff --git a/platformio_override.ini.example b/platformio_override.ini.example index 03a77056..09c30172 100644 --- a/platformio_override.ini.example +++ b/platformio_override.ini.example @@ -1,18 +1,17 @@ -; Example PlatformIO Project Configuration Override -; ------------------------------------------------------------------------------ -; Copy to platformio_override.ini to activate overrides -; ------------------------------------------------------------------------------ -; Please visit documentation: https://docs.platformio.org/page/projectconf.html +# Example PlatformIO Project Configuration Override +# ------------------------------------------------------------------------------ +# Copy to platformio_override.ini to activate overrides +# ------------------------------------------------------------------------------ +# Please visit documentation: https://docs.platformio.org/page/projectconf.html [env:esp8266_1m_custom] -platform = ${common:esp8266.arduino_core_2_6_3} -build_flags = - -D PIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH - -Wl,-Teagle.flash.1m.ld ;;;; Compile with no SPIFFS to leave space for OTA - ; -D WLED_DISABLE_OTA - -D WLED_DISABLE_ALEXA +board = esp01_1m +platform = ${common.arduino_core_2_4_2} +board_build.ldscript = ${common.ldscript_1m0m} +build_flags = ${common.build_flags_esp8266} + -D WLED_DISABLE_OTA + -D WLED_DISABLE_ALEXA -D WLED_DISABLE_BLYNK - -D WLED_DISABLE_CRONIXIE - -D WLED_DISABLE_HUESYNC - -D WLED_DISABLE_INFRARED -lib_ignore = ${common:esp8266.lib_ignore} \ No newline at end of file + -D WLED_DISABLE_CRONIXIE + -D WLED_DISABLE_HUESYNC + -D WLED_DISABLE_INFRARED \ No newline at end of file