diff --git a/.travis.yml b/.travis.yml index 114f8c306..4e7801494 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,8 +38,6 @@ script: - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e custom_ESP8266_4M1M - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e custom_ESP8266_4M2M - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e dev_ESP8266_4M1M - - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e esp-wrover-kit_test_4M316k - - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e esp32test_4M316k - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e hard_SONOFF_POW_4M1M - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e hard_Shelly_1_2M256 - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e hard_Ventus_W266 @@ -62,6 +60,8 @@ script: - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e test_ESP8266_4M_VCC - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e test_beta_ESP8266_16M - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e test_beta_ESP8266_4M1M + - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e test_ESP32_4M316k + - PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e test_ESP32-wrover-kit_4M316k before_deploy: - ./before_deploy diff --git a/before_deploy b/before_deploy index 5a4bb2962..526557a33 100755 --- a/before_deploy +++ b/before_deploy @@ -45,8 +45,6 @@ for ENV in \ custom_ESP8266_4M1M\ custom_ESP8266_4M2M\ dev_ESP8266_4M1M\ - esp-wrover-kit_test_4M316k\ - esp32test_4M316k\ hard_SONOFF_POW_4M1M\ hard_Shelly_1_2M256\ hard_Ventus_W266\ @@ -68,7 +66,9 @@ for ENV in \ normal_WROOM02_2M\ test_ESP8266_4M_VCC\ test_beta_ESP8266_16M\ - test_beta_ESP8266_4M1M;\ + test_beta_ESP8266_4M1M\ + test_ESP32_4M316k\ + test_ESP32-wrover-kit_4M316k;\ do MAX_FILESIZE=1044464 if [[ ${ENV} == *"_1M"* ]]; then diff --git a/dist/README.txt b/dist/README.txt index dcc7cf149..3b0cfebdc 100644 --- a/dist/README.txt +++ b/dist/README.txt @@ -53,7 +53,7 @@ Special memory partitioning: ESP32 now has 3 builds: - esp32test_4M316k Larger sketch partition (1.8MB) smaller SPIFFS (316 kB) -- esp-wrover-kit_test_4M316k A build for ESP32 including build flags for the official WRover test kit. +- test_ESP32-wrover-kit_4M316k A build for ESP32 including build flags for the official WRover test kit. Please note that changing between those versions will destroy the settings! The SPIFFS partition will be lost and that contains all settings. diff --git a/platformio.ini b/platformio.ini index 1e8a304ca..2f7464dc9 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,6 +12,12 @@ [platformio] description = Firmware for ESP82xx/ESP32 for easy IoT deployment of sensors. +extra_configs = + platformio_core_defs.ini + platformio_esp82xx_base.ini + platformio_esp82xx_envs.ini + platformio_esp32_envs.ini + platformio_special_envs.ini default_envs = custom_ESP8266_4M1M, custom_ESP32_4M316k ;default_envs = dev_ESP8266_4M1M ;default_envs = normal_ESP8266_4M1M @@ -20,14 +26,6 @@ default_envs = custom_ESP8266_4M1M, custom_ESP32_4M316k ;build_cache_dir = $PROJECT_DIR\.buildcache -;minimal version for esps with 512K or less flash (only has minimal plugin set) -; [env:mini_512] -; platform = ${common.platform} -; -; board = esp01 -; -; build_flags = !echo -Wl,-Tesp8266.flash.512k64.ld -D BUILD_GIT=\'\"$(git describe)\"\' -; ; upload_port = /dev/ttyUSB0 ; add these: ; -Werror -Wall -Wextra -pedantic -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op @@ -35,8 +33,8 @@ default_envs = custom_ESP8266_4M1M, custom_ESP32_4M316k ; -Wstrict-overflow=5 -Wundef -Wno-unused -Wno-variadic-macros -Wno-parentheses -fdiagnostics-show-option ; thanks @chouffe103 [compiler_warnings] -build_flags = - -Wall -Wno-parentheses -fdiagnostics-show-option +build_flags = -Wall -Wno-parentheses -fdiagnostics-show-option + [minimal_size] build_flags = @@ -58,121 +56,6 @@ upload_flags_esp32 = build_flags = -DFEATURE_ARDUINO_OTA upload_port = 192.168.1.152 -; ********************************************************************* - -; **** 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 BUILD_GIT='"${sysenv.TRAVIS_TAG}"' - -D NDEBUG - -lstdc++ -lsupc++ - -mtarget-align - -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY - -DVTABLES_IN_FLASH - -DPUYA_SUPPORT=1 - -[esp82xx_2_5_x] -build_flags = -D BUILD_GIT='"${sysenv.TRAVIS_TAG}"' - -DNDEBUG - -mtarget-align - -DVTABLES_IN_FLASH - -fno-exceptions - -lstdc++ - -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY_LOW_FLASH - -DPUYA_SUPPORT=1 - -DCORE_POST_2_5_0 - -[esp82xx_2_6_x] -build_flags = ${esp82xx_2_5_x.build_flags} - -O2 - -DBEARSSL_SSL_BASIC - -DCORE_POST_2_6_0 - - -;[core_2_3_0] -;platform = https://github.com/TD-er/platform-espressif8266.git#patch/v1.5.0_Puya -;build_flags = -D BUILD_GIT='"${sysenv.TRAVIS_TAG}"' -; -DNDEBUG -; -DVTABLES_IN_FLASH -; -fno-exceptions -; -DPUYA_SUPPORT=1 -; -DARDUINO_ESP8266_RELEASE_2_3_0 -; -DFORCE_PRE_2_5_0 -;lib_ignore = ESP32_ping, ESP32WebServer, 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 = ESP32_ping, ESP32WebServer, 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 = ESP32_ping, ESP32WebServer, 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 = ESP32_ping, ESP32WebServer, IRremoteESP8266, HeatpumpIR - -;[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} - -[core_2_6_0] -platform = https://github.com/Jason2866/platform-espressif8266.git#core_2_6_0 -build_flags = ${esp82xx_2_6_x.build_flags} - -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105 - -[core_2_6_1] -platform = https://github.com/Jason2866/platform-espressif8266.git#core_2_6_1 -build_flags = ${esp82xx_2_6_x.build_flags} - -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105 - -[core_stage] -platform = https://github.com/platformio/platform-espressif8266.git#feature/stage -build_flags = ${esp82xx_2_6_x.build_flags} - -DARDUINO_ESP8266_RELEASE='"2.7.0-dev stage"' - -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105 - -[core_esp32_1_11_1] -platform = espressif32@1.11.1 - -[core_esp32_stage] -platform = https://github.com/platformio/platform-espressif32.git#feature/stage [debug_flags] @@ -190,532 +73,10 @@ upload_speed = 115200 monitor_speed = 115200 ;targets = size, checkprogsize targets = - - -[regular_platform] -build_unflags = -build_flags = ${core_2_6_1.build_flags} -platform = ${core_2_6_1.platform} - -[beta_platform] -build_unflags = -build_flags = ${core_stage.build_flags} -platform = ${core_stage.platform} - - - -[debug_pio] -build_type = debug -check_tool = clangtidy +extra_scripts = pre:pre_default_check.py [env] extends = common -[esp82xx_common] -extends = common -board_build.f_cpu = 80000000L -build_flags = ${debug_flags.build_flags} ${mqtt_flags.build_flags} -DHTTPCLIENT_1_1_COMPATIBLE=0 -build_unflags = -DDEBUG_ESP_PORT -lib_deps = https://github.com/TD-er/ESPEasySerial.git -lib_ignore = ESP32_ping, ESP32WebServer, IRremoteESP8266, HeatpumpIR, SD(esp8266), SDFS -board = esp12e - - -[esp32_common] -extends = common -platform = ${core_esp32_1_11_1.platform} -lib_ignore = AS_BH1750, ESP8266WiFi, ESP8266Ping, ESP8266WebServer, ESP8266HTTPUpdateServer, ESP8266mDNS, IRremoteESP8266, ESPEasy_ESP8266Ping, ESP32_ping, HeatpumpIR -lib_deps = https://github.com/TD-er/ESPEasySerial.git -board_build.f_flash = 80000000L -board_build.flash_mode = dout -board_upload.maximum_size = 1900544 -board_build.partitions = esp32_partition_app1810k_spiffs316k.csv -build_unflags = -Wall -build_flags = ${mqtt_flags.build_flags} - -D BUILD_GIT='"${sysenv.TRAVIS_TAG}"' - -DCONFIG_FREERTOS_ASSERT_DISABLE - -DCONFIG_LWIP_ESP_GRATUITOUS_ARP - -DCONFIG_LWIP_GARP_TMR_INTERVAL=30 - - -[hard_esp82xx] -platform = ${regular_platform.platform} -build_flags = ${regular_platform.build_flags} - -DBUILD_NO_DEBUG - -DPLUGIN_BUILD_CUSTOM - - - -[normal] -platform = ${regular_platform.platform} -build_flags = ${regular_platform.build_flags} - -[normal_beta] -platform = ${beta_platform.platform} -build_flags = ${beta_platform.build_flags} - - -[ir] -platform = ${regular_platform.platform} -build_flags = ${regular_platform.build_flags} -lib_ignore = ESP32_ping, ESP32WebServer, SD(esp8266), SDFS - -[minimal_ir] -extends = ir -build_flags = ${ir.build_flags} -DPLUGIN_BUILD_MINIMAL_IR - -[minimal_ir_extended] -extends = ir -build_flags = ${ir.build_flags} -DPLUGIN_BUILD_MINIMAL_IRext - -[normal_ir] -extends = ir -build_flags = ${ir.build_flags} -DPLUGIN_BUILD_NORMAL_IR - -[normal_ir_extended] -extends = ir -build_flags = ${ir.build_flags} -DPLUGIN_BUILD_IR_EXTENDED - -[normal_ir_extended_no_rx] -extends = ir -build_flags = ${ir.build_flags} -DPLUGIN_BUILD_IR_EXTENDED_NO_RX - -[testing] -platform = ${regular_platform.platform} -build_flags = ${regular_platform.build_flags} -DPLUGIN_BUILD_TESTING - -[testing_beta] -platform = ${beta_platform.platform} -build_flags = ${beta_platform.build_flags} -DPLUGIN_BUILD_TESTING - -[dev] -platform = ${beta_platform.platform} -build_flags = ${beta_platform.build_flags} -DPLUGIN_BUILD_DEV - - -[esp82xx_1M] -extends = esp82xx_common -board_build.flash_mode = dout -board_upload.maximum_size = 786432 -build_flags = -Wl,-Tesp8266.flash.1m128.ld - -DSIZE_1M - -DBUILD_NO_DEBUG - ${esp82xx_common.build_flags} - -[esp8266_1M] -extends = esp82xx_1M -board = esp01_1m - -[esp8285_1M] -extends = esp82xx_1M -board = esp8285 -build_flags = ${esp8266_1M.build_flags} -DESP8285 - - -[esp82xx_1M_OTA] -extends = esp82xx_common -board_build.flash_mode = dout -board_upload.maximum_size = 616448 -build_flags = ${esp82xx_1M.build_flags} -DPLUGIN_BUILD_MINIMAL_OTA - - -[esp8266_1M_OTA] -extends = esp82xx_1M_OTA -board = esp01_1m - -[esp8285_1M_OTA] -extends = esp82xx_1M_OTA -board = esp8285 -build_flags = ${esp82xx_1M_OTA.build_flags} -DESP8285 - -[esp8266_2M256] -extends = esp82xx_common -board = esp12e -board_build.flash_mode = dio -board_upload.maximum_size = 1044464 -build_flags = -Wl,-Tesp8266.flash.2m256.ld - ${esp82xx_common.build_flags} - -[espWroom2M] -extends = esp82xx_common -board = esp12e -board_build.flash_mode = dio -board_upload.maximum_size = 1044464 -build_flags = -Wl,-Tesp8266.flash.2m.ld - ${esp82xx_common.build_flags} - -[espWroom2M256] -extends = esp82xx_common -board_build.flash_mode = dout -board_upload.maximum_size = 1044464 -board = esp_wroom_02 -build_flags = -Wl,-Tesp8266.flash.2m256.ld - ${esp82xx_common.build_flags} - -[esp8266_4M1M] -extends = esp82xx_common -board = esp12e -board_build.flash_mode = dio -board_upload.maximum_size = 1044464 -build_flags = -Wl,-Tesp8266.flash.4m1m.ld - ${esp82xx_common.build_flags} - -[esp8266_4M2M] -extends = esp82xx_common -board = esp12e -board_build.flash_mode = dio -board_upload.maximum_size = 1044464 -build_flags = -Wl,-Tesp8266.flash.4m2m.ld - ${esp82xx_common.build_flags} - - -; Configuration for the Wemos D1 mini pro (16M) -; This configuration can only be used with core versions 2.5.0 or newer. -; Performance of 14M SPIFFS is really slow. -; See https://github.com/esp8266/Arduino/issues/5932 -[esp8266_16M] -extends = esp82xx_common -board = esp12e -board_build.flash_mode = dio -board_upload.maximum_size = 1044464 -build_flags = -Wl,-Tesp8266.flash.16m14m.ld - -DSPIFFS_MAX_OPEN_FILES=20 - ${esp82xx_common.build_flags} - -; Custom: 4M1M version -------------------------- -[env:custom_ESP8266_4M1M] -extends = esp8266_4M1M -platform = ${beta_platform.platform} -build_flags = ${esp8266_4M1M.build_flags} ${beta_platform.build_flags} -DPLUGIN_BUILD_CUSTOM -lib_ignore = ESP32_ping, ESP32WebServer -extra_scripts = pre:pre_extra_script.py - - -[env:debug_custom_ESP8266_4M1M] -extends = esp8266_4M1M, debug_pio -platform = ${beta_platform.platform} -build_flags = ${esp8266_4M1M.build_flags} ${beta_platform.build_flags} -DPLUGIN_BUILD_CUSTOM -;lib_ignore = ESP32_ping, ESP32WebServer -extra_scripts = pre:pre_extra_script.py - - -; Custom: 4M2M version -------------------------- -[env:custom_ESP8266_4M2M] -extends = esp8266_4M2M -platform = ${beta_platform.platform} -build_flags = ${esp8266_4M1M.build_flags} ${beta_platform.build_flags} -DPLUGIN_BUILD_CUSTOM -lib_ignore = ESP32_ping, ESP32WebServer -extra_scripts = pre:pre_extra_script.py - - -; Custom: 4096k version -------------------------- -[env:debug_custom_ESP32_4M316k] -extends = esp32_common, debug_pio -platform = ${esp32_common.platform} -build_flags = ${esp32_common.build_flags} -DPLUGIN_BUILD_CUSTOM -board = esp32dev -extra_scripts = pre:pre_custom_esp32.py - - -[env:custom_ESP32_4M316k] -extends = esp32_common -platform = ${esp32_common.platform} -build_flags = ${esp32_common.build_flags} -DPLUGIN_BUILD_CUSTOM -board = esp32dev -extra_scripts = pre:pre_custom_esp32.py - - -;;; ESP32 pre-alpha test build ; ****; ****; ****; ****; ****; ****; ****; ****; ****;;;;; -; Very limited build for ESP32, to start testing regular building for ESP32. ; -; Will probably not work, not tested and guaranteed to take a few hours time of some ; -; still trying to build the version without reading this warning. ; -; ********************************************************************* -[env:esp-wrover-kit_test_4M316k] -extends = esp32_common -platform = ${esp32_common.platform} -build_flags = ${esp32_common.build_flags} -DPLUGIN_SET_TEST_ESP32 -board = esp-wrover-kit -upload_protocol = ftdi -debug_tool = ftdi -debug_extra_cmds = break Misc.ino:3011 - - -[env:esp32test_4M316k] -extends = esp32_common -platform = ${esp32_common.platform} -build_flags = ${esp32_common.build_flags} -DPLUGIN_SET_TEST_ESP32 -board = esp32dev - - - -;;; NORMAL (STABLE) *************************************************** -; normal version with stable plugins ; -; ********************************************************************* - -; NORMAL: 1024k version -------------------------- -[env:normal_ESP8266_1M] -extends = esp8266_1M -platform = ${regular_platform.platform} -build_flags = ${esp8266_1M.build_flags} - - - -[env:normal_ESP8266_1M_VCC] -extends = esp8266_1M -platform = ${regular_platform.platform} -build_flags = ${esp8266_1M.build_flags} -D FEATURE_ADC_VCC=true - -; NORMAL: 1024k for esp8285 ---------------------- -[env:normal_ESP8285_1M] -extends = esp8285_1M -platform = ${regular_platform.platform} -build_flags = ${esp8285_1M.build_flags} - - -; NORMAL: 2048k WROOM02 version -------------------------- -[env:normal_WROOM02_2M] -extends = espWroom2M -platform = ${regular_platform.platform} -build_flags = ${espWroom2M.build_flags} ${regular_platform.build_flags} - - -; NORMAL: 2048k WROOM02 version 256k SPIFFS -------------------------- -[env:normal_WROOM02_2M256] -extends = espWroom2M256 -platform = ${regular_platform.platform} -build_flags = ${espWroom2M256.build_flags} ${regular_platform.build_flags} - - -; NORMAL: 4096k version -------------------------- -[env:normal_ESP8266_4M1M] -extends = esp8266_4M1M -platform = ${regular_platform.platform} -build_flags = ${esp8266_4M1M.build_flags} ${regular_platform.build_flags} - - -[env:normal_ESP8266_16M] -extends = esp8266_16M -platform = ${regular_platform.platform} -build_flags = ${esp8266_16M.build_flags} ${regular_platform.build_flags} - - -;;; Minimal *********************************************************** -; Minimal build size for OTA ; -; ********************************************************************* - -[env:minimal_core_242_ESP8266_1M_OTA] -extends = esp8266_1M_OTA -platform = ${core_2_4_2.platform} -build_flags = ${esp8266_1M_OTA.build_flags} ${core_2_4_2.build_flags} - -[env:minimal_core_242_ESP8285_1M_OTA] -extends = esp8285_1M_OTA -platform = ${core_2_4_2.platform} -build_flags = ${esp8285_1M_OTA.build_flags} ${core_2_4_2.build_flags} - -[env:minimal_core_261_ESP8266_1M_OTA] -extends = esp8266_1M_OTA -platform = ${regular_platform.platform} -build_flags = ${esp8266_1M_OTA.build_flags} ${regular_platform.build_flags} - -[env:minimal_core_261_ESP8285_1M_OTA] -extends = esp8285_1M_OTA -platform = ${regular_platform.platform} -build_flags = ${esp8285_1M_OTA.build_flags} ${regular_platform.build_flags} - - - - -;;; IR *********************************************************** -; IR builds ; -; ********************************************************************* - - -; Minimal IR: 1024k version -------------------------- -; Build including IR libraries, including extended AC commands -; Minimal set of other plugins -[env:minimal_IRext_ESP8266_1M] -extends = esp8266_1M -platform = ${minimal_ir_extended.platform} -lib_ignore = ${minimal_ir_extended.lib_ignore} -build_flags = ${minimal_ir_extended.build_flags} ${esp8266_1M.build_flags} -build_unflags = ${esp8266_1M_OTA.build_unflags} -DPLUGIN_BUILD_NORMAL_IR - - -; Minimal IR: 4096k version -------------------------- -; Build including IR libraries, INCLUDING extended AC commands -; Includes Extended IR AC commands (takes a lot more program space) -[env:minimal_IRext_ESP8266_4M1M] -extends = esp8266_4M1M -platform = ${minimal_ir_extended.platform} -lib_ignore = ${minimal_ir_extended.lib_ignore} -build_flags = ${minimal_ir_extended.build_flags} ${esp8266_4M1M.build_flags} - - -[env:minimal_IRext_ESP8266_4M2M] -extends = esp8266_4M2M -platform = ${minimal_ir_extended.platform} -lib_ignore = ${minimal_ir_extended.lib_ignore} -build_flags = ${minimal_ir_extended.build_flags} ${esp8266_4M2M.build_flags} - - -; NORMAL IR: 4096k version -------------------------- -; Build including IR libraries, INCLUDING extended AC commands -; Includes Extended IR AC commands (takes a lot more program space) -[env:normal_IRext_no_rx_ESP8266_4M2M] -extends = esp8266_4M2M -platform = ${normal_ir_extended_no_rx.platform} -lib_ignore = ${normal_ir_extended_no_rx.lib_ignore} -build_flags = ${normal_ir_extended_no_rx.build_flags} ${esp8266_4M2M.build_flags} - - -[env:test_beta_ESP8266_4M1M] -extends = esp8266_4M1M -platform = ${testing_beta.platform} -build_flags = ${esp8266_4M1M.build_flags} ${testing_beta.build_flags} - - -[env:test_beta_ESP8266_16M] -extends = esp8266_16M -platform = ${testing_beta.platform} -build_flags = ${esp8266_16M.build_flags} ${testing_beta.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22y - - -; TEST: 4096k version + FEATURE_ADC_VCC ---------- -[env:test_ESP8266_4M_VCC] -extends = esp8266_4M1M -platform = ${testing.platform} -build_flags = ${esp8266_4M1M.build_flags} ${testing.build_flags} -D FEATURE_ADC_VCC=true - - - - - -;;; DEV ************************************************************** -; additional plugins (and dependend code) that is in development (probably broken or incomplete) -; ********************************************************************* - -; DEV : 4096k version ---------------------------- -[env:dev_ESP8266_4M1M] -extends = esp8266_4M1M -platform = ${dev.platform} -build_flags = ${esp8266_4M1M.build_flags} ${dev.build_flags} - - - -;;; HARDWARE SPECIFIC VERSIONS *********************************************************** -; versions specially designed to fit, and contents only needed plugins for each hardware ; -; **************************************************************************************** - -; ITEAD Products ; ****; ****; ****; ****; ****;; - -; ITEAD / SONOFF BASIC version ------------------ -;[env:hard_SONOFF_BASIC] -;platform = ${esp8266_1M.platform} -;build_flags = ${esp8266_1M.build_flags} -D PLUGIN_SET_SONOFF_BASIC -;board_build.f_cpu = ${esp8266_1M.board_build.f_cpu} -;board_build.flash_mode = ${esp8266_1M.board_build.flash_mode} -;board = ${esp8266_1M.board} -;build_unflags = ${esp8266_1M.build_unflags} - - -; ITEAD / SONOFF TH10/TH16 version ------------------- -;[env:hard_SONOFF_TH1x] -;platform = ${esp8266_1M.platform} -;build_flags = ${esp8266_1M.build_flags} -D PLUGIN_SET_SONOFF_TH1x -;board_build.f_cpu = ${esp8266_1M.board_build.f_cpu} -;board_build.flash_mode = ${esp8266_1M.board_build.flash_mode} -;board = ${esp8266_1M.board} -;build_unflags = ${esp8266_1M.build_unflags} - -; ITEAD / SONOFF POW & POW R2 version -------------------- -; Sonoff Pow (ESP8266 - HLW8012) -; GPIO00 Button -; GPIO05 HLW8012 Sel output -; GPIO12 Red Led and Relay (0 = Off, 1 = On) -; GPIO13 HLW8012 CF1 voltage / current -; GPIO14 HLW8012 CF power -; GPIO15 Blue Led (0 = On, 1 = Off) - -; Sonoff Pow R2 (ESP8266 4M flash - CSE7766) -; GPIO00 Button -; GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor -; GPIO03 Serial TXD -; GPIO12 Red Led and Relay (0 = Off, 1 = On) -; GPIO13 Blue Led (0 = On, 1 = Off) -[env:hard_SONOFF_POW_4M1M] -extends = esp8266_4M1M, hard_esp82xx -platform = ${hard_esp82xx.platform} -build_flags = ${hard_esp82xx.build_flags} ${esp8266_4M1M.build_flags} -D PLUGIN_SET_SONOFF_POW - - -; Build including power measurement plugins for those devices that have only 1M flash. -; For example those made by BlitzWolf SHP -[env:hard_other_POW_ESP8285_1M] -extends = esp8285_1M, hard_esp82xx -platform = ${hard_esp82xx.platform} -build_flags = ${hard_esp82xx.build_flags} ${esp8285_1M.build_flags} -D PLUGIN_SET_SONOFF_POW - - -; ITEAD / SONOFF S20 version -------------------- -;[env:hard_SONOFF_S20] -;platform = ${esp8266_1M.platform} -;build_flags = ${esp8266_1M.build_flags} -D PLUGIN_SET_SONOFF_S2x -;board_build.f_cpu = ${esp8266_1M.board_build.f_cpu} -;board_build.flash_mode = ${esp8266_1M.board_build.flash_mode} -;board = ${esp8266_1M.board} -;build_unflags = ${esp8266_1M.build_unflags} - - -; ITEAD / SONOFF 4CH version -------------------- -;[env:hard_SONOFF_4CH] -;platform = ${esp8266_1M.platform} -;build_flags = ${esp8266_1M.build_flags} -D PLUGIN_SET_SONOFF_4CH -;board_build.f_cpu = ${esp8266_1M.board_build.f_cpu} -;board_build.flash_mode = ${esp8266_1M.board_build.flash_mode} -;board = ${esp8266_1M.board} -;build_unflags = ${esp8266_1M.build_unflags} - - - -; ITEAD / SONOFF TOUCH version ------------------ -;[env:hard_SONOFF_TOUCH] -;platform = ${esp8266_1M.platform} -;build_flags = ${esp8266_1M.build_flags} -D PLUGIN_SET_SONOFF_TOUCH -;board_build.f_cpu = ${esp8266_1M.board_build.f_cpu} -;board_build.flash_mode = ${esp8266_1M.board_build.flash_mode} -;board = ${esp8266_1M.board} -;build_unflags = ${esp8266_1M.build_unflags} -; - - -; Shelly1 Open Source (ESP8266-2MB) -; https://shelly.cloud/shelly1-open-source/ -; GPIO04 Relay (non inverted) -; GPIO05 Button -[env:hard_Shelly_1_2M256] -extends = esp8266_2M256 -platform = ${normal.platform} -build_flags = ${normal.build_flags} ${esp8266_2M256.build_flags} -D PLUGIN_SET_SHELLY_1 - -; Ventus W266 weather station -; https://www.letscontrolit.com/wiki/index.php/VentusW266 -[env:hard_Ventus_W266] -extends = esp8266_1M -platform = ${normal.platform} -build_flags = ${normal.build_flags} ${esp8266_1M_OTA.build_flags} -D PLUGIN_SET_VENTUS_W266 - - - - -; Special env for memory analysis -; This may generate builds which cannot be run, so do not upload to a node. -; Has the same lib_ignore as the IR builds, or else those cannot be built for testing -[env:memanalyze_ESP8266] -extends = esp8266_4M1M -platform = ${regular_platform.platform} -lib_ignore = ESP32_ping, ESP32WebServer -build_flags = ${esp8266_4M1M.build_flags} -DMEMORY_ANALYSIS -DPLUGIN_BUILD_CUSTOM -w -DUSE_NON_STANDARD_24_TASKS -DTASKS_MAX=24 -extra_scripts = pre:pre_memanalyze.py diff --git a/platformio_core_defs.ini b/platformio_core_defs.ini new file mode 100644 index 000000000..9a1a9a519 --- /dev/null +++ b/platformio_core_defs.ini @@ -0,0 +1,115 @@ +; ********************************************************************* + +; **** 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 BUILD_GIT='"${sysenv.TRAVIS_TAG}"' + -D NDEBUG + -lstdc++ -lsupc++ + -mtarget-align + -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY + -DVTABLES_IN_FLASH + -DPUYA_SUPPORT=1 + +[esp82xx_2_5_x] +build_flags = -D BUILD_GIT='"${sysenv.TRAVIS_TAG}"' + -DNDEBUG + -mtarget-align + -DVTABLES_IN_FLASH + -fno-exceptions + -lstdc++ + -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY_LOW_FLASH + -DPUYA_SUPPORT=1 + -DCORE_POST_2_5_0 + +[esp82xx_2_6_x] +build_flags = ${esp82xx_2_5_x.build_flags} + -O2 + -DBEARSSL_SSL_BASIC + -DCORE_POST_2_6_0 + + +;[core_2_3_0] +;platform = https://github.com/TD-er/platform-espressif8266.git#patch/v1.5.0_Puya +;build_flags = -D BUILD_GIT='"${sysenv.TRAVIS_TAG}"' +; -DNDEBUG +; -DVTABLES_IN_FLASH +; -fno-exceptions +; -DPUYA_SUPPORT=1 +; -DARDUINO_ESP8266_RELEASE_2_3_0 +; -DFORCE_PRE_2_5_0 +;lib_ignore = ESP32_ping, ESP32WebServer, 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 = ESP32_ping, ESP32WebServer, 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 = ESP32_ping, ESP32WebServer, 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 = ESP32_ping, ESP32WebServer, IRremoteESP8266, HeatpumpIR + +;[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} + +[core_2_6_0] +platform = https://github.com/Jason2866/platform-espressif8266.git#core_2_6_0 +build_flags = ${esp82xx_2_6_x.build_flags} + -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105 + +[core_2_6_1] +platform = https://github.com/Jason2866/platform-espressif8266.git#core_2_6_1 +build_flags = ${esp82xx_2_6_x.build_flags} + -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105 + +[core_stage] +platform = https://github.com/platformio/platform-espressif8266.git#feature/stage +build_flags = ${esp82xx_2_6_x.build_flags} + -DARDUINO_ESP8266_RELEASE='"2.7.0-dev stage"' + -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105 + +[core_esp32_1_11_1] +platform = espressif32@1.11.1 + +[core_esp32_stage] +platform = https://github.com/platformio/platform-espressif32.git#feature/stage diff --git a/platformio_esp32_envs.ini b/platformio_esp32_envs.ini new file mode 100644 index 000000000..278b047b5 --- /dev/null +++ b/platformio_esp32_envs.ini @@ -0,0 +1,52 @@ +;;; ESP32 test build ********************************************************************; +; Status of the ESP32 support is still considered "beta" ; +; Most plugins work just fine on ESP32. ; +; Especially some plugins using serial may not run very well (GPS does run fine). ; +; ***************************************************************************************; + + + +[esp32_common] +extends = common +platform = ${core_esp32_1_11_1.platform} +lib_ignore = AS_BH1750, ESP8266WiFi, ESP8266Ping, ESP8266WebServer, ESP8266HTTPUpdateServer, ESP8266mDNS, IRremoteESP8266, ESPEasy_ESP8266Ping, ESP32_ping, HeatpumpIR +lib_deps = https://github.com/TD-er/ESPEasySerial.git +board_build.f_flash = 80000000L +board_build.flash_mode = dout +board_upload.maximum_size = 1900544 +board_build.partitions = esp32_partition_app1810k_spiffs316k.csv +build_unflags = -Wall +build_flags = ${mqtt_flags.build_flags} + -D BUILD_GIT='"${sysenv.TRAVIS_TAG}"' + -DCONFIG_FREERTOS_ASSERT_DISABLE + -DCONFIG_LWIP_ESP_GRATUITOUS_ARP + -DCONFIG_LWIP_GARP_TMR_INTERVAL=30 + + + +; Custom: 4096k version -------------------------- +[env:custom_ESP32_4M316k] +extends = esp32_common +platform = ${esp32_common.platform} +build_flags = ${esp32_common.build_flags} -DPLUGIN_BUILD_CUSTOM +board = esp32dev +extra_scripts = pre:pre_custom_esp32.py + + +[env:test_ESP32_4M316k] +extends = esp32_common +platform = ${esp32_common.platform} +build_flags = ${esp32_common.build_flags} -DPLUGIN_SET_TEST_ESP32 +board = esp32dev + + +[env:test_ESP32-wrover-kit_4M316k] +extends = esp32_common +platform = ${esp32_common.platform} +build_flags = ${esp32_common.build_flags} -DPLUGIN_SET_TEST_ESP32 +board = esp-wrover-kit +upload_protocol = ftdi +debug_tool = ftdi +debug_extra_cmds = break Misc.ino:3011 + + diff --git a/platformio_esp82xx_base.ini b/platformio_esp82xx_base.ini new file mode 100644 index 000000000..189fdbe33 --- /dev/null +++ b/platformio_esp82xx_base.ini @@ -0,0 +1,207 @@ +;;; ESP82xx base definitions******************************************* +; Basic definitions used in ESP82xx environments ; +; ********************************************************************* + + + +[regular_platform] +build_unflags = +build_flags = ${core_2_6_1.build_flags} +platform = ${core_2_6_1.platform} + +[beta_platform] +build_unflags = +build_flags = ${core_stage.build_flags} +platform = ${core_stage.platform} + + + +[esp82xx_common] +extends = common +board_build.f_cpu = 80000000L +build_flags = ${debug_flags.build_flags} ${mqtt_flags.build_flags} -DHTTPCLIENT_1_1_COMPATIBLE=0 +build_unflags = -DDEBUG_ESP_PORT +lib_deps = https://github.com/TD-er/ESPEasySerial.git +lib_ignore = ESP32_ping, ESP32WebServer, IRremoteESP8266, HeatpumpIR, SD(esp8266), SDFS +board = esp12e + + + +;;; NORMAL (STABLE) *************************************************** +; normal version with stable plugins ; +; ********************************************************************* + +[normal] +platform = ${regular_platform.platform} +build_flags = ${regular_platform.build_flags} + +[normal_beta] +platform = ${beta_platform.platform} +build_flags = ${beta_platform.build_flags} + + +;;; TEST ************************************************************* +; additional plugins (and dependend code) that is marked as TESTING ; +; Includes "normal" + "testing" plugins ; +; ********************************************************************* + +[testing] +platform = ${regular_platform.platform} +build_flags = ${regular_platform.build_flags} -DPLUGIN_BUILD_TESTING + +[testing_beta] +platform = ${beta_platform.platform} +build_flags = ${beta_platform.build_flags} -DPLUGIN_BUILD_TESTING + + +;;; DEV ************************************************************** +; additional plugins (and dependend code) that is in development ; +; (probably broken or incomplete) ; +; ********************************************************************* + +[dev] +platform = ${regular_platform.platform} +build_flags = ${regular_platform.build_flags} -DPLUGIN_BUILD_DEV + + +;;; IR *********************************************************** +; IR builds ; +; ********************************************************************* + +[ir] +platform = ${regular_platform.platform} +build_flags = ${regular_platform.build_flags} +lib_ignore = ESP32_ping, ESP32WebServer, SD(esp8266), SDFS + +[minimal_ir] +extends = ir +build_flags = ${ir.build_flags} -DPLUGIN_BUILD_MINIMAL_IR + +[minimal_ir_extended] +extends = ir +build_flags = ${ir.build_flags} -DPLUGIN_BUILD_MINIMAL_IRext + +[normal_ir] +extends = ir +build_flags = ${ir.build_flags} -DPLUGIN_BUILD_NORMAL_IR + +[normal_ir_extended] +extends = ir +build_flags = ${ir.build_flags} -DPLUGIN_BUILD_IR_EXTENDED + +[normal_ir_extended_no_rx] +extends = ir +build_flags = ${ir.build_flags} -DPLUGIN_BUILD_IR_EXTENDED_NO_RX + + + +;;; 1MB flash nodes ************************************************** +; Layout for 1M flash nodes ; +; ********************************************************************* +[esp82xx_1M] +extends = esp82xx_common +board_build.flash_mode = dout +board_upload.maximum_size = 786432 +build_flags = -Wl,-Tesp8266.flash.1m128.ld + -DSIZE_1M + -DBUILD_NO_DEBUG + ${esp82xx_common.build_flags} + +[esp8266_1M] +extends = esp82xx_1M +board = esp01_1m + +[esp8285_1M] +extends = esp82xx_1M +board = esp8285 +build_flags = ${esp8266_1M.build_flags} -DESP8285 + + +;;; Minimal *********************************************************** +; Minimal build size for OTA ; +; ********************************************************************* +[esp82xx_1M_OTA] +extends = esp82xx_common +board_build.flash_mode = dout +board_upload.maximum_size = 616448 +build_flags = ${esp82xx_1M.build_flags} -DPLUGIN_BUILD_MINIMAL_OTA + + +[esp8266_1M_OTA] +extends = esp82xx_1M_OTA +board = esp01_1m + +[esp8285_1M_OTA] +extends = esp82xx_1M_OTA +board = esp8285 +build_flags = ${esp82xx_1M_OTA.build_flags} -DESP8285 + + +;;; 2MB flash nodes ************************************************** +; Layout for 2M flash nodes ; +; ********************************************************************* + +[esp8266_2M256] +extends = esp82xx_common +board = esp12e +board_build.flash_mode = dio +board_upload.maximum_size = 1044464 +build_flags = -Wl,-Tesp8266.flash.2m256.ld + ${esp82xx_common.build_flags} + +[espWroom2M] +extends = esp82xx_common +board = esp12e +board_build.flash_mode = dio +board_upload.maximum_size = 1044464 +build_flags = -Wl,-Tesp8266.flash.2m.ld + ${esp82xx_common.build_flags} + +[espWroom2M256] +extends = esp82xx_common +board_build.flash_mode = dout +board_upload.maximum_size = 1044464 +board = esp_wroom_02 +build_flags = -Wl,-Tesp8266.flash.2m256.ld + ${esp82xx_common.build_flags} + + +;;; 4MB flash nodes ************************************************** +; Layout for 4M flash nodes ; +; ********************************************************************* + +[esp8266_4M1M] +extends = esp82xx_common +board = esp12e +board_build.flash_mode = dio +board_upload.maximum_size = 1044464 +build_flags = -Wl,-Tesp8266.flash.4m1m.ld + ${esp82xx_common.build_flags} + +[esp8266_4M2M] +extends = esp82xx_common +board = esp12e +board_build.flash_mode = dio +board_upload.maximum_size = 1044464 +build_flags = -Wl,-Tesp8266.flash.4m2m.ld + ${esp82xx_common.build_flags} + + + +;;; 16MB flash nodes ************************************************* +; Layout for 16M flash nodes ; +; ********************************************************************* + +; Configuration for the Wemos D1 mini pro (16M) +; This configuration can only be used with core versions 2.5.0 or newer. +; Performance of 14M SPIFFS is really slow. +; See https://github.com/esp8266/Arduino/issues/5932 +[esp8266_16M] +extends = esp82xx_common +board = esp12e +board_build.flash_mode = dio +board_upload.maximum_size = 1044464 +build_flags = -Wl,-Tesp8266.flash.16m14m.ld + -DSPIFFS_MAX_OPEN_FILES=20 + ${esp82xx_common.build_flags} + diff --git a/platformio_esp82xx_envs.ini b/platformio_esp82xx_envs.ini new file mode 100644 index 000000000..4c7947c4a --- /dev/null +++ b/platformio_esp82xx_envs.ini @@ -0,0 +1,287 @@ +;;; Custom builds ***************************************************** +; Use either the plugins defined in ; +; pre_custom_esp82xx.py or Custom.h ; +; ********************************************************************* + + +[hard_esp82xx] +platform = ${regular_platform.platform} +build_flags = ${regular_platform.build_flags} + -DBUILD_NO_DEBUG + -DPLUGIN_BUILD_CUSTOM + + +; Custom: 4M1M version -------------------------- +[env:custom_ESP8266_4M1M] +extends = esp8266_4M1M +platform = ${beta_platform.platform} +build_flags = ${esp8266_4M1M.build_flags} ${beta_platform.build_flags} -DPLUGIN_BUILD_CUSTOM +lib_ignore = ESP32_ping, ESP32WebServer +extra_scripts = pre:pre_custom_esp82xx.py + + +; Custom: 4M2M version -------------------------- +[env:custom_ESP8266_4M2M] +extends = esp8266_4M2M +platform = ${beta_platform.platform} +build_flags = ${esp8266_4M1M.build_flags} ${beta_platform.build_flags} -DPLUGIN_BUILD_CUSTOM +lib_ignore = ESP32_ping, ESP32WebServer +extra_scripts = pre:pre_custom_esp82xx.py + + + + +;;; NORMAL (STABLE) *************************************************** +; normal version with stable plugins ; +; ********************************************************************* + +; NORMAL: 1024k version -------------------------- +[env:normal_ESP8266_1M] +extends = esp8266_1M +platform = ${regular_platform.platform} +build_flags = ${esp8266_1M.build_flags} + + +[env:normal_ESP8266_1M_VCC] +extends = esp8266_1M +platform = ${regular_platform.platform} +build_flags = ${esp8266_1M.build_flags} -D FEATURE_ADC_VCC=true + + +; NORMAL: 1024k for esp8285 ---------------------- +[env:normal_ESP8285_1M] +extends = esp8285_1M +platform = ${regular_platform.platform} +build_flags = ${esp8285_1M.build_flags} + + +; NORMAL: 2048k WROOM02 version -------------------------- +[env:normal_WROOM02_2M] +extends = espWroom2M +platform = ${regular_platform.platform} +build_flags = ${espWroom2M.build_flags} ${regular_platform.build_flags} + + +; NORMAL: 2048k WROOM02 version 256k SPIFFS -------------------------- +[env:normal_WROOM02_2M256] +extends = espWroom2M256 +platform = ${regular_platform.platform} +build_flags = ${espWroom2M256.build_flags} ${regular_platform.build_flags} + + +; NORMAL: 4096k version -------------------------- +[env:normal_ESP8266_4M1M] +extends = esp8266_4M1M +platform = ${regular_platform.platform} +build_flags = ${esp8266_4M1M.build_flags} ${regular_platform.build_flags} + +; NORMAL: 16M version -------------------------- +[env:normal_ESP8266_16M] +extends = esp8266_16M +platform = ${regular_platform.platform} +build_flags = ${esp8266_16M.build_flags} ${regular_platform.build_flags} + + +;;; Minimal *********************************************************** +; Minimal build size for OTA ; +; ********************************************************************* + +[env:minimal_core_242_ESP8266_1M_OTA] +extends = esp8266_1M_OTA +platform = ${core_2_4_2.platform} +build_flags = ${esp8266_1M_OTA.build_flags} ${core_2_4_2.build_flags} + +[env:minimal_core_242_ESP8285_1M_OTA] +extends = esp8285_1M_OTA +platform = ${core_2_4_2.platform} +build_flags = ${esp8285_1M_OTA.build_flags} ${core_2_4_2.build_flags} + +[env:minimal_core_261_ESP8266_1M_OTA] +extends = esp8266_1M_OTA +platform = ${regular_platform.platform} +build_flags = ${esp8266_1M_OTA.build_flags} ${regular_platform.build_flags} + +[env:minimal_core_261_ESP8285_1M_OTA] +extends = esp8285_1M_OTA +platform = ${regular_platform.platform} +build_flags = ${esp8285_1M_OTA.build_flags} ${regular_platform.build_flags} + + + + +;;; IR *********************************************************** +; IR builds ; +; ********************************************************************* + + +; Minimal IR: 1024k version -------------------------- +; Build including IR libraries, including extended AC commands +; Minimal set of other plugins +[env:minimal_IRext_ESP8266_1M] +extends = esp8266_1M +platform = ${minimal_ir_extended.platform} +lib_ignore = ${minimal_ir_extended.lib_ignore} +build_flags = ${minimal_ir_extended.build_flags} ${esp8266_1M.build_flags} +build_unflags = ${esp8266_1M_OTA.build_unflags} -DPLUGIN_BUILD_NORMAL_IR + + +; Minimal IR: 4096k version -------------------------- +; Build including IR libraries, INCLUDING extended AC commands +; Includes Extended IR AC commands (takes a lot more program space) +; 4M flash, 1M SPIFFS +[env:minimal_IRext_ESP8266_4M1M] +extends = esp8266_4M1M +platform = ${minimal_ir_extended.platform} +lib_ignore = ${minimal_ir_extended.lib_ignore} +build_flags = ${minimal_ir_extended.build_flags} ${esp8266_4M1M.build_flags} + +; 4M flash, 2M SPIFFS +[env:minimal_IRext_ESP8266_4M2M] +extends = esp8266_4M2M +platform = ${minimal_ir_extended.platform} +lib_ignore = ${minimal_ir_extended.lib_ignore} +build_flags = ${minimal_ir_extended.build_flags} ${esp8266_4M2M.build_flags} + + +; NORMAL IR: 4096k version -------------------------- +; Build including IR libraries, INCLUDING extended AC commands +; Includes Extended IR AC commands (takes a lot more program space) +; 4M flash, 2M SPIFFS +[env:normal_IRext_no_rx_ESP8266_4M2M] +extends = esp8266_4M2M +platform = ${normal_ir_extended_no_rx.platform} +lib_ignore = ${normal_ir_extended_no_rx.lib_ignore} +build_flags = ${normal_ir_extended_no_rx.build_flags} ${esp8266_4M2M.build_flags} + + + +;;; TEST ************************************************************* +; additional plugins (and dependend code) that is marked as TESTING ; +; Includes "normal" + "testing" plugins ; +; ********************************************************************* + + +; TEST: 4096k version + FEATURE_ADC_VCC ---------- +[env:test_ESP8266_4M_VCC] +extends = esp8266_4M1M +platform = ${testing.platform} +build_flags = ${esp8266_4M1M.build_flags} ${testing.build_flags} -D FEATURE_ADC_VCC=true + + +[env:test_beta_ESP8266_4M1M] +extends = esp8266_4M1M +platform = ${testing_beta.platform} +build_flags = ${esp8266_4M1M.build_flags} ${testing_beta.build_flags} + + +[env:test_beta_ESP8266_16M] +extends = esp8266_16M +platform = ${testing_beta.platform} +build_flags = ${esp8266_16M.build_flags} ${testing_beta.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22y + + + + + + + +;;; DEV ************************************************************** +; additional plugins (and dependend code) that is in development ; +; (probably broken or incomplete) ; +; ********************************************************************* + +; DEV : 4096k version ---------------------------- +[env:dev_ESP8266_4M1M] +extends = esp8266_4M1M +platform = ${dev.platform} +build_flags = ${esp8266_4M1M.build_flags} ${dev.build_flags} + + + +;;; HARDWARE SPECIFIC VERSIONS *********************************************************** +; versions specially designed to fit, and contents only needed plugins for each hardware ; +; **************************************************************************************** + +; ITEAD Products + +; ITEAD / SONOFF BASIC version ------------------ +;[env:hard_SONOFF_BASIC] +;extends = esp8266_1M, hard_esp82xx +;platform = ${hard_esp82xx.platform} +;build_flags = ${hard_esp82xx.build_flags} ${esp8266_1M.build_flags} -D PLUGIN_SET_SONOFF_BASIC + + +; ITEAD / SONOFF TH10/TH16 version ------------------- +;[env:hard_SONOFF_TH1x] +;extends = esp8266_1M, hard_esp82xx +;platform = ${hard_esp82xx.platform} +;build_flags = ${hard_esp82xx.build_flags} ${esp8266_1M.build_flags} -D PLUGIN_SET_SONOFF_TH1x + +; ITEAD / SONOFF POW & POW R2 version -------------------- +; Sonoff Pow (ESP8266 - HLW8012) +; GPIO00 Button +; GPIO05 HLW8012 Sel output +; GPIO12 Red Led and Relay (0 = Off, 1 = On) +; GPIO13 HLW8012 CF1 voltage / current +; GPIO14 HLW8012 CF power +; GPIO15 Blue Led (0 = On, 1 = Off) + +; Sonoff Pow R2 (ESP8266 4M flash - CSE7766) +; GPIO00 Button +; GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor +; GPIO03 Serial TXD +; GPIO12 Red Led and Relay (0 = Off, 1 = On) +; GPIO13 Blue Led (0 = On, 1 = Off) +[env:hard_SONOFF_POW_4M1M] +extends = esp8266_4M1M, hard_esp82xx +platform = ${hard_esp82xx.platform} +build_flags = ${hard_esp82xx.build_flags} ${esp8266_4M1M.build_flags} -D PLUGIN_SET_SONOFF_POW + + +; Build including power measurement plugins for those devices that have only 1M flash. +; For example those made by BlitzWolf SHP +[env:hard_other_POW_ESP8285_1M] +extends = esp8266_1M_OTA, hard_esp82xx +platform = ${hard_esp82xx.platform} +build_flags = ${hard_esp82xx.build_flags} ${esp8266_1M_OTA.build_flags} -D PLUGIN_SET_SONOFF_POW + + +; ITEAD / SONOFF S20 version -------------------- +;[env:hard_SONOFF_S20] +;extends = esp8266_1M_OTA, hard_esp82xx +;platform = ${hard_esp82xx.platform} +;build_flags = ${hard_esp82xx.build_flags} ${esp8266_1M_OTA.build_flags} -D PLUGIN_SET_SONOFF_S2x + + +; ITEAD / SONOFF 4CH version -------------------- +;[env:hard_SONOFF_4CH] +;extends = esp8285_1M_OTA, hard_esp82xx +;platform = ${hard_esp82xx.platform} +;build_flags = ${hard_esp82xx.build_flags} ${esp8285_1M_OTA.build_flags} -D PLUGIN_SET_SONOFF_4CH + + + +; ITEAD / SONOFF TOUCH version ------------------ +;[env:hard_SONOFF_TOUCH] +;extends = esp8285_1M_OTA, hard_esp82xx +;platform = ${hard_esp82xx.platform} +;build_flags = ${hard_esp82xx.build_flags} ${esp8285_1M_OTA.build_flags} -D PLUGIN_SET_SONOFF_TOUCH + + +; Shelly1 Open Source (ESP8266-2MB) +; https://shelly.cloud/shelly1-open-source/ +; GPIO04 Relay (non inverted) +; GPIO05 Button +[env:hard_Shelly_1_2M256] +extends = esp8266_2M256, hard_esp82xx +platform = ${hard_esp82xx.platform} +build_flags = ${hard_esp82xx.build_flags} ${esp8266_2M256.build_flags} -D PLUGIN_SET_SHELLY_1 + +; Ventus W266 weather station +; https://www.letscontrolit.com/wiki/index.php/VentusW266 +[env:hard_Ventus_W266] +extends = esp8266_1M, hard_esp82xx +platform = ${hard_esp82xx.platform} +build_flags = ${hard_esp82xx.build_flags} ${esp8266_1M_OTA.build_flags} -D PLUGIN_SET_VENTUS_W266 + + diff --git a/platformio_special_envs.ini b/platformio_special_envs.ini new file mode 100644 index 000000000..d27ad5ec9 --- /dev/null +++ b/platformio_special_envs.ini @@ -0,0 +1,45 @@ +;Special build environment definitions. +;These are used for analysis and debugging. +; +;!! DO NOT LOAD THESE ONTO A MODULE !! + +[debug_pio] +build_type = debug +check_tool = clangtidy +build_flags = ${compiler_warnings.build_flags} + + +[env:debug_custom_ESP8266_4M1M] +extends = esp8266_4M1M, debug_pio +platform = ${regular_platform.platform} +build_flags = ${esp8266_4M1M.build_flags} ${regular_platform.build_flags} ${debug_pio.build_flags} -DPLUGIN_BUILD_CUSTOM +lib_ignore = ESP32_ping, ESP32WebServer +extra_scripts = pre:pre_custom_esp82xx.py + + +[env:debug_beta_custom_ESP8266_4M1M] +extends = esp8266_4M1M, debug_pio +platform = ${beta_platform.platform} +build_flags = ${esp8266_4M1M.build_flags} ${beta_platform.build_flags} ${debug_pio.build_flags} -DPLUGIN_BUILD_CUSTOM +lib_ignore = ESP32_ping, ESP32WebServer +extra_scripts = pre:pre_custom_esp82xx.py + + +[env:debug_custom_ESP32_4M316k] +extends = esp32_common, debug_pio +platform = ${esp32_common.platform} +build_flags = ${esp32_common.build_flags} -DPLUGIN_BUILD_CUSTOM +board = esp32dev +extra_scripts = pre:pre_custom_esp32.py + + + +; Special env for memory analysis +; This may generate builds which cannot be run, so do not upload to a node. +; Has the same lib_ignore as the IR builds, or else those cannot be built for testing +[env:memanalyze_ESP8266] +extends = esp8266_4M1M +platform = ${regular_platform.platform} +lib_ignore = ESP32_ping, ESP32WebServer +build_flags = ${esp8266_4M1M.build_flags} -DMEMORY_ANALYSIS -DPLUGIN_BUILD_CUSTOM -w -DUSE_NON_STANDARD_24_TASKS -DTASKS_MAX=24 +extra_scripts = pre:pre_memanalyze.py diff --git a/pre_extra_script.py b/pre_custom_esp82xx.py similarity index 100% rename from pre_extra_script.py rename to pre_custom_esp82xx.py diff --git a/pre_default_check.py b/pre_default_check.py new file mode 100644 index 000000000..d620b0956 --- /dev/null +++ b/pre_default_check.py @@ -0,0 +1,23 @@ +# Simple check for the configuration of an environment. + + +Import("env") +import os + +# access to global construction environment +#print env + +# Dump construction environment (for debug purpose) +#print env.Dump() + +my_flags = env.ParseFlags(env['BUILD_FLAGS']) + + +# print the defines +print("CPPDEFINES: {}".format(my_flags.get("CPPDEFINES"))) +print("LINKFLAGS: {}".format(my_flags.get("LINKFLAGS"))) +#print(my_flags) + + +if (len(my_flags.get("CPPDEFINES")) == 0): + raise ValueError diff --git a/tools/build_ESPeasy.sh b/tools/build_ESPeasy.sh index ba79b3291..3e5a51ded 100755 --- a/tools/build_ESPeasy.sh +++ b/tools/build_ESPeasy.sh @@ -81,8 +81,6 @@ for ENV in \ custom_ESP8266_4M1M\ custom_ESP8266_4M2M\ dev_ESP8266_4M1M\ - esp-wrover-kit_test_4M316k\ - esp32test_4M316k\ hard_SONOFF_POW_4M1M\ hard_Shelly_1_2M256\ hard_Ventus_W266\ @@ -104,7 +102,9 @@ for ENV in \ normal_WROOM02_2M\ test_ESP8266_4M_VCC\ test_beta_ESP8266_16M\ - test_beta_ESP8266_4M1M;\ + test_beta_ESP8266_4M1M\ + test_ESP32_4M316k\ + test_ESP32-wrover-kit_4M316k;\ do PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e ${ENV} done