; ********************************************************************* ; **** Definition cheat sheet: ; board_build.flash_mode in terms of performance: QIO > QOUT > DIO > DOUT ; for lib_ldf_mode, see http://docs.platformio.org/en/latest/librarymanager/ldf.html;ldf ; **** Frequently used build flags: ; Use custom.h file to override default settings for ESPeasy: -D USE_CUSTOM_H ; Set VCC mode to measure Vcc of ESP chip : -D FEATURE_ADC_VCC=1 ; Build Flags: ; -DUSE_CONFIG_OVERRIDE ; lwIP 1.4 (Default) ; -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH ; lwIP 2 - Low Memory ; -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY ; lwIP 2 - Higher Bandwitdh ; -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH ; VTABLES in Flash (default) ; -DVTABLES_IN_FLASH ; VTABLES in Heap ; -DVTABLES_IN_DRAM ; VTABLES in IRAM ; -DVTABLES_IN_IRAM ; NO_EXTRA_4K_HEAP - this forces the default NONOS-SDK user's heap location ; Default currently overlaps cont stack (Arduino) with sys stack (System) ; to save up-to 4 kB of heap. (starting core_2.4.2) ; ESP8266_DISABLE_EXTRA4K - Calls disable_extra4k_at_link_time() from setup ; to force the linker keep user's stack in user ram. ; CONT_STACKSIZE to set the 'cont' (Arduino) stack size. Default = 4096 ; -mtarget-align see: https://github.com/arendst/Sonoff-Tasmota/issues/3678#issuecomment-419712437 [esp82xx_defaults] build_flags = -D NDEBUG -lstdc++ -lsupc++ -mtarget-align -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY -DVTABLES_IN_FLASH -DPUYA_SUPPORT=1 -DDISABLE_SC16IS752_SPI -DCRON_USE_LOCAL_TIME -fno-strict-aliasing -I$PROJECT_DIR/src/include -include "ESPEasy_config.h" lib_ignore = ESP32_ping ESP32WebServer ESP32HTTPUpdateServer ServoESP32 IRremoteESP8266 HeatpumpIR TinyWireM ESP8266SdFat SD(esp8266) SD SDFS LittleFS(esp8266) LittleFS ArduinoOTA ESP8266mDNS I2C AXP192 Power management ; EspSoftwareSerial ; Keep optimization flag to -O2 ; See: https://github.com/platformio/platform-espressif8266/issues/288 ; For "-fno-strict-aliasing" ; See: https://github.com/esp8266/Arduino/issues/8261 [esp82xx_2_7_x] build_flags = -DNDEBUG -mtarget-align -DVTABLES_IN_FLASH -fno-exceptions -lstdc++ -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH -DPUYA_SUPPORT=1 -DCORE_POST_2_5_0 -DDISABLE_SC16IS752_SPI -DCRON_USE_LOCAL_TIME -fno-strict-aliasing -DLIBRARIES_NO_LOG=1 -DNO_GLOBAL_I2S -I$PROJECT_DIR/src/include -include "ESPEasy_config.h" -O2 -s -DBEARSSL_SSL_BASIC -DCORE_POST_2_6_0 ; remove the 4-bytes alignment for PSTR() -DPSTR_ALIGN=1 -Werror=return-type build_unflags = ${esp82xx_common.build_unflags} lib_ignore = ${esp82xx_defaults.lib_ignore} EspSoftwareSerial [esp82xx_3_0_x] build_flags = ${esp82xx_2_7_x.build_flags} -DCORE_POST_3_0_0 -Wno-deprecated-declarations ; -flto=auto ; -Wl,-flto build_unflags = -DDEBUG_ESP_PORT -fexceptions -Wall ; -fno-lto lib_ignore = ${esp82xx_defaults.lib_ignore} extra_scripts = pre:tools/pio/pre_custom_esp8266_toolchain.py ; See for SDK flags: https://github.com/esp8266/Arduino/blob/master/tools/platformio-build.py [core_2_7_4] extends = esp82xx_2_7_x platform = espressif8266@2.6.3 platform_packages = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git#2.7.4 build_flags = ${esp82xx_2_7_x.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703 -DUSES_LATEST_SOFTWARE_SERIAL_LIBRARY=0 -Wno-deprecated-declarations -DLIBRARIES_NO_LOG=1 lib_ignore = ${esp82xx_2_7_x.lib_ignore} build_unflags = ${esp82xx_2_7_x.build_unflags} extra_scripts = ${esp82xx_common.extra_scripts} [core_stage] extends = esp82xx_3_0_x platform = espressif8266@4.2.1 platform_packages = build_flags = ${esp82xx_3_0_x.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3 -DUSES_LATEST_SOFTWARE_SERIAL_LIBRARY=1 -DLIBRARIES_NO_LOG=1 -DPHASE_LOCKED_WAVEFORM build_unflags = ${esp82xx_3_0_x.build_unflags} lib_ignore = ${esp82xx_defaults.lib_ignore} extra_scripts = ${esp82xx_common.extra_scripts} ; See: https://arduino-esp8266.readthedocs.io/en/latest/mmu.html [core_stage_2ndheap] extends = esp82xx_3_0_x platform = espressif8266@4.2.1 platform_packages = build_flags = ${esp82xx_3_0_x.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3 -DUSES_LATEST_SOFTWARE_SERIAL_LIBRARY=1 -DLIBRARIES_NO_LOG=1 -DPHASE_LOCKED_WAVEFORM -DPIO_FRAMEWORK_ARDUINO_MMU_CACHE16_IRAM48_SECHEAP_SHARED -DUSE_SECOND_HEAP build_unflags = ${esp82xx_3_0_x.build_unflags} lib_ignore = ${core_stage.lib_ignore} extra_scripts = ${esp82xx_common.extra_scripts} ; Updated ESP-IDF to the latest stable 4.0.1 ; See: https://github.com/platformio/platform-espressif32/releases ; IDF 4.4 = platform-espressif32 3.4.x = espressif/arduino-esp32 tag 2.0.4 ; Just for those who lost track of the extremely confusing numbering schema. ; For MUSTFIX_CLIENT_TIMEOUT_IN_SECONDS See: https://github.com/espressif/arduino-esp32/pull/6676 [core_esp32_IDF4_4__2_0_14] ;platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.4.1/platform-espressif32-2.0.4.1.zip ; debug boot log enabled ; See: https://github.com/letscontrolit/ESPEasy/pull/4200#issuecomment-1216929859 ;platform = https://github.com/Jason2866/platform-espressif32.git ;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/936/framework-arduinoespressif32-443_esp421-9ce849ce72.tar.gz ; debug boot log disabled ;platform = https://github.com/Jason2866/platform-espressif32.git ;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/938/framework-arduinoespressif32-443_esp421-10ab11e815.tar.gz ;platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.5.2/platform-espressif32-2.0.5.2.zip ;platform = https://github.com/tasmota/platform-espressif32/releases/download/2022.12.2/platform-espressif32.zip ;platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.01.01/platform-espressif32.zip ;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1212/framework-arduinoespressif32-release_v4.4-fb9a7685e1.zip ;platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.01.02/platform-espressif32.zip ;platform_packages = ;platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.02.00/platform-espressif32.zip ;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1243/framework-arduinoespressif32-lwip_timeout-ed6742e7f0.zip ;platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.05.03/platform-espressif32.zip ;platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.06.04/platform-espressif32.zip platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.10.03/platform-espressif32.zip platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1645/framework-arduinoespressif32-release_v4.4_spiffs-e3fc63b439.zip build_flags = -DESP32_STAGE -DESP_IDF_VERSION_MAJOR=4 -DMUSTFIX_CLIENT_TIMEOUT_IN_SECONDS -DLIBRARIES_NO_LOG=1 -DDISABLE_SC16IS752_SPI -DCONFIG_PM_ENABLE -DCONFIG_FREERTOS_USE_TICKLESS_IDLE=1 -DCONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3 -DNEOPIXEL_ESP32_RMT_DEFAULT -DCRON_USE_LOCAL_TIME -I$PROJECT_DIR/src/include -include "sdkconfig.h" -include "ESPEasy_config.h" -include "esp32x_fixes.h" -Wnull-dereference lib_ignore = ; ESP_IDF 5.1 [core_esp32_IDF5_1__3_0_0] ;platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.04.11/platform-espressif32.zip ;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/2286/framework-arduinoespressif32-all-release_v5.1-11140aa.zip ;platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.04.14/platform-espressif32.zip ;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/2386/framework-arduinoespressif32-all-release_v5.1-324fdc1.zip platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.07.10/platform-espressif32.zip platform_packages = build_flags = -DESP32_STAGE -DESP_IDF_VERSION_MAJOR=5 -DLIBRARIES_NO_LOG=1 -DDISABLE_SC16IS752_SPI -DCONFIG_PM_ENABLE ; -DCONFIG_LWIP_L2_TO_L3_COPY ; -DETH_SPI_SUPPORTS_NO_IRQ=1 -DCONFIG_FREERTOS_USE_TICKLESS_IDLE=1 -DCONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3 -DNEOPIXEL_ESP32_RMT_DEFAULT -DCRON_USE_LOCAL_TIME -I$PROJECT_DIR/src/include -include "sdkconfig.h" -include "ESPEasy_config.h" -include "esp32x_fixes.h" -Wnull-dereference lib_ignore =