; ********************************************************************* ; **** 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=true ; 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 -fno-strict-aliasing lib_ignore = ESP32_ping ESP32WebServer ESP32HTTPUpdateServer ServoESP32 IRremoteESP8266 HeatpumpIR TinyWireM [esp82xx_2_5_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 -fno-strict-aliasing lib_ignore = ${esp82xx_defaults.lib_ignore} [esp82xx_2_6_x] build_flags = ${esp82xx_2_5_x.build_flags} -Os -s -DBEARSSL_SSL_BASIC -DCORE_POST_2_6_0 ; remove the 4-bytes alignment for PSTR() -DPSTR_ALIGN=1 lib_ignore = ${esp82xx_defaults.lib_ignore} [esp82xx_3_0_x] build_flags = ${esp82xx_2_6_x.build_flags} -DCORE_POST_3_0_0 -Wno-deprecated-declarations -Werror=return-type -DFS_NO_GLOBALS lib_ignore = ${esp82xx_defaults.lib_ignore} ;[core_2_3_0] ;platform = https://github.com/TD-er/platform-espressif8266.git#patch/v1.5.0_Puya ;build_flags = -DNDEBUG ; -DVTABLES_IN_FLASH ; -fno-exceptions ; -DPUYA_SUPPORT=1 ; -DARDUINO_ESP8266_RELEASE_2_3_0 ; -DFORCE_PRE_2_5_0 ;lib_ignore = ${esp82xx_defaults.lib_ignore} ; IRremoteESP8266 ; HeatpumpIR ;[core_2_4_0] ;platform = https://github.com/TD-er/platform-espressif8266.git#patch/v1.6.0_Puya ;build_flags = ${esp82xx_defaults.build_flags} -DARDUINO_ESP8266_RELEASE_2_4_0 -DFORCE_PRE_2_5_0 ;lib_ignore = ${esp82xx_defaults.lib_ignore} ; IRremoteESP8266 ; HeatpumpIR ;[core_2_4_1] ;platform = https://github.com/TD-er/platform-espressif8266.git#patch/v1.7.3_Puya ;build_flags = ${esp82xx_defaults.build_flags} -DARDUINO_ESP8266_RELEASE_2_4_1 -DFORCE_PRE_2_5_0 ;lib_ignore = ${esp82xx_defaults.lib_ignore} ; IRremoteESP8266 ; HeatpumpIR ;[core_2_4_2] ;platform = https://github.com/TD-er/platform-espressif8266.git#patch/v1.8.0_Puya ;build_flags = ${esp82xx_defaults.build_flags} -DARDUINO_ESP8266_RELEASE_2_4_2 -DFORCE_PRE_2_5_0 ;lib_ignore = ${esp82xx_defaults.lib_ignore} ; IRremoteESP8266 ; HeatpumpIR ; ServoESP32 ;[core_2_5_0] ;platform = espressif8266@2.0.4 ;build_flags = ${esp82xx_2_5_x.build_flags} ;[core_2_5_2] ;platform = espressif8266@2.2.3 ;build_flags = ${esp82xx_2_5_x.build_flags} ; See for SDK flags: https://github.com/esp8266/Arduino/blob/master/tools/platformio-build.py [core_2_7_4] extends = esp82xx_2_6_x platform = espressif8266@2.6.3 platform_packages = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git#2.7.4 build_flags = ${esp82xx_2_6_x.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703 -Wno-deprecated-declarations lib_ignore = ${esp82xx_defaults.lib_ignore} IRremoteESP8266 HeatpumpIR LittleFS(esp8266) ServoESP32 TinyWireM ; Core with alternative WiFi for nodes not running stable wifi or slow network response ; e.g. Sonoff Basic R2. [core_2_7_4_alt_wifi] extends = esp82xx_2_6_x platform = espressif8266@2.6.3 platform_packages = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git#2.7.4 build_flags = ${esp82xx_2_6_x.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191122 -Wno-deprecated-declarations lib_ignore = ${esp82xx_defaults.lib_ignore} IRremoteESP8266 HeatpumpIR LittleFS(esp8266) ServoESP32 TinyWireM [core_3_0_2] extends = esp82xx_3_0_x platform = espressif8266@3.2.0 platform_packages = platformio/framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git mcspr/toolchain-xtensa @ ~5.100300.211127 build_flags = ${esp82xx_3_0_x.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3 lib_ignore = ${esp82xx_defaults.lib_ignore} IRremoteESP8266 HeatpumpIR LittleFS(esp8266) ServoESP32 TinyWireM [core_4_0_1] extends = esp82xx_3_0_x platform = espressif8266@4.0.1 platform_packages = build_flags = ${esp82xx_3_0_x.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3 lib_ignore = ${esp82xx_defaults.lib_ignore} IRremoteESP8266 HeatpumpIR LittleFS(esp8266) ServoESP32 TinyWireM [core_stage_2ndheap] extends = esp82xx_3_0_x platform = https://github.com/platformio/platform-espressif8266.git build_flags = ${esp82xx_3_0_x.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3 -DPIO_FRAMEWORK_ARDUINO_MMU_CACHE16_IRAM48_SECHEAP_SHARED -DUSE_SECOND_HEAP -DPHASE_LOCKED_WAVEFORM platform_packages = platformio/framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git mcspr/toolchain-xtensa @ ~5.100300.211127 [core_stage] extends = esp82xx_3_0_x platform = https://github.com/platformio/platform-espressif8266.git build_flags = ${esp82xx_3_0_x.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3 -DPHASE_LOCKED_WAVEFORM platform_packages = platformio/framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git mcspr/toolchain-xtensa @ ~5.100300.211127 ; 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.3 ; Just for those who lost track of the extremely confusing numbering schema. [core_esp32_IDF4_4__2_0_3] platform = https://github.com/tasmota/platform-espressif32/releases/download/v.2.0.3/platform-espressif32-v.2.0.3.zip platform_packages = build_flags = -DESP32_STAGE [core_esp32_stage] platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-idf-master platform_packages = framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/2.0.1/framework-arduinoespressif32-release_IDF4.4.tar.gz platformio/tool-esptoolpy @ https://github.com/tasmota/esptool/releases/download/v3.2/esptool-v3.2.zip build_flags = -DESP32_STAGE