diff --git a/README.md b/README.md index 1559bd7b5..e4a1e3fb6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## Sonoff-Tasmota Provide ESP8266 based Sonoff by [iTead Studio](https://www.itead.cc/) and ElectroDragon IoT Relay with Serial, Web and MQTT control allowing 'Over the Air' or OTA firmware updates using Arduino IDE. -Current version is **5.12.0d** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/development/sonoff/_releasenotes.ino) for change information. +Current version is **5.12.0i** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/development/sonoff/_releasenotes.ino) for change information. ### ATTENTION All versions diff --git a/arduino/version 2.4.1/boards.txt b/arduino/version 2.4.1/boards.txt new file mode 100644 index 000000000..0d948f012 --- /dev/null +++ b/arduino/version 2.4.1/boards.txt @@ -0,0 +1,3796 @@ +# +# this file is script-generated and is likely to be overwritten by boards.txt.py +# + +menu.BoardModel=Model +menu.UploadSpeed=Upload Speed +menu.UploadTool=Upload Using +menu.CpuFrequency=CPU Frequency +menu.CrystalFreq=Crystal Frequency +menu.FlashSize=Flash Size +menu.FlashMode=Flash Mode +menu.FlashFreq=Flash Frequency +menu.ResetMethod=Reset Method +menu.ESPModule=Module +menu.Debug=Debug port +menu.DebugLevel=Debug Level +menu.LwIPVariant=lwIP Variant +menu.led=Builtin Led +menu.FlashErase=Erase Flash + +############################################################## +generic.name=Generic ESP8266 Module +generic.build.board=ESP8266_GENERIC +generic.upload.tool=esptool +generic.upload.maximum_data_size=81920 +generic.upload.wait_for_upload_port=true +generic.upload.erase_cmd= +generic.serial.disableDTR=true +generic.serial.disableRTS=true +generic.build.mcu=esp8266 +generic.build.core=esp8266 +generic.build.variant=generic +generic.build.spiffs_pagesize=256 +generic.build.debug_port= +generic.build.debug_level= + +generic.menu.UploadTool.esptool=Serial +generic.menu.UploadTool.esptool.upload.tool=esptool +generic.menu.UploadTool.esptool.upload.verbose=-vv +generic.menu.UploadTool.espupload=OTA_upload +generic.menu.UploadTool.espupload.upload.tool=espupload + +generic.menu.CpuFrequency.80=80 MHz +generic.menu.CpuFrequency.80.build.f_cpu=80000000L +generic.menu.CpuFrequency.160=160 MHz +generic.menu.CpuFrequency.160.build.f_cpu=160000000L +generic.menu.ResetMethod.ck=ck +generic.menu.ResetMethod.ck.upload.resetmethod=ck +generic.menu.ResetMethod.nodemcu=nodemcu +generic.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu +generic.menu.ResetMethod.none=none +generic.menu.ResetMethod.none.upload.resetmethod=none +generic.menu.ResetMethod.dtrset=dtrset +generic.menu.ResetMethod.dtrset.upload.resetmethod=dtrset +generic.menu.CrystalFreq.26=26 MHz +generic.menu.CrystalFreq.40=40 MHz +generic.menu.CrystalFreq.40.build.extra_flags=-DF_CRYSTAL=40000000 -DESP8266 +generic.menu.FlashFreq.40=40MHz +generic.menu.FlashFreq.40.build.flash_freq=40 +generic.menu.FlashFreq.80=80MHz +generic.menu.FlashFreq.80.build.flash_freq=80 +generic.menu.FlashMode.qio=QIO +generic.menu.FlashMode.qio.build.flash_mode=qio +generic.menu.FlashMode.qout=QOUT +generic.menu.FlashMode.qout.build.flash_mode=qout +generic.menu.FlashMode.dio=DIO +generic.menu.FlashMode.dio.build.flash_mode=dio +generic.menu.FlashMode.dout=DOUT +generic.menu.FlashMode.dout.build.flash_mode=dout +generic.menu.FlashSize.512K0=512K (no SPIFFS) +generic.menu.FlashSize.512K0.build.flash_size=512K +generic.menu.FlashSize.512K0.build.flash_size_bytes=0x80000 +generic.menu.FlashSize.512K0.build.flash_ld=eagle.flash.512k0.ld +generic.menu.FlashSize.512K0.build.spiffs_pagesize=256 +generic.menu.FlashSize.512K0.upload.maximum_size=499696 +generic.menu.FlashSize.512K0.build.rfcal_addr=0x7C000 +generic.menu.FlashSize.512K64=512K (64K SPIFFS) +generic.menu.FlashSize.512K64.build.flash_size=512K +generic.menu.FlashSize.512K64.build.flash_size_bytes=0x80000 +generic.menu.FlashSize.512K64.build.flash_ld=eagle.flash.512k64.ld +generic.menu.FlashSize.512K64.build.spiffs_pagesize=256 +generic.menu.FlashSize.512K64.upload.maximum_size=434160 +generic.menu.FlashSize.512K64.build.rfcal_addr=0x7C000 +generic.menu.FlashSize.512K64.build.spiffs_start=0x6B000 +generic.menu.FlashSize.512K64.build.spiffs_end=0x7B000 +generic.menu.FlashSize.512K64.build.spiffs_blocksize=4096 +generic.menu.FlashSize.512K128=512K (128K SPIFFS) +generic.menu.FlashSize.512K128.build.flash_size=512K +generic.menu.FlashSize.512K128.build.flash_size_bytes=0x80000 +generic.menu.FlashSize.512K128.build.flash_ld=eagle.flash.512k128.ld +generic.menu.FlashSize.512K128.build.spiffs_pagesize=256 +generic.menu.FlashSize.512K128.upload.maximum_size=368624 +generic.menu.FlashSize.512K128.build.rfcal_addr=0x7C000 +generic.menu.FlashSize.512K128.build.spiffs_start=0x5B000 +generic.menu.FlashSize.512K128.build.spiffs_end=0x7B000 +generic.menu.FlashSize.512K128.build.spiffs_blocksize=4096 +generic.menu.FlashSize.1M0=1M (no SPIFFS) +generic.menu.FlashSize.1M0.build.flash_size=1M +generic.menu.FlashSize.1M0.build.flash_size_bytes=0x100000 +generic.menu.FlashSize.1M0.build.flash_ld=eagle.flash.1m0.ld +generic.menu.FlashSize.1M0.build.spiffs_pagesize=256 +generic.menu.FlashSize.1M0.upload.maximum_size=1023984 +generic.menu.FlashSize.1M0.build.rfcal_addr=0xFC000 +generic.menu.FlashSize.1M64=1M (64K SPIFFS) +generic.menu.FlashSize.1M64.build.flash_size=1M +generic.menu.FlashSize.1M64.build.flash_size_bytes=0x100000 +generic.menu.FlashSize.1M64.build.flash_ld=eagle.flash.1m64.ld +generic.menu.FlashSize.1M64.build.spiffs_pagesize=256 +generic.menu.FlashSize.1M64.upload.maximum_size=958448 +generic.menu.FlashSize.1M64.build.rfcal_addr=0xFC000 +generic.menu.FlashSize.1M64.build.spiffs_start=0xEB000 +generic.menu.FlashSize.1M64.build.spiffs_end=0xFB000 +generic.menu.FlashSize.1M64.build.spiffs_blocksize=4096 +generic.menu.FlashSize.1M128=1M (128K SPIFFS) +generic.menu.FlashSize.1M128.build.flash_size=1M +generic.menu.FlashSize.1M128.build.flash_size_bytes=0x100000 +generic.menu.FlashSize.1M128.build.flash_ld=eagle.flash.1m128.ld +generic.menu.FlashSize.1M128.build.spiffs_pagesize=256 +generic.menu.FlashSize.1M128.upload.maximum_size=892912 +generic.menu.FlashSize.1M128.build.rfcal_addr=0xFC000 +generic.menu.FlashSize.1M128.build.spiffs_start=0xDB000 +generic.menu.FlashSize.1M128.build.spiffs_end=0xFB000 +generic.menu.FlashSize.1M128.build.spiffs_blocksize=4096 +generic.menu.FlashSize.1M144=1M (144K SPIFFS) +generic.menu.FlashSize.1M144.build.flash_size=1M +generic.menu.FlashSize.1M144.build.flash_size_bytes=0x100000 +generic.menu.FlashSize.1M144.build.flash_ld=eagle.flash.1m144.ld +generic.menu.FlashSize.1M144.build.spiffs_pagesize=256 +generic.menu.FlashSize.1M144.upload.maximum_size=876528 +generic.menu.FlashSize.1M144.build.rfcal_addr=0xFC000 +generic.menu.FlashSize.1M144.build.spiffs_start=0xD7000 +generic.menu.FlashSize.1M144.build.spiffs_end=0xFB000 +generic.menu.FlashSize.1M144.build.spiffs_blocksize=4096 +generic.menu.FlashSize.1M160=1M (160K SPIFFS) +generic.menu.FlashSize.1M160.build.flash_size=1M +generic.menu.FlashSize.1M160.build.flash_size_bytes=0x100000 +generic.menu.FlashSize.1M160.build.flash_ld=eagle.flash.1m160.ld +generic.menu.FlashSize.1M160.build.spiffs_pagesize=256 +generic.menu.FlashSize.1M160.upload.maximum_size=860144 +generic.menu.FlashSize.1M160.build.rfcal_addr=0xFC000 +generic.menu.FlashSize.1M160.build.spiffs_start=0xD3000 +generic.menu.FlashSize.1M160.build.spiffs_end=0xFB000 +generic.menu.FlashSize.1M160.build.spiffs_blocksize=4096 +generic.menu.FlashSize.1M192=1M (192K SPIFFS) +generic.menu.FlashSize.1M192.build.flash_size=1M +generic.menu.FlashSize.1M192.build.flash_size_bytes=0x100000 +generic.menu.FlashSize.1M192.build.flash_ld=eagle.flash.1m192.ld +generic.menu.FlashSize.1M192.build.spiffs_pagesize=256 +generic.menu.FlashSize.1M192.upload.maximum_size=827376 +generic.menu.FlashSize.1M192.build.rfcal_addr=0xFC000 +generic.menu.FlashSize.1M192.build.spiffs_start=0xCB000 +generic.menu.FlashSize.1M192.build.spiffs_end=0xFB000 +generic.menu.FlashSize.1M192.build.spiffs_blocksize=4096 +generic.menu.FlashSize.1M256=1M (256K SPIFFS) +generic.menu.FlashSize.1M256.build.flash_size=1M +generic.menu.FlashSize.1M256.build.flash_size_bytes=0x100000 +generic.menu.FlashSize.1M256.build.flash_ld=eagle.flash.1m256.ld +generic.menu.FlashSize.1M256.build.spiffs_pagesize=256 +generic.menu.FlashSize.1M256.upload.maximum_size=761840 +generic.menu.FlashSize.1M256.build.rfcal_addr=0xFC000 +generic.menu.FlashSize.1M256.build.spiffs_start=0xBB000 +generic.menu.FlashSize.1M256.build.spiffs_end=0xFB000 +generic.menu.FlashSize.1M256.build.spiffs_blocksize=4096 +generic.menu.FlashSize.1M512=1M (512K SPIFFS) +generic.menu.FlashSize.1M512.build.flash_size=1M +generic.menu.FlashSize.1M512.build.flash_size_bytes=0x100000 +generic.menu.FlashSize.1M512.build.flash_ld=eagle.flash.1m512.ld +generic.menu.FlashSize.1M512.build.spiffs_pagesize=256 +generic.menu.FlashSize.1M512.upload.maximum_size=499696 +generic.menu.FlashSize.1M512.build.rfcal_addr=0xFC000 +generic.menu.FlashSize.1M512.build.spiffs_start=0x7B000 +generic.menu.FlashSize.1M512.build.spiffs_end=0xFB000 +generic.menu.FlashSize.1M512.build.spiffs_blocksize=8192 +generic.menu.FlashSize.2M=2M (1M SPIFFS) +generic.menu.FlashSize.2M.build.flash_size=2M +generic.menu.FlashSize.2M.build.flash_size_bytes=0x200000 +generic.menu.FlashSize.2M.build.flash_ld=eagle.flash.2m.ld +generic.menu.FlashSize.2M.build.spiffs_pagesize=256 +generic.menu.FlashSize.2M.upload.maximum_size=1044464 +generic.menu.FlashSize.2M.build.rfcal_addr=0x1FC000 +generic.menu.FlashSize.2M.build.spiffs_start=0x100000 +generic.menu.FlashSize.2M.build.spiffs_end=0x1FB000 +generic.menu.FlashSize.2M.build.spiffs_blocksize=8192 +generic.menu.FlashSize.4M1M=4M (1M SPIFFS) +generic.menu.FlashSize.4M1M.build.flash_size=4M +generic.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +generic.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +generic.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +generic.menu.FlashSize.4M1M.upload.maximum_size=1044464 +generic.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +generic.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +generic.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +generic.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +generic.menu.FlashSize.4M3M=4M (3M SPIFFS) +generic.menu.FlashSize.4M3M.build.flash_size=4M +generic.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +generic.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +generic.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +generic.menu.FlashSize.4M3M.upload.maximum_size=1044464 +generic.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +generic.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +generic.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +generic.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +generic.menu.FlashSize.8M7M=8M (7M SPIFFS) +generic.menu.FlashSize.8M7M.build.flash_size=8M +generic.menu.FlashSize.8M7M.build.flash_size_bytes=0x800000 +generic.menu.FlashSize.8M7M.build.flash_ld=eagle.flash.8m.ld +generic.menu.FlashSize.8M7M.build.spiffs_pagesize=256 +generic.menu.FlashSize.8M7M.upload.maximum_size=1044464 +generic.menu.FlashSize.8M7M.build.rfcal_addr=0x7FC000 +generic.menu.FlashSize.8M7M.build.spiffs_start=0x100000 +generic.menu.FlashSize.8M7M.build.spiffs_end=0x7FB000 +generic.menu.FlashSize.8M7M.build.spiffs_blocksize=8192 +generic.menu.FlashSize.16M15M=16M (15M SPIFFS) +generic.menu.FlashSize.16M15M.build.flash_size=16M +generic.menu.FlashSize.16M15M.build.flash_size_bytes=0x1000000 +generic.menu.FlashSize.16M15M.build.flash_ld=eagle.flash.16m.ld +generic.menu.FlashSize.16M15M.build.spiffs_pagesize=256 +generic.menu.FlashSize.16M15M.upload.maximum_size=1044464 +generic.menu.FlashSize.16M15M.build.rfcal_addr=0xFFC000 +generic.menu.FlashSize.16M15M.build.spiffs_start=0x100000 +generic.menu.FlashSize.16M15M.build.spiffs_end=0xFFB000 +generic.menu.FlashSize.16M15M.build.spiffs_blocksize=8192 +generic.menu.led.2=2 +generic.menu.led.2.build.led=-DLED_BUILTIN=2 +generic.menu.led.0=0 +generic.menu.led.0.build.led=-DLED_BUILTIN=0 +generic.menu.led.1=1 +generic.menu.led.1.build.led=-DLED_BUILTIN=1 +generic.menu.led.3=3 +generic.menu.led.3.build.led=-DLED_BUILTIN=3 +generic.menu.led.4=4 +generic.menu.led.4.build.led=-DLED_BUILTIN=4 +generic.menu.led.5=5 +generic.menu.led.5.build.led=-DLED_BUILTIN=5 +generic.menu.led.6=6 +generic.menu.led.6.build.led=-DLED_BUILTIN=6 +generic.menu.led.7=7 +generic.menu.led.7.build.led=-DLED_BUILTIN=7 +generic.menu.led.8=8 +generic.menu.led.8.build.led=-DLED_BUILTIN=8 +generic.menu.led.9=9 +generic.menu.led.9.build.led=-DLED_BUILTIN=9 +generic.menu.led.10=10 +generic.menu.led.10.build.led=-DLED_BUILTIN=10 +generic.menu.led.11=11 +generic.menu.led.11.build.led=-DLED_BUILTIN=11 +generic.menu.led.12=12 +generic.menu.led.12.build.led=-DLED_BUILTIN=12 +generic.menu.led.13=13 +generic.menu.led.13.build.led=-DLED_BUILTIN=13 +generic.menu.led.14=14 +generic.menu.led.14.build.led=-DLED_BUILTIN=14 +generic.menu.led.15=15 +generic.menu.led.15.build.led=-DLED_BUILTIN=15 +generic.menu.LwIPVariant.v2mss536=v2 Lower Memory +generic.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +generic.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +generic.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +generic.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +generic.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +generic.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +generic.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +generic.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +generic.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +generic.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +generic.menu.LwIPVariant.OpenSource=v1.4 Compile from source +generic.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +generic.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +generic.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +generic.menu.Debug.Disabled=Disabled +generic.menu.Debug.Disabled.build.debug_port= +generic.menu.Debug.Serial=Serial +generic.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +generic.menu.Debug.Serial1=Serial1 +generic.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +generic.menu.DebugLevel.None____=None +generic.menu.DebugLevel.None____.build.debug_level= +generic.menu.DebugLevel.SSL=SSL +generic.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +generic.menu.DebugLevel.TLS_MEM=TLS_MEM +generic.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +generic.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +generic.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +generic.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +generic.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +generic.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +generic.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +generic.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +generic.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +generic.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +generic.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +generic.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +generic.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +generic.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +generic.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +generic.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +generic.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +generic.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +generic.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +generic.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +generic.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +generic.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +generic.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +generic.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +generic.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +generic.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +generic.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +generic.menu.DebugLevel.CORE=CORE +generic.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +generic.menu.DebugLevel.WIFI=WIFI +generic.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +generic.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +generic.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +generic.menu.DebugLevel.UPDATER=UPDATER +generic.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +generic.menu.DebugLevel.OTA=OTA +generic.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +generic.menu.DebugLevel.OOM=OOM +generic.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +generic.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +generic.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +generic.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +generic.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +generic.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +generic.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +generic.menu.FlashErase.none=Only Sketch +generic.menu.FlashErase.none.upload.erase_cmd= +generic.menu.FlashErase.sdk=Sketch + WiFi Settings +generic.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +generic.menu.FlashErase.all=All Flash Contents +generic.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +generic.menu.UploadSpeed.115200=115200 +generic.menu.UploadSpeed.115200.upload.speed=115200 +generic.menu.UploadSpeed.9600=9600 +generic.menu.UploadSpeed.9600.upload.speed=9600 +generic.menu.UploadSpeed.57600=57600 +generic.menu.UploadSpeed.57600.upload.speed=57600 +generic.menu.UploadSpeed.230400.linux=230400 +generic.menu.UploadSpeed.230400.macosx=230400 +generic.menu.UploadSpeed.230400.upload.speed=230400 +generic.menu.UploadSpeed.256000.windows=256000 +generic.menu.UploadSpeed.256000.upload.speed=256000 +generic.menu.UploadSpeed.460800.linux=460800 +generic.menu.UploadSpeed.460800.macosx=460800 +generic.menu.UploadSpeed.460800.upload.speed=460800 +generic.menu.UploadSpeed.512000.windows=512000 +generic.menu.UploadSpeed.512000.upload.speed=512000 +generic.menu.UploadSpeed.921600=921600 +generic.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +esp8285.name=Generic ESP8285 Module +esp8285.build.board=ESP8266_ESP01 +esp8285.upload.tool=esptool +esp8285.upload.maximum_data_size=81920 +esp8285.upload.wait_for_upload_port=true +esp8285.upload.erase_cmd= +esp8285.serial.disableDTR=true +esp8285.serial.disableRTS=true +esp8285.build.mcu=esp8266 +esp8285.build.core=esp8266 +esp8285.build.variant=generic +esp8285.build.spiffs_pagesize=256 +esp8285.build.debug_port= +esp8285.build.debug_level= +esp8285.menu.CpuFrequency.80=80 MHz +esp8285.menu.CpuFrequency.80.build.f_cpu=80000000L +esp8285.menu.CpuFrequency.160=160 MHz +esp8285.menu.CpuFrequency.160.build.f_cpu=160000000L +esp8285.menu.ResetMethod.ck=ck +esp8285.menu.ResetMethod.ck.upload.resetmethod=ck +esp8285.menu.ResetMethod.nodemcu=nodemcu +esp8285.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu +esp8285.menu.ResetMethod.none=none +esp8285.menu.ResetMethod.none.upload.resetmethod=none +esp8285.menu.ResetMethod.dtrset=dtrset +esp8285.menu.ResetMethod.dtrset.upload.resetmethod=dtrset +esp8285.menu.CrystalFreq.26=26 MHz +esp8285.menu.CrystalFreq.40=40 MHz +esp8285.menu.CrystalFreq.40.build.extra_flags=-DF_CRYSTAL=40000000 -DESP8266 +esp8285.build.flash_mode=dout +esp8285.build.flash_freq=40 +esp8285.menu.FlashSize.1M0=1M (no SPIFFS) +esp8285.menu.FlashSize.1M0.build.flash_size=1M +esp8285.menu.FlashSize.1M0.build.flash_size_bytes=0x100000 +esp8285.menu.FlashSize.1M0.build.flash_ld=eagle.flash.1m0.ld +esp8285.menu.FlashSize.1M0.build.spiffs_pagesize=256 +esp8285.menu.FlashSize.1M0.upload.maximum_size=1023984 +esp8285.menu.FlashSize.1M0.build.rfcal_addr=0xFC000 +esp8285.menu.FlashSize.1M64=1M (64K SPIFFS) +esp8285.menu.FlashSize.1M64.build.flash_size=1M +esp8285.menu.FlashSize.1M64.build.flash_size_bytes=0x100000 +esp8285.menu.FlashSize.1M64.build.flash_ld=eagle.flash.1m64.ld +esp8285.menu.FlashSize.1M64.build.spiffs_pagesize=256 +esp8285.menu.FlashSize.1M64.upload.maximum_size=958448 +esp8285.menu.FlashSize.1M64.build.rfcal_addr=0xFC000 +esp8285.menu.FlashSize.1M64.build.spiffs_start=0xEB000 +esp8285.menu.FlashSize.1M64.build.spiffs_end=0xFB000 +esp8285.menu.FlashSize.1M64.build.spiffs_blocksize=4096 +esp8285.menu.FlashSize.1M128=1M (128K SPIFFS) +esp8285.menu.FlashSize.1M128.build.flash_size=1M +esp8285.menu.FlashSize.1M128.build.flash_size_bytes=0x100000 +esp8285.menu.FlashSize.1M128.build.flash_ld=eagle.flash.1m128.ld +esp8285.menu.FlashSize.1M128.build.spiffs_pagesize=256 +esp8285.menu.FlashSize.1M128.upload.maximum_size=892912 +esp8285.menu.FlashSize.1M128.build.rfcal_addr=0xFC000 +esp8285.menu.FlashSize.1M128.build.spiffs_start=0xDB000 +esp8285.menu.FlashSize.1M128.build.spiffs_end=0xFB000 +esp8285.menu.FlashSize.1M128.build.spiffs_blocksize=4096 +esp8285.menu.FlashSize.1M144=1M (144K SPIFFS) +esp8285.menu.FlashSize.1M144.build.flash_size=1M +esp8285.menu.FlashSize.1M144.build.flash_size_bytes=0x100000 +esp8285.menu.FlashSize.1M144.build.flash_ld=eagle.flash.1m144.ld +esp8285.menu.FlashSize.1M144.build.spiffs_pagesize=256 +esp8285.menu.FlashSize.1M144.upload.maximum_size=876528 +esp8285.menu.FlashSize.1M144.build.rfcal_addr=0xFC000 +esp8285.menu.FlashSize.1M144.build.spiffs_start=0xD7000 +esp8285.menu.FlashSize.1M144.build.spiffs_end=0xFB000 +esp8285.menu.FlashSize.1M144.build.spiffs_blocksize=4096 +esp8285.menu.FlashSize.1M160=1M (160K SPIFFS) +esp8285.menu.FlashSize.1M160.build.flash_size=1M +esp8285.menu.FlashSize.1M160.build.flash_size_bytes=0x100000 +esp8285.menu.FlashSize.1M160.build.flash_ld=eagle.flash.1m160.ld +esp8285.menu.FlashSize.1M160.build.spiffs_pagesize=256 +esp8285.menu.FlashSize.1M160.upload.maximum_size=860144 +esp8285.menu.FlashSize.1M160.build.rfcal_addr=0xFC000 +esp8285.menu.FlashSize.1M160.build.spiffs_start=0xD3000 +esp8285.menu.FlashSize.1M160.build.spiffs_end=0xFB000 +esp8285.menu.FlashSize.1M160.build.spiffs_blocksize=4096 +esp8285.menu.FlashSize.1M192=1M (192K SPIFFS) +esp8285.menu.FlashSize.1M192.build.flash_size=1M +esp8285.menu.FlashSize.1M192.build.flash_size_bytes=0x100000 +esp8285.menu.FlashSize.1M192.build.flash_ld=eagle.flash.1m192.ld +esp8285.menu.FlashSize.1M192.build.spiffs_pagesize=256 +esp8285.menu.FlashSize.1M192.upload.maximum_size=827376 +esp8285.menu.FlashSize.1M192.build.rfcal_addr=0xFC000 +esp8285.menu.FlashSize.1M192.build.spiffs_start=0xCB000 +esp8285.menu.FlashSize.1M192.build.spiffs_end=0xFB000 +esp8285.menu.FlashSize.1M192.build.spiffs_blocksize=4096 +esp8285.menu.FlashSize.1M256=1M (256K SPIFFS) +esp8285.menu.FlashSize.1M256.build.flash_size=1M +esp8285.menu.FlashSize.1M256.build.flash_size_bytes=0x100000 +esp8285.menu.FlashSize.1M256.build.flash_ld=eagle.flash.1m256.ld +esp8285.menu.FlashSize.1M256.build.spiffs_pagesize=256 +esp8285.menu.FlashSize.1M256.upload.maximum_size=761840 +esp8285.menu.FlashSize.1M256.build.rfcal_addr=0xFC000 +esp8285.menu.FlashSize.1M256.build.spiffs_start=0xBB000 +esp8285.menu.FlashSize.1M256.build.spiffs_end=0xFB000 +esp8285.menu.FlashSize.1M256.build.spiffs_blocksize=4096 +esp8285.menu.FlashSize.1M512=1M (512K SPIFFS) +esp8285.menu.FlashSize.1M512.build.flash_size=1M +esp8285.menu.FlashSize.1M512.build.flash_size_bytes=0x100000 +esp8285.menu.FlashSize.1M512.build.flash_ld=eagle.flash.1m512.ld +esp8285.menu.FlashSize.1M512.build.spiffs_pagesize=256 +esp8285.menu.FlashSize.1M512.upload.maximum_size=499696 +esp8285.menu.FlashSize.1M512.build.rfcal_addr=0xFC000 +esp8285.menu.FlashSize.1M512.build.spiffs_start=0x7B000 +esp8285.menu.FlashSize.1M512.build.spiffs_end=0xFB000 +esp8285.menu.FlashSize.1M512.build.spiffs_blocksize=8192 +esp8285.menu.led.2=2 +esp8285.menu.led.2.build.led=-DLED_BUILTIN=2 +esp8285.menu.led.0=0 +esp8285.menu.led.0.build.led=-DLED_BUILTIN=0 +esp8285.menu.led.1=1 +esp8285.menu.led.1.build.led=-DLED_BUILTIN=1 +esp8285.menu.led.3=3 +esp8285.menu.led.3.build.led=-DLED_BUILTIN=3 +esp8285.menu.led.4=4 +esp8285.menu.led.4.build.led=-DLED_BUILTIN=4 +esp8285.menu.led.5=5 +esp8285.menu.led.5.build.led=-DLED_BUILTIN=5 +esp8285.menu.led.6=6 +esp8285.menu.led.6.build.led=-DLED_BUILTIN=6 +esp8285.menu.led.7=7 +esp8285.menu.led.7.build.led=-DLED_BUILTIN=7 +esp8285.menu.led.8=8 +esp8285.menu.led.8.build.led=-DLED_BUILTIN=8 +esp8285.menu.led.9=9 +esp8285.menu.led.9.build.led=-DLED_BUILTIN=9 +esp8285.menu.led.10=10 +esp8285.menu.led.10.build.led=-DLED_BUILTIN=10 +esp8285.menu.led.11=11 +esp8285.menu.led.11.build.led=-DLED_BUILTIN=11 +esp8285.menu.led.12=12 +esp8285.menu.led.12.build.led=-DLED_BUILTIN=12 +esp8285.menu.led.13=13 +esp8285.menu.led.13.build.led=-DLED_BUILTIN=13 +esp8285.menu.led.14=14 +esp8285.menu.led.14.build.led=-DLED_BUILTIN=14 +esp8285.menu.led.15=15 +esp8285.menu.led.15.build.led=-DLED_BUILTIN=15 +esp8285.menu.LwIPVariant.v2mss536=v2 Lower Memory +esp8285.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +esp8285.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +esp8285.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +esp8285.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +esp8285.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +esp8285.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +esp8285.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +esp8285.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +esp8285.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +esp8285.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +esp8285.menu.LwIPVariant.OpenSource=v1.4 Compile from source +esp8285.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +esp8285.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +esp8285.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +esp8285.menu.Debug.Disabled=Disabled +esp8285.menu.Debug.Disabled.build.debug_port= +esp8285.menu.Debug.Serial=Serial +esp8285.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +esp8285.menu.Debug.Serial1=Serial1 +esp8285.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +esp8285.menu.DebugLevel.None____=None +esp8285.menu.DebugLevel.None____.build.debug_level= +esp8285.menu.DebugLevel.SSL=SSL +esp8285.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +esp8285.menu.DebugLevel.TLS_MEM=TLS_MEM +esp8285.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +esp8285.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +esp8285.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +esp8285.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +esp8285.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +esp8285.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +esp8285.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +esp8285.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +esp8285.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +esp8285.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +esp8285.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +esp8285.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +esp8285.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +esp8285.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +esp8285.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +esp8285.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +esp8285.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +esp8285.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +esp8285.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +esp8285.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +esp8285.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +esp8285.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +esp8285.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +esp8285.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +esp8285.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +esp8285.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +esp8285.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +esp8285.menu.DebugLevel.CORE=CORE +esp8285.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +esp8285.menu.DebugLevel.WIFI=WIFI +esp8285.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +esp8285.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +esp8285.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +esp8285.menu.DebugLevel.UPDATER=UPDATER +esp8285.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +esp8285.menu.DebugLevel.OTA=OTA +esp8285.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +esp8285.menu.DebugLevel.OOM=OOM +esp8285.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +esp8285.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +esp8285.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +esp8285.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +esp8285.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +esp8285.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +esp8285.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +esp8285.menu.FlashErase.none=Only Sketch +esp8285.menu.FlashErase.none.upload.erase_cmd= +esp8285.menu.FlashErase.sdk=Sketch + WiFi Settings +esp8285.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +esp8285.menu.FlashErase.all=All Flash Contents +esp8285.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +esp8285.menu.UploadSpeed.115200=115200 +esp8285.menu.UploadSpeed.115200.upload.speed=115200 +esp8285.menu.UploadSpeed.9600=9600 +esp8285.menu.UploadSpeed.9600.upload.speed=9600 +esp8285.menu.UploadSpeed.57600=57600 +esp8285.menu.UploadSpeed.57600.upload.speed=57600 +esp8285.menu.UploadSpeed.230400.linux=230400 +esp8285.menu.UploadSpeed.230400.macosx=230400 +esp8285.menu.UploadSpeed.230400.upload.speed=230400 +esp8285.menu.UploadSpeed.256000.windows=256000 +esp8285.menu.UploadSpeed.256000.upload.speed=256000 +esp8285.menu.UploadSpeed.460800.linux=460800 +esp8285.menu.UploadSpeed.460800.macosx=460800 +esp8285.menu.UploadSpeed.460800.upload.speed=460800 +esp8285.menu.UploadSpeed.512000.windows=512000 +esp8285.menu.UploadSpeed.512000.upload.speed=512000 +esp8285.menu.UploadSpeed.921600=921600 +esp8285.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +espduino.name=ESPDuino (ESP-13 Module) +espduino.build.board=ESP8266_ESP13 +espduino.build.variant=ESPDuino +espduino.menu.ResetMethod.v2=ESPduino-V2 +espduino.menu.ResetMethod.v2.upload.resetmethod=nodemcu +espduino.menu.ResetMethod.v1=ESPduino-V1 +espduino.menu.ResetMethod.v1.upload.resetmethod=ck +espduino.menu.UploadTool.esptool=Serial +espduino.menu.UploadTool.esptool.upload.tool=esptool +espduino.menu.UploadTool.esptool.upload.verbose=-vv +espduino.menu.UploadTool.espota=OTA +espduino.menu.UploadTool.espota.upload.tool=espota +espduino.upload.tool=esptool +espduino.upload.maximum_data_size=81920 +espduino.upload.wait_for_upload_port=true +espduino.upload.erase_cmd= +espduino.serial.disableDTR=true +espduino.serial.disableRTS=true +espduino.build.mcu=esp8266 +espduino.build.core=esp8266 +espduino.build.spiffs_pagesize=256 +espduino.build.debug_port= +espduino.build.debug_level= +espduino.menu.CpuFrequency.80=80 MHz +espduino.menu.CpuFrequency.80.build.f_cpu=80000000L +espduino.menu.CpuFrequency.160=160 MHz +espduino.menu.CpuFrequency.160.build.f_cpu=160000000L +espduino.build.flash_mode=dio +espduino.build.flash_freq=40 +espduino.menu.FlashSize.4M1M=4M (1M SPIFFS) +espduino.menu.FlashSize.4M1M.build.flash_size=4M +espduino.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +espduino.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +espduino.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +espduino.menu.FlashSize.4M1M.upload.maximum_size=1044464 +espduino.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +espduino.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +espduino.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +espduino.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +espduino.menu.FlashSize.4M3M=4M (3M SPIFFS) +espduino.menu.FlashSize.4M3M.build.flash_size=4M +espduino.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +espduino.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +espduino.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +espduino.menu.FlashSize.4M3M.upload.maximum_size=1044464 +espduino.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +espduino.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +espduino.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +espduino.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +espduino.menu.LwIPVariant.v2mss536=v2 Lower Memory +espduino.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +espduino.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +espduino.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +espduino.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +espduino.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +espduino.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +espduino.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +espduino.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +espduino.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +espduino.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +espduino.menu.LwIPVariant.OpenSource=v1.4 Compile from source +espduino.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +espduino.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +espduino.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +espduino.menu.Debug.Disabled=Disabled +espduino.menu.Debug.Disabled.build.debug_port= +espduino.menu.Debug.Serial=Serial +espduino.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +espduino.menu.Debug.Serial1=Serial1 +espduino.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +espduino.menu.DebugLevel.None____=None +espduino.menu.DebugLevel.None____.build.debug_level= +espduino.menu.DebugLevel.SSL=SSL +espduino.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +espduino.menu.DebugLevel.TLS_MEM=TLS_MEM +espduino.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +espduino.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +espduino.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +espduino.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +espduino.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +espduino.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +espduino.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +espduino.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +espduino.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +espduino.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +espduino.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +espduino.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +espduino.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +espduino.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +espduino.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +espduino.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +espduino.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espduino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +espduino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +espduino.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +espduino.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +espduino.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +espduino.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espduino.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +espduino.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espduino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +espduino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espduino.menu.DebugLevel.CORE=CORE +espduino.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +espduino.menu.DebugLevel.WIFI=WIFI +espduino.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +espduino.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +espduino.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +espduino.menu.DebugLevel.UPDATER=UPDATER +espduino.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +espduino.menu.DebugLevel.OTA=OTA +espduino.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +espduino.menu.DebugLevel.OOM=OOM +espduino.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espduino.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +espduino.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espduino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +espduino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espduino.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +espduino.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +espduino.menu.FlashErase.none=Only Sketch +espduino.menu.FlashErase.none.upload.erase_cmd= +espduino.menu.FlashErase.sdk=Sketch + WiFi Settings +espduino.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +espduino.menu.FlashErase.all=All Flash Contents +espduino.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +espduino.menu.UploadSpeed.115200=115200 +espduino.menu.UploadSpeed.115200.upload.speed=115200 +espduino.menu.UploadSpeed.9600=9600 +espduino.menu.UploadSpeed.9600.upload.speed=9600 +espduino.menu.UploadSpeed.57600=57600 +espduino.menu.UploadSpeed.57600.upload.speed=57600 +espduino.menu.UploadSpeed.230400.linux=230400 +espduino.menu.UploadSpeed.230400.macosx=230400 +espduino.menu.UploadSpeed.230400.upload.speed=230400 +espduino.menu.UploadSpeed.256000.windows=256000 +espduino.menu.UploadSpeed.256000.upload.speed=256000 +espduino.menu.UploadSpeed.460800.linux=460800 +espduino.menu.UploadSpeed.460800.macosx=460800 +espduino.menu.UploadSpeed.460800.upload.speed=460800 +espduino.menu.UploadSpeed.512000.windows=512000 +espduino.menu.UploadSpeed.512000.upload.speed=512000 +espduino.menu.UploadSpeed.921600=921600 +espduino.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +huzzah.name=Adafruit Feather HUZZAH ESP8266 +huzzah.build.board=ESP8266_ESP12 +huzzah.build.variant=adafruit +huzzah.upload.tool=esptool +huzzah.upload.maximum_data_size=81920 +huzzah.upload.wait_for_upload_port=true +huzzah.upload.erase_cmd= +huzzah.serial.disableDTR=true +huzzah.serial.disableRTS=true +huzzah.build.mcu=esp8266 +huzzah.build.core=esp8266 +huzzah.build.spiffs_pagesize=256 +huzzah.build.debug_port= +huzzah.build.debug_level= +huzzah.menu.CpuFrequency.80=80 MHz +huzzah.menu.CpuFrequency.80.build.f_cpu=80000000L +huzzah.menu.CpuFrequency.160=160 MHz +huzzah.menu.CpuFrequency.160.build.f_cpu=160000000L +huzzah.upload.resetmethod=nodemcu +huzzah.build.flash_mode=qio +huzzah.build.flash_freq=40 +huzzah.menu.FlashSize.4M1M=4M (1M SPIFFS) +huzzah.menu.FlashSize.4M1M.build.flash_size=4M +huzzah.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +huzzah.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +huzzah.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +huzzah.menu.FlashSize.4M1M.upload.maximum_size=1044464 +huzzah.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +huzzah.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +huzzah.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +huzzah.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +huzzah.menu.FlashSize.4M3M=4M (3M SPIFFS) +huzzah.menu.FlashSize.4M3M.build.flash_size=4M +huzzah.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +huzzah.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +huzzah.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +huzzah.menu.FlashSize.4M3M.upload.maximum_size=1044464 +huzzah.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +huzzah.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +huzzah.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +huzzah.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +huzzah.menu.LwIPVariant.v2mss536=v2 Lower Memory +huzzah.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +huzzah.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +huzzah.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +huzzah.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +huzzah.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +huzzah.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +huzzah.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +huzzah.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +huzzah.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +huzzah.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +huzzah.menu.LwIPVariant.OpenSource=v1.4 Compile from source +huzzah.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +huzzah.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +huzzah.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +huzzah.menu.Debug.Disabled=Disabled +huzzah.menu.Debug.Disabled.build.debug_port= +huzzah.menu.Debug.Serial=Serial +huzzah.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +huzzah.menu.Debug.Serial1=Serial1 +huzzah.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +huzzah.menu.DebugLevel.None____=None +huzzah.menu.DebugLevel.None____.build.debug_level= +huzzah.menu.DebugLevel.SSL=SSL +huzzah.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +huzzah.menu.DebugLevel.TLS_MEM=TLS_MEM +huzzah.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +huzzah.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +huzzah.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +huzzah.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +huzzah.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +huzzah.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +huzzah.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +huzzah.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +huzzah.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +huzzah.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +huzzah.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +huzzah.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +huzzah.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +huzzah.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +huzzah.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +huzzah.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +huzzah.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +huzzah.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +huzzah.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +huzzah.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +huzzah.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +huzzah.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +huzzah.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +huzzah.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +huzzah.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +huzzah.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +huzzah.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +huzzah.menu.DebugLevel.CORE=CORE +huzzah.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +huzzah.menu.DebugLevel.WIFI=WIFI +huzzah.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +huzzah.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +huzzah.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +huzzah.menu.DebugLevel.UPDATER=UPDATER +huzzah.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +huzzah.menu.DebugLevel.OTA=OTA +huzzah.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +huzzah.menu.DebugLevel.OOM=OOM +huzzah.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +huzzah.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +huzzah.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +huzzah.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +huzzah.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +huzzah.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +huzzah.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +huzzah.menu.FlashErase.none=Only Sketch +huzzah.menu.FlashErase.none.upload.erase_cmd= +huzzah.menu.FlashErase.sdk=Sketch + WiFi Settings +huzzah.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +huzzah.menu.FlashErase.all=All Flash Contents +huzzah.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +huzzah.menu.UploadSpeed.115200=115200 +huzzah.menu.UploadSpeed.115200.upload.speed=115200 +huzzah.menu.UploadSpeed.9600=9600 +huzzah.menu.UploadSpeed.9600.upload.speed=9600 +huzzah.menu.UploadSpeed.57600=57600 +huzzah.menu.UploadSpeed.57600.upload.speed=57600 +huzzah.menu.UploadSpeed.230400.linux=230400 +huzzah.menu.UploadSpeed.230400.macosx=230400 +huzzah.menu.UploadSpeed.230400.upload.speed=230400 +huzzah.menu.UploadSpeed.256000.windows=256000 +huzzah.menu.UploadSpeed.256000.upload.speed=256000 +huzzah.menu.UploadSpeed.460800.linux=460800 +huzzah.menu.UploadSpeed.460800.macosx=460800 +huzzah.menu.UploadSpeed.460800.upload.speed=460800 +huzzah.menu.UploadSpeed.512000.windows=512000 +huzzah.menu.UploadSpeed.512000.upload.speed=512000 +huzzah.menu.UploadSpeed.921600=921600 +huzzah.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +espresso_lite_v1.name=ESPresso Lite 1.0 +espresso_lite_v1.build.board=ESP8266_ESPRESSO_LITE_V1 +espresso_lite_v1.build.variant=espresso_lite_v1 +espresso_lite_v1.upload.tool=esptool +espresso_lite_v1.upload.maximum_data_size=81920 +espresso_lite_v1.upload.wait_for_upload_port=true +espresso_lite_v1.upload.erase_cmd= +espresso_lite_v1.serial.disableDTR=true +espresso_lite_v1.serial.disableRTS=true +espresso_lite_v1.build.mcu=esp8266 +espresso_lite_v1.build.core=esp8266 +espresso_lite_v1.build.spiffs_pagesize=256 +espresso_lite_v1.build.debug_port= +espresso_lite_v1.build.debug_level= +espresso_lite_v1.menu.CpuFrequency.80=80 MHz +espresso_lite_v1.menu.CpuFrequency.80.build.f_cpu=80000000L +espresso_lite_v1.menu.CpuFrequency.160=160 MHz +espresso_lite_v1.menu.CpuFrequency.160.build.f_cpu=160000000L +espresso_lite_v1.build.flash_mode=dio +espresso_lite_v1.build.flash_freq=40 +espresso_lite_v1.menu.FlashSize.4M1M=4M (1M SPIFFS) +espresso_lite_v1.menu.FlashSize.4M1M.build.flash_size=4M +espresso_lite_v1.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +espresso_lite_v1.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +espresso_lite_v1.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +espresso_lite_v1.menu.FlashSize.4M1M.upload.maximum_size=1044464 +espresso_lite_v1.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +espresso_lite_v1.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +espresso_lite_v1.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +espresso_lite_v1.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +espresso_lite_v1.menu.FlashSize.4M3M=4M (3M SPIFFS) +espresso_lite_v1.menu.FlashSize.4M3M.build.flash_size=4M +espresso_lite_v1.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +espresso_lite_v1.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +espresso_lite_v1.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +espresso_lite_v1.menu.FlashSize.4M3M.upload.maximum_size=1044464 +espresso_lite_v1.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +espresso_lite_v1.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +espresso_lite_v1.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +espresso_lite_v1.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +espresso_lite_v1.menu.ResetMethod.ck=ck +espresso_lite_v1.menu.ResetMethod.ck.upload.resetmethod=ck +espresso_lite_v1.menu.ResetMethod.nodemcu=nodemcu +espresso_lite_v1.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu +espresso_lite_v1.menu.LwIPVariant.v2mss536=v2 Lower Memory +espresso_lite_v1.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +espresso_lite_v1.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +espresso_lite_v1.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +espresso_lite_v1.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +espresso_lite_v1.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +espresso_lite_v1.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +espresso_lite_v1.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +espresso_lite_v1.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +espresso_lite_v1.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +espresso_lite_v1.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +espresso_lite_v1.menu.LwIPVariant.OpenSource=v1.4 Compile from source +espresso_lite_v1.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +espresso_lite_v1.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +espresso_lite_v1.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +espresso_lite_v1.menu.Debug.Disabled=Disabled +espresso_lite_v1.menu.Debug.Disabled.build.debug_port= +espresso_lite_v1.menu.Debug.Serial=Serial +espresso_lite_v1.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +espresso_lite_v1.menu.Debug.Serial1=Serial1 +espresso_lite_v1.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +espresso_lite_v1.menu.DebugLevel.None____=None +espresso_lite_v1.menu.DebugLevel.None____.build.debug_level= +espresso_lite_v1.menu.DebugLevel.SSL=SSL +espresso_lite_v1.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +espresso_lite_v1.menu.DebugLevel.TLS_MEM=TLS_MEM +espresso_lite_v1.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +espresso_lite_v1.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +espresso_lite_v1.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +espresso_lite_v1.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +espresso_lite_v1.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +espresso_lite_v1.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +espresso_lite_v1.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +espresso_lite_v1.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +espresso_lite_v1.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +espresso_lite_v1.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +espresso_lite_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +espresso_lite_v1.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v1.menu.DebugLevel.CORE=CORE +espresso_lite_v1.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +espresso_lite_v1.menu.DebugLevel.WIFI=WIFI +espresso_lite_v1.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +espresso_lite_v1.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +espresso_lite_v1.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +espresso_lite_v1.menu.DebugLevel.UPDATER=UPDATER +espresso_lite_v1.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +espresso_lite_v1.menu.DebugLevel.OTA=OTA +espresso_lite_v1.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +espresso_lite_v1.menu.DebugLevel.OOM=OOM +espresso_lite_v1.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espresso_lite_v1.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +espresso_lite_v1.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espresso_lite_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +espresso_lite_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espresso_lite_v1.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +espresso_lite_v1.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +espresso_lite_v1.menu.FlashErase.none=Only Sketch +espresso_lite_v1.menu.FlashErase.none.upload.erase_cmd= +espresso_lite_v1.menu.FlashErase.sdk=Sketch + WiFi Settings +espresso_lite_v1.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +espresso_lite_v1.menu.FlashErase.all=All Flash Contents +espresso_lite_v1.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +espresso_lite_v1.menu.UploadSpeed.115200=115200 +espresso_lite_v1.menu.UploadSpeed.115200.upload.speed=115200 +espresso_lite_v1.menu.UploadSpeed.9600=9600 +espresso_lite_v1.menu.UploadSpeed.9600.upload.speed=9600 +espresso_lite_v1.menu.UploadSpeed.57600=57600 +espresso_lite_v1.menu.UploadSpeed.57600.upload.speed=57600 +espresso_lite_v1.menu.UploadSpeed.230400.linux=230400 +espresso_lite_v1.menu.UploadSpeed.230400.macosx=230400 +espresso_lite_v1.menu.UploadSpeed.230400.upload.speed=230400 +espresso_lite_v1.menu.UploadSpeed.256000.windows=256000 +espresso_lite_v1.menu.UploadSpeed.256000.upload.speed=256000 +espresso_lite_v1.menu.UploadSpeed.460800.linux=460800 +espresso_lite_v1.menu.UploadSpeed.460800.macosx=460800 +espresso_lite_v1.menu.UploadSpeed.460800.upload.speed=460800 +espresso_lite_v1.menu.UploadSpeed.512000.windows=512000 +espresso_lite_v1.menu.UploadSpeed.512000.upload.speed=512000 +espresso_lite_v1.menu.UploadSpeed.921600=921600 +espresso_lite_v1.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +espresso_lite_v2.name=ESPresso Lite 2.0 +espresso_lite_v2.build.board=ESP8266_ESPRESSO_LITE_V2 +espresso_lite_v2.build.variant=espresso_lite_v2 +espresso_lite_v2.upload.tool=esptool +espresso_lite_v2.upload.maximum_data_size=81920 +espresso_lite_v2.upload.wait_for_upload_port=true +espresso_lite_v2.upload.erase_cmd= +espresso_lite_v2.serial.disableDTR=true +espresso_lite_v2.serial.disableRTS=true +espresso_lite_v2.build.mcu=esp8266 +espresso_lite_v2.build.core=esp8266 +espresso_lite_v2.build.spiffs_pagesize=256 +espresso_lite_v2.build.debug_port= +espresso_lite_v2.build.debug_level= +espresso_lite_v2.menu.CpuFrequency.80=80 MHz +espresso_lite_v2.menu.CpuFrequency.80.build.f_cpu=80000000L +espresso_lite_v2.menu.CpuFrequency.160=160 MHz +espresso_lite_v2.menu.CpuFrequency.160.build.f_cpu=160000000L +espresso_lite_v2.build.flash_mode=dio +espresso_lite_v2.build.flash_freq=40 +espresso_lite_v2.menu.FlashSize.4M1M=4M (1M SPIFFS) +espresso_lite_v2.menu.FlashSize.4M1M.build.flash_size=4M +espresso_lite_v2.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +espresso_lite_v2.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +espresso_lite_v2.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +espresso_lite_v2.menu.FlashSize.4M1M.upload.maximum_size=1044464 +espresso_lite_v2.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +espresso_lite_v2.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +espresso_lite_v2.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +espresso_lite_v2.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +espresso_lite_v2.menu.FlashSize.4M3M=4M (3M SPIFFS) +espresso_lite_v2.menu.FlashSize.4M3M.build.flash_size=4M +espresso_lite_v2.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +espresso_lite_v2.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +espresso_lite_v2.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +espresso_lite_v2.menu.FlashSize.4M3M.upload.maximum_size=1044464 +espresso_lite_v2.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +espresso_lite_v2.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +espresso_lite_v2.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +espresso_lite_v2.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +espresso_lite_v2.menu.ResetMethod.ck=ck +espresso_lite_v2.menu.ResetMethod.ck.upload.resetmethod=ck +espresso_lite_v2.menu.ResetMethod.nodemcu=nodemcu +espresso_lite_v2.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu +espresso_lite_v2.menu.LwIPVariant.v2mss536=v2 Lower Memory +espresso_lite_v2.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +espresso_lite_v2.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +espresso_lite_v2.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +espresso_lite_v2.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +espresso_lite_v2.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +espresso_lite_v2.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +espresso_lite_v2.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +espresso_lite_v2.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +espresso_lite_v2.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +espresso_lite_v2.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +espresso_lite_v2.menu.LwIPVariant.OpenSource=v1.4 Compile from source +espresso_lite_v2.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +espresso_lite_v2.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +espresso_lite_v2.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +espresso_lite_v2.menu.Debug.Disabled=Disabled +espresso_lite_v2.menu.Debug.Disabled.build.debug_port= +espresso_lite_v2.menu.Debug.Serial=Serial +espresso_lite_v2.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +espresso_lite_v2.menu.Debug.Serial1=Serial1 +espresso_lite_v2.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +espresso_lite_v2.menu.DebugLevel.None____=None +espresso_lite_v2.menu.DebugLevel.None____.build.debug_level= +espresso_lite_v2.menu.DebugLevel.SSL=SSL +espresso_lite_v2.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +espresso_lite_v2.menu.DebugLevel.TLS_MEM=TLS_MEM +espresso_lite_v2.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +espresso_lite_v2.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +espresso_lite_v2.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +espresso_lite_v2.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +espresso_lite_v2.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +espresso_lite_v2.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +espresso_lite_v2.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +espresso_lite_v2.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +espresso_lite_v2.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +espresso_lite_v2.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +espresso_lite_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +espresso_lite_v2.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espresso_lite_v2.menu.DebugLevel.CORE=CORE +espresso_lite_v2.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +espresso_lite_v2.menu.DebugLevel.WIFI=WIFI +espresso_lite_v2.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +espresso_lite_v2.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +espresso_lite_v2.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +espresso_lite_v2.menu.DebugLevel.UPDATER=UPDATER +espresso_lite_v2.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +espresso_lite_v2.menu.DebugLevel.OTA=OTA +espresso_lite_v2.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +espresso_lite_v2.menu.DebugLevel.OOM=OOM +espresso_lite_v2.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espresso_lite_v2.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +espresso_lite_v2.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espresso_lite_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +espresso_lite_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espresso_lite_v2.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +espresso_lite_v2.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +espresso_lite_v2.menu.FlashErase.none=Only Sketch +espresso_lite_v2.menu.FlashErase.none.upload.erase_cmd= +espresso_lite_v2.menu.FlashErase.sdk=Sketch + WiFi Settings +espresso_lite_v2.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +espresso_lite_v2.menu.FlashErase.all=All Flash Contents +espresso_lite_v2.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +espresso_lite_v2.menu.UploadSpeed.115200=115200 +espresso_lite_v2.menu.UploadSpeed.115200.upload.speed=115200 +espresso_lite_v2.menu.UploadSpeed.9600=9600 +espresso_lite_v2.menu.UploadSpeed.9600.upload.speed=9600 +espresso_lite_v2.menu.UploadSpeed.57600=57600 +espresso_lite_v2.menu.UploadSpeed.57600.upload.speed=57600 +espresso_lite_v2.menu.UploadSpeed.230400.linux=230400 +espresso_lite_v2.menu.UploadSpeed.230400.macosx=230400 +espresso_lite_v2.menu.UploadSpeed.230400.upload.speed=230400 +espresso_lite_v2.menu.UploadSpeed.256000.windows=256000 +espresso_lite_v2.menu.UploadSpeed.256000.upload.speed=256000 +espresso_lite_v2.menu.UploadSpeed.460800.linux=460800 +espresso_lite_v2.menu.UploadSpeed.460800.macosx=460800 +espresso_lite_v2.menu.UploadSpeed.460800.upload.speed=460800 +espresso_lite_v2.menu.UploadSpeed.512000.windows=512000 +espresso_lite_v2.menu.UploadSpeed.512000.upload.speed=512000 +espresso_lite_v2.menu.UploadSpeed.921600=921600 +espresso_lite_v2.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +phoenix_v1.name=Phoenix 1.0 +phoenix_v1.build.board=ESP8266_PHOENIX_V1 +phoenix_v1.build.variant=phoenix_v1 +phoenix_v1.upload.tool=esptool +phoenix_v1.upload.maximum_data_size=81920 +phoenix_v1.upload.wait_for_upload_port=true +phoenix_v1.upload.erase_cmd= +phoenix_v1.serial.disableDTR=true +phoenix_v1.serial.disableRTS=true +phoenix_v1.build.mcu=esp8266 +phoenix_v1.build.core=esp8266 +phoenix_v1.build.spiffs_pagesize=256 +phoenix_v1.build.debug_port= +phoenix_v1.build.debug_level= +phoenix_v1.menu.CpuFrequency.80=80 MHz +phoenix_v1.menu.CpuFrequency.80.build.f_cpu=80000000L +phoenix_v1.menu.CpuFrequency.160=160 MHz +phoenix_v1.menu.CpuFrequency.160.build.f_cpu=160000000L +phoenix_v1.build.flash_mode=dio +phoenix_v1.build.flash_freq=40 +phoenix_v1.menu.FlashSize.4M1M=4M (1M SPIFFS) +phoenix_v1.menu.FlashSize.4M1M.build.flash_size=4M +phoenix_v1.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +phoenix_v1.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +phoenix_v1.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +phoenix_v1.menu.FlashSize.4M1M.upload.maximum_size=1044464 +phoenix_v1.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +phoenix_v1.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +phoenix_v1.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +phoenix_v1.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +phoenix_v1.menu.FlashSize.4M3M=4M (3M SPIFFS) +phoenix_v1.menu.FlashSize.4M3M.build.flash_size=4M +phoenix_v1.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +phoenix_v1.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +phoenix_v1.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +phoenix_v1.menu.FlashSize.4M3M.upload.maximum_size=1044464 +phoenix_v1.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +phoenix_v1.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +phoenix_v1.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +phoenix_v1.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +phoenix_v1.menu.ResetMethod.ck=ck +phoenix_v1.menu.ResetMethod.ck.upload.resetmethod=ck +phoenix_v1.menu.ResetMethod.nodemcu=nodemcu +phoenix_v1.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu +phoenix_v1.menu.LwIPVariant.v2mss536=v2 Lower Memory +phoenix_v1.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +phoenix_v1.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +phoenix_v1.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +phoenix_v1.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +phoenix_v1.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +phoenix_v1.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +phoenix_v1.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +phoenix_v1.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +phoenix_v1.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +phoenix_v1.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +phoenix_v1.menu.LwIPVariant.OpenSource=v1.4 Compile from source +phoenix_v1.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +phoenix_v1.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +phoenix_v1.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +phoenix_v1.menu.Debug.Disabled=Disabled +phoenix_v1.menu.Debug.Disabled.build.debug_port= +phoenix_v1.menu.Debug.Serial=Serial +phoenix_v1.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +phoenix_v1.menu.Debug.Serial1=Serial1 +phoenix_v1.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +phoenix_v1.menu.DebugLevel.None____=None +phoenix_v1.menu.DebugLevel.None____.build.debug_level= +phoenix_v1.menu.DebugLevel.SSL=SSL +phoenix_v1.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +phoenix_v1.menu.DebugLevel.TLS_MEM=TLS_MEM +phoenix_v1.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +phoenix_v1.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +phoenix_v1.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +phoenix_v1.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +phoenix_v1.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +phoenix_v1.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +phoenix_v1.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +phoenix_v1.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +phoenix_v1.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +phoenix_v1.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +phoenix_v1.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +phoenix_v1.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +phoenix_v1.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +phoenix_v1.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +phoenix_v1.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +phoenix_v1.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +phoenix_v1.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +phoenix_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +phoenix_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +phoenix_v1.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +phoenix_v1.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +phoenix_v1.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +phoenix_v1.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +phoenix_v1.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +phoenix_v1.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +phoenix_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +phoenix_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +phoenix_v1.menu.DebugLevel.CORE=CORE +phoenix_v1.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +phoenix_v1.menu.DebugLevel.WIFI=WIFI +phoenix_v1.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +phoenix_v1.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +phoenix_v1.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +phoenix_v1.menu.DebugLevel.UPDATER=UPDATER +phoenix_v1.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +phoenix_v1.menu.DebugLevel.OTA=OTA +phoenix_v1.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +phoenix_v1.menu.DebugLevel.OOM=OOM +phoenix_v1.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +phoenix_v1.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +phoenix_v1.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +phoenix_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +phoenix_v1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +phoenix_v1.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +phoenix_v1.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +phoenix_v1.menu.FlashErase.none=Only Sketch +phoenix_v1.menu.FlashErase.none.upload.erase_cmd= +phoenix_v1.menu.FlashErase.sdk=Sketch + WiFi Settings +phoenix_v1.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +phoenix_v1.menu.FlashErase.all=All Flash Contents +phoenix_v1.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +phoenix_v1.menu.UploadSpeed.115200=115200 +phoenix_v1.menu.UploadSpeed.115200.upload.speed=115200 +phoenix_v1.menu.UploadSpeed.9600=9600 +phoenix_v1.menu.UploadSpeed.9600.upload.speed=9600 +phoenix_v1.menu.UploadSpeed.57600=57600 +phoenix_v1.menu.UploadSpeed.57600.upload.speed=57600 +phoenix_v1.menu.UploadSpeed.230400.linux=230400 +phoenix_v1.menu.UploadSpeed.230400.macosx=230400 +phoenix_v1.menu.UploadSpeed.230400.upload.speed=230400 +phoenix_v1.menu.UploadSpeed.256000.windows=256000 +phoenix_v1.menu.UploadSpeed.256000.upload.speed=256000 +phoenix_v1.menu.UploadSpeed.460800.linux=460800 +phoenix_v1.menu.UploadSpeed.460800.macosx=460800 +phoenix_v1.menu.UploadSpeed.460800.upload.speed=460800 +phoenix_v1.menu.UploadSpeed.512000.windows=512000 +phoenix_v1.menu.UploadSpeed.512000.upload.speed=512000 +phoenix_v1.menu.UploadSpeed.921600=921600 +phoenix_v1.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +phoenix_v2.name=Phoenix 2.0 +phoenix_v2.build.board=ESP8266_PHOENIX_V2 +phoenix_v2.build.variant=phoenix_v2 +phoenix_v2.upload.tool=esptool +phoenix_v2.upload.maximum_data_size=81920 +phoenix_v2.upload.wait_for_upload_port=true +phoenix_v2.upload.erase_cmd= +phoenix_v2.serial.disableDTR=true +phoenix_v2.serial.disableRTS=true +phoenix_v2.build.mcu=esp8266 +phoenix_v2.build.core=esp8266 +phoenix_v2.build.spiffs_pagesize=256 +phoenix_v2.build.debug_port= +phoenix_v2.build.debug_level= +phoenix_v2.menu.CpuFrequency.80=80 MHz +phoenix_v2.menu.CpuFrequency.80.build.f_cpu=80000000L +phoenix_v2.menu.CpuFrequency.160=160 MHz +phoenix_v2.menu.CpuFrequency.160.build.f_cpu=160000000L +phoenix_v2.build.flash_mode=dio +phoenix_v2.build.flash_freq=40 +phoenix_v2.menu.FlashSize.4M1M=4M (1M SPIFFS) +phoenix_v2.menu.FlashSize.4M1M.build.flash_size=4M +phoenix_v2.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +phoenix_v2.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +phoenix_v2.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +phoenix_v2.menu.FlashSize.4M1M.upload.maximum_size=1044464 +phoenix_v2.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +phoenix_v2.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +phoenix_v2.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +phoenix_v2.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +phoenix_v2.menu.FlashSize.4M3M=4M (3M SPIFFS) +phoenix_v2.menu.FlashSize.4M3M.build.flash_size=4M +phoenix_v2.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +phoenix_v2.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +phoenix_v2.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +phoenix_v2.menu.FlashSize.4M3M.upload.maximum_size=1044464 +phoenix_v2.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +phoenix_v2.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +phoenix_v2.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +phoenix_v2.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +phoenix_v2.menu.ResetMethod.ck=ck +phoenix_v2.menu.ResetMethod.ck.upload.resetmethod=ck +phoenix_v2.menu.ResetMethod.nodemcu=nodemcu +phoenix_v2.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu +phoenix_v2.menu.LwIPVariant.v2mss536=v2 Lower Memory +phoenix_v2.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +phoenix_v2.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +phoenix_v2.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +phoenix_v2.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +phoenix_v2.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +phoenix_v2.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +phoenix_v2.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +phoenix_v2.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +phoenix_v2.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +phoenix_v2.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +phoenix_v2.menu.LwIPVariant.OpenSource=v1.4 Compile from source +phoenix_v2.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +phoenix_v2.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +phoenix_v2.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +phoenix_v2.menu.Debug.Disabled=Disabled +phoenix_v2.menu.Debug.Disabled.build.debug_port= +phoenix_v2.menu.Debug.Serial=Serial +phoenix_v2.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +phoenix_v2.menu.Debug.Serial1=Serial1 +phoenix_v2.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +phoenix_v2.menu.DebugLevel.None____=None +phoenix_v2.menu.DebugLevel.None____.build.debug_level= +phoenix_v2.menu.DebugLevel.SSL=SSL +phoenix_v2.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +phoenix_v2.menu.DebugLevel.TLS_MEM=TLS_MEM +phoenix_v2.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +phoenix_v2.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +phoenix_v2.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +phoenix_v2.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +phoenix_v2.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +phoenix_v2.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +phoenix_v2.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +phoenix_v2.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +phoenix_v2.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +phoenix_v2.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +phoenix_v2.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +phoenix_v2.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +phoenix_v2.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +phoenix_v2.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +phoenix_v2.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +phoenix_v2.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +phoenix_v2.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +phoenix_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +phoenix_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +phoenix_v2.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +phoenix_v2.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +phoenix_v2.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +phoenix_v2.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +phoenix_v2.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +phoenix_v2.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +phoenix_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +phoenix_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +phoenix_v2.menu.DebugLevel.CORE=CORE +phoenix_v2.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +phoenix_v2.menu.DebugLevel.WIFI=WIFI +phoenix_v2.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +phoenix_v2.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +phoenix_v2.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +phoenix_v2.menu.DebugLevel.UPDATER=UPDATER +phoenix_v2.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +phoenix_v2.menu.DebugLevel.OTA=OTA +phoenix_v2.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +phoenix_v2.menu.DebugLevel.OOM=OOM +phoenix_v2.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +phoenix_v2.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +phoenix_v2.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +phoenix_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +phoenix_v2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +phoenix_v2.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +phoenix_v2.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +phoenix_v2.menu.FlashErase.none=Only Sketch +phoenix_v2.menu.FlashErase.none.upload.erase_cmd= +phoenix_v2.menu.FlashErase.sdk=Sketch + WiFi Settings +phoenix_v2.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +phoenix_v2.menu.FlashErase.all=All Flash Contents +phoenix_v2.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +phoenix_v2.menu.UploadSpeed.115200=115200 +phoenix_v2.menu.UploadSpeed.115200.upload.speed=115200 +phoenix_v2.menu.UploadSpeed.9600=9600 +phoenix_v2.menu.UploadSpeed.9600.upload.speed=9600 +phoenix_v2.menu.UploadSpeed.57600=57600 +phoenix_v2.menu.UploadSpeed.57600.upload.speed=57600 +phoenix_v2.menu.UploadSpeed.230400.linux=230400 +phoenix_v2.menu.UploadSpeed.230400.macosx=230400 +phoenix_v2.menu.UploadSpeed.230400.upload.speed=230400 +phoenix_v2.menu.UploadSpeed.256000.windows=256000 +phoenix_v2.menu.UploadSpeed.256000.upload.speed=256000 +phoenix_v2.menu.UploadSpeed.460800.linux=460800 +phoenix_v2.menu.UploadSpeed.460800.macosx=460800 +phoenix_v2.menu.UploadSpeed.460800.upload.speed=460800 +phoenix_v2.menu.UploadSpeed.512000.windows=512000 +phoenix_v2.menu.UploadSpeed.512000.upload.speed=512000 +phoenix_v2.menu.UploadSpeed.921600=921600 +phoenix_v2.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +nodemcu.name=NodeMCU 0.9 (ESP-12 Module) +nodemcu.build.board=ESP8266_NODEMCU +nodemcu.build.variant=nodemcu +nodemcu.upload.tool=esptool +nodemcu.upload.maximum_data_size=81920 +nodemcu.upload.wait_for_upload_port=true +nodemcu.upload.erase_cmd= +nodemcu.serial.disableDTR=true +nodemcu.serial.disableRTS=true +nodemcu.build.mcu=esp8266 +nodemcu.build.core=esp8266 +nodemcu.build.spiffs_pagesize=256 +nodemcu.build.debug_port= +nodemcu.build.debug_level= +nodemcu.menu.CpuFrequency.80=80 MHz +nodemcu.menu.CpuFrequency.80.build.f_cpu=80000000L +nodemcu.menu.CpuFrequency.160=160 MHz +nodemcu.menu.CpuFrequency.160.build.f_cpu=160000000L +nodemcu.upload.resetmethod=nodemcu +nodemcu.build.flash_mode=qio +nodemcu.build.flash_freq=40 +nodemcu.menu.FlashSize.4M1M=4M (1M SPIFFS) +nodemcu.menu.FlashSize.4M1M.build.flash_size=4M +nodemcu.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +nodemcu.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +nodemcu.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +nodemcu.menu.FlashSize.4M1M.upload.maximum_size=1044464 +nodemcu.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +nodemcu.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +nodemcu.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +nodemcu.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +nodemcu.menu.FlashSize.4M3M=4M (3M SPIFFS) +nodemcu.menu.FlashSize.4M3M.build.flash_size=4M +nodemcu.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +nodemcu.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +nodemcu.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +nodemcu.menu.FlashSize.4M3M.upload.maximum_size=1044464 +nodemcu.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +nodemcu.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +nodemcu.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +nodemcu.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +nodemcu.menu.LwIPVariant.v2mss536=v2 Lower Memory +nodemcu.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +nodemcu.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +nodemcu.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +nodemcu.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +nodemcu.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +nodemcu.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +nodemcu.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +nodemcu.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +nodemcu.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +nodemcu.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +nodemcu.menu.LwIPVariant.OpenSource=v1.4 Compile from source +nodemcu.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +nodemcu.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +nodemcu.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +nodemcu.menu.Debug.Disabled=Disabled +nodemcu.menu.Debug.Disabled.build.debug_port= +nodemcu.menu.Debug.Serial=Serial +nodemcu.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +nodemcu.menu.Debug.Serial1=Serial1 +nodemcu.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +nodemcu.menu.DebugLevel.None____=None +nodemcu.menu.DebugLevel.None____.build.debug_level= +nodemcu.menu.DebugLevel.SSL=SSL +nodemcu.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +nodemcu.menu.DebugLevel.TLS_MEM=TLS_MEM +nodemcu.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +nodemcu.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +nodemcu.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +nodemcu.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +nodemcu.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +nodemcu.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +nodemcu.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +nodemcu.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +nodemcu.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +nodemcu.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +nodemcu.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +nodemcu.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +nodemcu.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +nodemcu.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +nodemcu.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +nodemcu.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +nodemcu.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +nodemcu.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +nodemcu.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +nodemcu.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +nodemcu.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +nodemcu.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +nodemcu.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +nodemcu.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +nodemcu.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +nodemcu.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +nodemcu.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +nodemcu.menu.DebugLevel.CORE=CORE +nodemcu.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +nodemcu.menu.DebugLevel.WIFI=WIFI +nodemcu.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +nodemcu.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +nodemcu.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +nodemcu.menu.DebugLevel.UPDATER=UPDATER +nodemcu.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +nodemcu.menu.DebugLevel.OTA=OTA +nodemcu.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +nodemcu.menu.DebugLevel.OOM=OOM +nodemcu.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +nodemcu.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +nodemcu.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +nodemcu.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +nodemcu.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +nodemcu.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +nodemcu.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +nodemcu.menu.FlashErase.none=Only Sketch +nodemcu.menu.FlashErase.none.upload.erase_cmd= +nodemcu.menu.FlashErase.sdk=Sketch + WiFi Settings +nodemcu.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +nodemcu.menu.FlashErase.all=All Flash Contents +nodemcu.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +nodemcu.menu.UploadSpeed.115200=115200 +nodemcu.menu.UploadSpeed.115200.upload.speed=115200 +nodemcu.menu.UploadSpeed.9600=9600 +nodemcu.menu.UploadSpeed.9600.upload.speed=9600 +nodemcu.menu.UploadSpeed.57600=57600 +nodemcu.menu.UploadSpeed.57600.upload.speed=57600 +nodemcu.menu.UploadSpeed.230400.linux=230400 +nodemcu.menu.UploadSpeed.230400.macosx=230400 +nodemcu.menu.UploadSpeed.230400.upload.speed=230400 +nodemcu.menu.UploadSpeed.256000.windows=256000 +nodemcu.menu.UploadSpeed.256000.upload.speed=256000 +nodemcu.menu.UploadSpeed.460800.linux=460800 +nodemcu.menu.UploadSpeed.460800.macosx=460800 +nodemcu.menu.UploadSpeed.460800.upload.speed=460800 +nodemcu.menu.UploadSpeed.512000.windows=512000 +nodemcu.menu.UploadSpeed.512000.upload.speed=512000 +nodemcu.menu.UploadSpeed.921600=921600 +nodemcu.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +nodemcuv2.name=NodeMCU 1.0 (ESP-12E Module) +nodemcuv2.build.board=ESP8266_NODEMCU +nodemcuv2.build.variant=nodemcu +nodemcuv2.upload.tool=esptool +nodemcuv2.upload.maximum_data_size=81920 +nodemcuv2.upload.wait_for_upload_port=true +nodemcuv2.upload.erase_cmd= +nodemcuv2.serial.disableDTR=true +nodemcuv2.serial.disableRTS=true +nodemcuv2.build.mcu=esp8266 +nodemcuv2.build.core=esp8266 +nodemcuv2.build.spiffs_pagesize=256 +nodemcuv2.build.debug_port= +nodemcuv2.build.debug_level= +nodemcuv2.menu.CpuFrequency.80=80 MHz +nodemcuv2.menu.CpuFrequency.80.build.f_cpu=80000000L +nodemcuv2.menu.CpuFrequency.160=160 MHz +nodemcuv2.menu.CpuFrequency.160.build.f_cpu=160000000L +nodemcuv2.upload.resetmethod=nodemcu +nodemcuv2.build.flash_mode=dio +nodemcuv2.build.flash_freq=40 +nodemcuv2.menu.FlashSize.4M1M=4M (1M SPIFFS) +nodemcuv2.menu.FlashSize.4M1M.build.flash_size=4M +nodemcuv2.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +nodemcuv2.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +nodemcuv2.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +nodemcuv2.menu.FlashSize.4M1M.upload.maximum_size=1044464 +nodemcuv2.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +nodemcuv2.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +nodemcuv2.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +nodemcuv2.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +nodemcuv2.menu.FlashSize.4M3M=4M (3M SPIFFS) +nodemcuv2.menu.FlashSize.4M3M.build.flash_size=4M +nodemcuv2.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +nodemcuv2.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +nodemcuv2.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +nodemcuv2.menu.FlashSize.4M3M.upload.maximum_size=1044464 +nodemcuv2.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +nodemcuv2.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +nodemcuv2.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +nodemcuv2.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +nodemcuv2.menu.LwIPVariant.v2mss536=v2 Lower Memory +nodemcuv2.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +nodemcuv2.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +nodemcuv2.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +nodemcuv2.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +nodemcuv2.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +nodemcuv2.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +nodemcuv2.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +nodemcuv2.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +nodemcuv2.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +nodemcuv2.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +nodemcuv2.menu.LwIPVariant.OpenSource=v1.4 Compile from source +nodemcuv2.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +nodemcuv2.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +nodemcuv2.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +nodemcuv2.menu.Debug.Disabled=Disabled +nodemcuv2.menu.Debug.Disabled.build.debug_port= +nodemcuv2.menu.Debug.Serial=Serial +nodemcuv2.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +nodemcuv2.menu.Debug.Serial1=Serial1 +nodemcuv2.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +nodemcuv2.menu.DebugLevel.None____=None +nodemcuv2.menu.DebugLevel.None____.build.debug_level= +nodemcuv2.menu.DebugLevel.SSL=SSL +nodemcuv2.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +nodemcuv2.menu.DebugLevel.TLS_MEM=TLS_MEM +nodemcuv2.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +nodemcuv2.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +nodemcuv2.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +nodemcuv2.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +nodemcuv2.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +nodemcuv2.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +nodemcuv2.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +nodemcuv2.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +nodemcuv2.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +nodemcuv2.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +nodemcuv2.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +nodemcuv2.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +nodemcuv2.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +nodemcuv2.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +nodemcuv2.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +nodemcuv2.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +nodemcuv2.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +nodemcuv2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +nodemcuv2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +nodemcuv2.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +nodemcuv2.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +nodemcuv2.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +nodemcuv2.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +nodemcuv2.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +nodemcuv2.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +nodemcuv2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +nodemcuv2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +nodemcuv2.menu.DebugLevel.CORE=CORE +nodemcuv2.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +nodemcuv2.menu.DebugLevel.WIFI=WIFI +nodemcuv2.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +nodemcuv2.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +nodemcuv2.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +nodemcuv2.menu.DebugLevel.UPDATER=UPDATER +nodemcuv2.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +nodemcuv2.menu.DebugLevel.OTA=OTA +nodemcuv2.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +nodemcuv2.menu.DebugLevel.OOM=OOM +nodemcuv2.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +nodemcuv2.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +nodemcuv2.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +nodemcuv2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +nodemcuv2.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +nodemcuv2.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +nodemcuv2.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +nodemcuv2.menu.FlashErase.none=Only Sketch +nodemcuv2.menu.FlashErase.none.upload.erase_cmd= +nodemcuv2.menu.FlashErase.sdk=Sketch + WiFi Settings +nodemcuv2.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +nodemcuv2.menu.FlashErase.all=All Flash Contents +nodemcuv2.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +nodemcuv2.menu.UploadSpeed.115200=115200 +nodemcuv2.menu.UploadSpeed.115200.upload.speed=115200 +nodemcuv2.menu.UploadSpeed.9600=9600 +nodemcuv2.menu.UploadSpeed.9600.upload.speed=9600 +nodemcuv2.menu.UploadSpeed.57600=57600 +nodemcuv2.menu.UploadSpeed.57600.upload.speed=57600 +nodemcuv2.menu.UploadSpeed.230400.linux=230400 +nodemcuv2.menu.UploadSpeed.230400.macosx=230400 +nodemcuv2.menu.UploadSpeed.230400.upload.speed=230400 +nodemcuv2.menu.UploadSpeed.256000.windows=256000 +nodemcuv2.menu.UploadSpeed.256000.upload.speed=256000 +nodemcuv2.menu.UploadSpeed.460800.linux=460800 +nodemcuv2.menu.UploadSpeed.460800.macosx=460800 +nodemcuv2.menu.UploadSpeed.460800.upload.speed=460800 +nodemcuv2.menu.UploadSpeed.512000.windows=512000 +nodemcuv2.menu.UploadSpeed.512000.upload.speed=512000 +nodemcuv2.menu.UploadSpeed.921600=921600 +nodemcuv2.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +modwifi.name=Olimex MOD-WIFI-ESP8266(-DEV) +modwifi.build.board=MOD_WIFI_ESP8266 +modwifi.upload.tool=esptool +modwifi.upload.maximum_data_size=81920 +modwifi.upload.wait_for_upload_port=true +modwifi.upload.erase_cmd= +modwifi.serial.disableDTR=true +modwifi.serial.disableRTS=true +modwifi.build.mcu=esp8266 +modwifi.build.core=esp8266 +modwifi.build.variant=generic +modwifi.build.spiffs_pagesize=256 +modwifi.build.debug_port= +modwifi.build.debug_level= +modwifi.menu.CpuFrequency.80=80 MHz +modwifi.menu.CpuFrequency.80.build.f_cpu=80000000L +modwifi.menu.CpuFrequency.160=160 MHz +modwifi.menu.CpuFrequency.160.build.f_cpu=160000000L +modwifi.upload.resetmethod=ck +modwifi.build.flash_mode=qio +modwifi.build.flash_freq=40 +modwifi.menu.FlashSize.2M=2M (1M SPIFFS) +modwifi.menu.FlashSize.2M.build.flash_size=2M +modwifi.menu.FlashSize.2M.build.flash_size_bytes=0x200000 +modwifi.menu.FlashSize.2M.build.flash_ld=eagle.flash.2m.ld +modwifi.menu.FlashSize.2M.build.spiffs_pagesize=256 +modwifi.menu.FlashSize.2M.upload.maximum_size=1044464 +modwifi.menu.FlashSize.2M.build.rfcal_addr=0x1FC000 +modwifi.menu.FlashSize.2M.build.spiffs_start=0x100000 +modwifi.menu.FlashSize.2M.build.spiffs_end=0x1FB000 +modwifi.menu.FlashSize.2M.build.spiffs_blocksize=8192 +modwifi.menu.LwIPVariant.v2mss536=v2 Lower Memory +modwifi.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +modwifi.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +modwifi.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +modwifi.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +modwifi.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +modwifi.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +modwifi.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +modwifi.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +modwifi.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +modwifi.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +modwifi.menu.LwIPVariant.OpenSource=v1.4 Compile from source +modwifi.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +modwifi.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +modwifi.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +modwifi.menu.Debug.Disabled=Disabled +modwifi.menu.Debug.Disabled.build.debug_port= +modwifi.menu.Debug.Serial=Serial +modwifi.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +modwifi.menu.Debug.Serial1=Serial1 +modwifi.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +modwifi.menu.DebugLevel.None____=None +modwifi.menu.DebugLevel.None____.build.debug_level= +modwifi.menu.DebugLevel.SSL=SSL +modwifi.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +modwifi.menu.DebugLevel.TLS_MEM=TLS_MEM +modwifi.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +modwifi.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +modwifi.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +modwifi.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +modwifi.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +modwifi.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +modwifi.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +modwifi.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +modwifi.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +modwifi.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +modwifi.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +modwifi.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +modwifi.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +modwifi.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +modwifi.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +modwifi.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +modwifi.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +modwifi.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +modwifi.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +modwifi.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +modwifi.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +modwifi.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +modwifi.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +modwifi.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +modwifi.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +modwifi.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +modwifi.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +modwifi.menu.DebugLevel.CORE=CORE +modwifi.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +modwifi.menu.DebugLevel.WIFI=WIFI +modwifi.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +modwifi.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +modwifi.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +modwifi.menu.DebugLevel.UPDATER=UPDATER +modwifi.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +modwifi.menu.DebugLevel.OTA=OTA +modwifi.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +modwifi.menu.DebugLevel.OOM=OOM +modwifi.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +modwifi.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +modwifi.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +modwifi.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +modwifi.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +modwifi.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +modwifi.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +modwifi.menu.FlashErase.none=Only Sketch +modwifi.menu.FlashErase.none.upload.erase_cmd= +modwifi.menu.FlashErase.sdk=Sketch + WiFi Settings +modwifi.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +modwifi.menu.FlashErase.all=All Flash Contents +modwifi.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +modwifi.menu.UploadSpeed.115200=115200 +modwifi.menu.UploadSpeed.115200.upload.speed=115200 +modwifi.menu.UploadSpeed.9600=9600 +modwifi.menu.UploadSpeed.9600.upload.speed=9600 +modwifi.menu.UploadSpeed.57600=57600 +modwifi.menu.UploadSpeed.57600.upload.speed=57600 +modwifi.menu.UploadSpeed.230400.linux=230400 +modwifi.menu.UploadSpeed.230400.macosx=230400 +modwifi.menu.UploadSpeed.230400.upload.speed=230400 +modwifi.menu.UploadSpeed.256000.windows=256000 +modwifi.menu.UploadSpeed.256000.upload.speed=256000 +modwifi.menu.UploadSpeed.460800.linux=460800 +modwifi.menu.UploadSpeed.460800.macosx=460800 +modwifi.menu.UploadSpeed.460800.upload.speed=460800 +modwifi.menu.UploadSpeed.512000.windows=512000 +modwifi.menu.UploadSpeed.512000.upload.speed=512000 +modwifi.menu.UploadSpeed.921600=921600 +modwifi.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +thing.name=SparkFun ESP8266 Thing +thing.build.board=ESP8266_THING +thing.build.variant=thing +thing.upload.tool=esptool +thing.upload.maximum_data_size=81920 +thing.upload.wait_for_upload_port=true +thing.upload.erase_cmd= +thing.serial.disableDTR=true +thing.serial.disableRTS=true +thing.build.mcu=esp8266 +thing.build.core=esp8266 +thing.build.spiffs_pagesize=256 +thing.build.debug_port= +thing.build.debug_level= +thing.menu.CpuFrequency.80=80 MHz +thing.menu.CpuFrequency.80.build.f_cpu=80000000L +thing.menu.CpuFrequency.160=160 MHz +thing.menu.CpuFrequency.160.build.f_cpu=160000000L +thing.upload.resetmethod=ck +thing.build.flash_mode=qio +thing.build.flash_freq=40 +thing.menu.FlashSize.512K0=512K (no SPIFFS) +thing.menu.FlashSize.512K0.build.flash_size=512K +thing.menu.FlashSize.512K0.build.flash_size_bytes=0x80000 +thing.menu.FlashSize.512K0.build.flash_ld=eagle.flash.512k0.ld +thing.menu.FlashSize.512K0.build.spiffs_pagesize=256 +thing.menu.FlashSize.512K0.upload.maximum_size=499696 +thing.menu.FlashSize.512K0.build.rfcal_addr=0x7C000 +thing.menu.FlashSize.512K64=512K (64K SPIFFS) +thing.menu.FlashSize.512K64.build.flash_size=512K +thing.menu.FlashSize.512K64.build.flash_size_bytes=0x80000 +thing.menu.FlashSize.512K64.build.flash_ld=eagle.flash.512k64.ld +thing.menu.FlashSize.512K64.build.spiffs_pagesize=256 +thing.menu.FlashSize.512K64.upload.maximum_size=434160 +thing.menu.FlashSize.512K64.build.rfcal_addr=0x7C000 +thing.menu.FlashSize.512K64.build.spiffs_start=0x6B000 +thing.menu.FlashSize.512K64.build.spiffs_end=0x7B000 +thing.menu.FlashSize.512K64.build.spiffs_blocksize=4096 +thing.menu.FlashSize.512K128=512K (128K SPIFFS) +thing.menu.FlashSize.512K128.build.flash_size=512K +thing.menu.FlashSize.512K128.build.flash_size_bytes=0x80000 +thing.menu.FlashSize.512K128.build.flash_ld=eagle.flash.512k128.ld +thing.menu.FlashSize.512K128.build.spiffs_pagesize=256 +thing.menu.FlashSize.512K128.upload.maximum_size=368624 +thing.menu.FlashSize.512K128.build.rfcal_addr=0x7C000 +thing.menu.FlashSize.512K128.build.spiffs_start=0x5B000 +thing.menu.FlashSize.512K128.build.spiffs_end=0x7B000 +thing.menu.FlashSize.512K128.build.spiffs_blocksize=4096 +thing.menu.LwIPVariant.v2mss536=v2 Lower Memory +thing.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +thing.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +thing.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +thing.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +thing.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +thing.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +thing.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +thing.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +thing.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +thing.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +thing.menu.LwIPVariant.OpenSource=v1.4 Compile from source +thing.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +thing.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +thing.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +thing.menu.Debug.Disabled=Disabled +thing.menu.Debug.Disabled.build.debug_port= +thing.menu.Debug.Serial=Serial +thing.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +thing.menu.Debug.Serial1=Serial1 +thing.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +thing.menu.DebugLevel.None____=None +thing.menu.DebugLevel.None____.build.debug_level= +thing.menu.DebugLevel.SSL=SSL +thing.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +thing.menu.DebugLevel.TLS_MEM=TLS_MEM +thing.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +thing.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +thing.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +thing.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +thing.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +thing.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +thing.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +thing.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +thing.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +thing.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +thing.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +thing.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +thing.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +thing.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +thing.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +thing.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +thing.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +thing.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +thing.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +thing.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +thing.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +thing.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +thing.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +thing.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +thing.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +thing.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +thing.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +thing.menu.DebugLevel.CORE=CORE +thing.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +thing.menu.DebugLevel.WIFI=WIFI +thing.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +thing.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +thing.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +thing.menu.DebugLevel.UPDATER=UPDATER +thing.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +thing.menu.DebugLevel.OTA=OTA +thing.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +thing.menu.DebugLevel.OOM=OOM +thing.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +thing.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +thing.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +thing.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +thing.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +thing.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +thing.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +thing.menu.FlashErase.none=Only Sketch +thing.menu.FlashErase.none.upload.erase_cmd= +thing.menu.FlashErase.sdk=Sketch + WiFi Settings +thing.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +thing.menu.FlashErase.all=All Flash Contents +thing.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +thing.menu.UploadSpeed.115200=115200 +thing.menu.UploadSpeed.115200.upload.speed=115200 +thing.menu.UploadSpeed.9600=9600 +thing.menu.UploadSpeed.9600.upload.speed=9600 +thing.menu.UploadSpeed.57600=57600 +thing.menu.UploadSpeed.57600.upload.speed=57600 +thing.menu.UploadSpeed.230400.linux=230400 +thing.menu.UploadSpeed.230400.macosx=230400 +thing.menu.UploadSpeed.230400.upload.speed=230400 +thing.menu.UploadSpeed.256000.windows=256000 +thing.menu.UploadSpeed.256000.upload.speed=256000 +thing.menu.UploadSpeed.460800.linux=460800 +thing.menu.UploadSpeed.460800.macosx=460800 +thing.menu.UploadSpeed.460800.upload.speed=460800 +thing.menu.UploadSpeed.512000.windows=512000 +thing.menu.UploadSpeed.512000.upload.speed=512000 +thing.menu.UploadSpeed.921600=921600 +thing.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +thingdev.name=SparkFun ESP8266 Thing Dev +thingdev.build.board=ESP8266_THING_DEV +thingdev.build.variant=thing +thingdev.upload.tool=esptool +thingdev.upload.maximum_data_size=81920 +thingdev.upload.wait_for_upload_port=true +thingdev.upload.erase_cmd= +thingdev.serial.disableDTR=true +thingdev.serial.disableRTS=true +thingdev.build.mcu=esp8266 +thingdev.build.core=esp8266 +thingdev.build.spiffs_pagesize=256 +thingdev.build.debug_port= +thingdev.build.debug_level= +thingdev.menu.CpuFrequency.80=80 MHz +thingdev.menu.CpuFrequency.80.build.f_cpu=80000000L +thingdev.menu.CpuFrequency.160=160 MHz +thingdev.menu.CpuFrequency.160.build.f_cpu=160000000L +thingdev.upload.resetmethod=nodemcu +thingdev.build.flash_mode=dio +thingdev.build.flash_freq=40 +thingdev.menu.FlashSize.512K0=512K (no SPIFFS) +thingdev.menu.FlashSize.512K0.build.flash_size=512K +thingdev.menu.FlashSize.512K0.build.flash_size_bytes=0x80000 +thingdev.menu.FlashSize.512K0.build.flash_ld=eagle.flash.512k0.ld +thingdev.menu.FlashSize.512K0.build.spiffs_pagesize=256 +thingdev.menu.FlashSize.512K0.upload.maximum_size=499696 +thingdev.menu.FlashSize.512K0.build.rfcal_addr=0x7C000 +thingdev.menu.FlashSize.512K64=512K (64K SPIFFS) +thingdev.menu.FlashSize.512K64.build.flash_size=512K +thingdev.menu.FlashSize.512K64.build.flash_size_bytes=0x80000 +thingdev.menu.FlashSize.512K64.build.flash_ld=eagle.flash.512k64.ld +thingdev.menu.FlashSize.512K64.build.spiffs_pagesize=256 +thingdev.menu.FlashSize.512K64.upload.maximum_size=434160 +thingdev.menu.FlashSize.512K64.build.rfcal_addr=0x7C000 +thingdev.menu.FlashSize.512K64.build.spiffs_start=0x6B000 +thingdev.menu.FlashSize.512K64.build.spiffs_end=0x7B000 +thingdev.menu.FlashSize.512K64.build.spiffs_blocksize=4096 +thingdev.menu.FlashSize.512K128=512K (128K SPIFFS) +thingdev.menu.FlashSize.512K128.build.flash_size=512K +thingdev.menu.FlashSize.512K128.build.flash_size_bytes=0x80000 +thingdev.menu.FlashSize.512K128.build.flash_ld=eagle.flash.512k128.ld +thingdev.menu.FlashSize.512K128.build.spiffs_pagesize=256 +thingdev.menu.FlashSize.512K128.upload.maximum_size=368624 +thingdev.menu.FlashSize.512K128.build.rfcal_addr=0x7C000 +thingdev.menu.FlashSize.512K128.build.spiffs_start=0x5B000 +thingdev.menu.FlashSize.512K128.build.spiffs_end=0x7B000 +thingdev.menu.FlashSize.512K128.build.spiffs_blocksize=4096 +thingdev.menu.LwIPVariant.v2mss536=v2 Lower Memory +thingdev.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +thingdev.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +thingdev.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +thingdev.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +thingdev.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +thingdev.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +thingdev.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +thingdev.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +thingdev.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +thingdev.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +thingdev.menu.LwIPVariant.OpenSource=v1.4 Compile from source +thingdev.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +thingdev.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +thingdev.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +thingdev.menu.Debug.Disabled=Disabled +thingdev.menu.Debug.Disabled.build.debug_port= +thingdev.menu.Debug.Serial=Serial +thingdev.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +thingdev.menu.Debug.Serial1=Serial1 +thingdev.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +thingdev.menu.DebugLevel.None____=None +thingdev.menu.DebugLevel.None____.build.debug_level= +thingdev.menu.DebugLevel.SSL=SSL +thingdev.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +thingdev.menu.DebugLevel.TLS_MEM=TLS_MEM +thingdev.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +thingdev.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +thingdev.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +thingdev.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +thingdev.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +thingdev.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +thingdev.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +thingdev.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +thingdev.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +thingdev.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +thingdev.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +thingdev.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +thingdev.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +thingdev.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +thingdev.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +thingdev.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +thingdev.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +thingdev.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +thingdev.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +thingdev.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +thingdev.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +thingdev.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +thingdev.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +thingdev.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +thingdev.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +thingdev.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +thingdev.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +thingdev.menu.DebugLevel.CORE=CORE +thingdev.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +thingdev.menu.DebugLevel.WIFI=WIFI +thingdev.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +thingdev.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +thingdev.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +thingdev.menu.DebugLevel.UPDATER=UPDATER +thingdev.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +thingdev.menu.DebugLevel.OTA=OTA +thingdev.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +thingdev.menu.DebugLevel.OOM=OOM +thingdev.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +thingdev.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +thingdev.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +thingdev.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +thingdev.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +thingdev.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +thingdev.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +thingdev.menu.FlashErase.none=Only Sketch +thingdev.menu.FlashErase.none.upload.erase_cmd= +thingdev.menu.FlashErase.sdk=Sketch + WiFi Settings +thingdev.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +thingdev.menu.FlashErase.all=All Flash Contents +thingdev.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +thingdev.menu.UploadSpeed.115200=115200 +thingdev.menu.UploadSpeed.115200.upload.speed=115200 +thingdev.menu.UploadSpeed.9600=9600 +thingdev.menu.UploadSpeed.9600.upload.speed=9600 +thingdev.menu.UploadSpeed.57600=57600 +thingdev.menu.UploadSpeed.57600.upload.speed=57600 +thingdev.menu.UploadSpeed.230400.linux=230400 +thingdev.menu.UploadSpeed.230400.macosx=230400 +thingdev.menu.UploadSpeed.230400.upload.speed=230400 +thingdev.menu.UploadSpeed.256000.windows=256000 +thingdev.menu.UploadSpeed.256000.upload.speed=256000 +thingdev.menu.UploadSpeed.460800.linux=460800 +thingdev.menu.UploadSpeed.460800.macosx=460800 +thingdev.menu.UploadSpeed.460800.upload.speed=460800 +thingdev.menu.UploadSpeed.512000.windows=512000 +thingdev.menu.UploadSpeed.512000.upload.speed=512000 +thingdev.menu.UploadSpeed.921600=921600 +thingdev.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +esp210.name=SweetPea ESP-210 +esp210.build.board=ESP8266_ESP210 +esp210.upload.tool=esptool +esp210.upload.maximum_data_size=81920 +esp210.upload.wait_for_upload_port=true +esp210.upload.erase_cmd= +esp210.serial.disableDTR=true +esp210.serial.disableRTS=true +esp210.build.mcu=esp8266 +esp210.build.core=esp8266 +esp210.build.variant=generic +esp210.build.spiffs_pagesize=256 +esp210.build.debug_port= +esp210.build.debug_level= +esp210.menu.CpuFrequency.80=80 MHz +esp210.menu.CpuFrequency.80.build.f_cpu=80000000L +esp210.menu.CpuFrequency.160=160 MHz +esp210.menu.CpuFrequency.160.build.f_cpu=160000000L +esp210.upload.resetmethod=ck +esp210.build.flash_mode=qio +esp210.build.flash_freq=40 +esp210.menu.FlashSize.4M1M=4M (1M SPIFFS) +esp210.menu.FlashSize.4M1M.build.flash_size=4M +esp210.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +esp210.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +esp210.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +esp210.menu.FlashSize.4M1M.upload.maximum_size=1044464 +esp210.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +esp210.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +esp210.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +esp210.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +esp210.menu.FlashSize.4M3M=4M (3M SPIFFS) +esp210.menu.FlashSize.4M3M.build.flash_size=4M +esp210.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +esp210.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +esp210.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +esp210.menu.FlashSize.4M3M.upload.maximum_size=1044464 +esp210.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +esp210.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +esp210.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +esp210.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +esp210.menu.LwIPVariant.v2mss536=v2 Lower Memory +esp210.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +esp210.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +esp210.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +esp210.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +esp210.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +esp210.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +esp210.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +esp210.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +esp210.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +esp210.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +esp210.menu.LwIPVariant.OpenSource=v1.4 Compile from source +esp210.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +esp210.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +esp210.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +esp210.menu.Debug.Disabled=Disabled +esp210.menu.Debug.Disabled.build.debug_port= +esp210.menu.Debug.Serial=Serial +esp210.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +esp210.menu.Debug.Serial1=Serial1 +esp210.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +esp210.menu.DebugLevel.None____=None +esp210.menu.DebugLevel.None____.build.debug_level= +esp210.menu.DebugLevel.SSL=SSL +esp210.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +esp210.menu.DebugLevel.TLS_MEM=TLS_MEM +esp210.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +esp210.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +esp210.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +esp210.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +esp210.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +esp210.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +esp210.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +esp210.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +esp210.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +esp210.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +esp210.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +esp210.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +esp210.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +esp210.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +esp210.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +esp210.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +esp210.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +esp210.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +esp210.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +esp210.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +esp210.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +esp210.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +esp210.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +esp210.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +esp210.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +esp210.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +esp210.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +esp210.menu.DebugLevel.CORE=CORE +esp210.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +esp210.menu.DebugLevel.WIFI=WIFI +esp210.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +esp210.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +esp210.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +esp210.menu.DebugLevel.UPDATER=UPDATER +esp210.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +esp210.menu.DebugLevel.OTA=OTA +esp210.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +esp210.menu.DebugLevel.OOM=OOM +esp210.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +esp210.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +esp210.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +esp210.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +esp210.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +esp210.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +esp210.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +esp210.menu.FlashErase.none=Only Sketch +esp210.menu.FlashErase.none.upload.erase_cmd= +esp210.menu.FlashErase.sdk=Sketch + WiFi Settings +esp210.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +esp210.menu.FlashErase.all=All Flash Contents +esp210.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +esp210.menu.UploadSpeed.57600=57600 +esp210.menu.UploadSpeed.57600.upload.speed=57600 +esp210.menu.UploadSpeed.9600=9600 +esp210.menu.UploadSpeed.9600.upload.speed=9600 +esp210.menu.UploadSpeed.115200=115200 +esp210.menu.UploadSpeed.115200.upload.speed=115200 +esp210.menu.UploadSpeed.230400.linux=230400 +esp210.menu.UploadSpeed.230400.macosx=230400 +esp210.menu.UploadSpeed.230400.upload.speed=230400 +esp210.menu.UploadSpeed.256000.windows=256000 +esp210.menu.UploadSpeed.256000.upload.speed=256000 +esp210.menu.UploadSpeed.460800.linux=460800 +esp210.menu.UploadSpeed.460800.macosx=460800 +esp210.menu.UploadSpeed.460800.upload.speed=460800 +esp210.menu.UploadSpeed.512000.windows=512000 +esp210.menu.UploadSpeed.512000.upload.speed=512000 +esp210.menu.UploadSpeed.921600=921600 +esp210.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +d1_mini.name=WeMos D1 R2 & mini +d1_mini.build.board=ESP8266_WEMOS_D1MINI +d1_mini.build.variant=d1_mini +d1_mini.upload.tool=esptool +d1_mini.upload.maximum_data_size=81920 +d1_mini.upload.wait_for_upload_port=true +d1_mini.upload.erase_cmd= +d1_mini.serial.disableDTR=true +d1_mini.serial.disableRTS=true +d1_mini.build.mcu=esp8266 +d1_mini.build.core=esp8266 +d1_mini.build.spiffs_pagesize=256 +d1_mini.build.debug_port= +d1_mini.build.debug_level= +d1_mini.menu.CpuFrequency.80=80 MHz +d1_mini.menu.CpuFrequency.80.build.f_cpu=80000000L +d1_mini.menu.CpuFrequency.160=160 MHz +d1_mini.menu.CpuFrequency.160.build.f_cpu=160000000L +d1_mini.upload.resetmethod=nodemcu +d1_mini.build.flash_mode=dio +d1_mini.build.flash_freq=40 +d1_mini.menu.FlashSize.4M1M=4M (1M SPIFFS) +d1_mini.menu.FlashSize.4M1M.build.flash_size=4M +d1_mini.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +d1_mini.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +d1_mini.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +d1_mini.menu.FlashSize.4M1M.upload.maximum_size=1044464 +d1_mini.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +d1_mini.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +d1_mini.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +d1_mini.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +d1_mini.menu.FlashSize.4M3M=4M (3M SPIFFS) +d1_mini.menu.FlashSize.4M3M.build.flash_size=4M +d1_mini.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +d1_mini.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +d1_mini.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +d1_mini.menu.FlashSize.4M3M.upload.maximum_size=1044464 +d1_mini.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +d1_mini.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +d1_mini.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +d1_mini.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +d1_mini.menu.LwIPVariant.v2mss536=v2 Lower Memory +d1_mini.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +d1_mini.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +d1_mini.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +d1_mini.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +d1_mini.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +d1_mini.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +d1_mini.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +d1_mini.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +d1_mini.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +d1_mini.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +d1_mini.menu.LwIPVariant.OpenSource=v1.4 Compile from source +d1_mini.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +d1_mini.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +d1_mini.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +d1_mini.menu.Debug.Disabled=Disabled +d1_mini.menu.Debug.Disabled.build.debug_port= +d1_mini.menu.Debug.Serial=Serial +d1_mini.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +d1_mini.menu.Debug.Serial1=Serial1 +d1_mini.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +d1_mini.menu.DebugLevel.None____=None +d1_mini.menu.DebugLevel.None____.build.debug_level= +d1_mini.menu.DebugLevel.SSL=SSL +d1_mini.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +d1_mini.menu.DebugLevel.TLS_MEM=TLS_MEM +d1_mini.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +d1_mini.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +d1_mini.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +d1_mini.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +d1_mini.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +d1_mini.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +d1_mini.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +d1_mini.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +d1_mini.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +d1_mini.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +d1_mini.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +d1_mini.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +d1_mini.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +d1_mini.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +d1_mini.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +d1_mini.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +d1_mini.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +d1_mini.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +d1_mini.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +d1_mini.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +d1_mini.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +d1_mini.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +d1_mini.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +d1_mini.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini.menu.DebugLevel.CORE=CORE +d1_mini.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +d1_mini.menu.DebugLevel.WIFI=WIFI +d1_mini.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +d1_mini.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +d1_mini.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +d1_mini.menu.DebugLevel.UPDATER=UPDATER +d1_mini.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +d1_mini.menu.DebugLevel.OTA=OTA +d1_mini.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +d1_mini.menu.DebugLevel.OOM=OOM +d1_mini.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1_mini.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +d1_mini.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1_mini.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +d1_mini.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1_mini.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +d1_mini.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +d1_mini.menu.FlashErase.none=Only Sketch +d1_mini.menu.FlashErase.none.upload.erase_cmd= +d1_mini.menu.FlashErase.sdk=Sketch + WiFi Settings +d1_mini.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +d1_mini.menu.FlashErase.all=All Flash Contents +d1_mini.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +d1_mini.menu.UploadSpeed.921600=921600 +d1_mini.menu.UploadSpeed.921600.upload.speed=921600 +d1_mini.menu.UploadSpeed.9600=9600 +d1_mini.menu.UploadSpeed.9600.upload.speed=9600 +d1_mini.menu.UploadSpeed.57600=57600 +d1_mini.menu.UploadSpeed.57600.upload.speed=57600 +d1_mini.menu.UploadSpeed.115200=115200 +d1_mini.menu.UploadSpeed.115200.upload.speed=115200 +d1_mini.menu.UploadSpeed.230400.linux=230400 +d1_mini.menu.UploadSpeed.230400.macosx=230400 +d1_mini.menu.UploadSpeed.230400.upload.speed=230400 +d1_mini.menu.UploadSpeed.256000.windows=256000 +d1_mini.menu.UploadSpeed.256000.upload.speed=256000 +d1_mini.menu.UploadSpeed.460800.linux=460800 +d1_mini.menu.UploadSpeed.460800.macosx=460800 +d1_mini.menu.UploadSpeed.460800.upload.speed=460800 +d1_mini.menu.UploadSpeed.512000.windows=512000 +d1_mini.menu.UploadSpeed.512000.upload.speed=512000 + +############################################################## +d1_mini_pro.name=WeMos D1 mini Pro +d1_mini_pro.build.board=ESP8266_WEMOS_D1MINIPRO +d1_mini_pro.build.variant=d1_mini +d1_mini_pro.upload.tool=esptool +d1_mini_pro.upload.maximum_data_size=81920 +d1_mini_pro.upload.wait_for_upload_port=true +d1_mini_pro.upload.erase_cmd= +d1_mini_pro.serial.disableDTR=true +d1_mini_pro.serial.disableRTS=true +d1_mini_pro.build.mcu=esp8266 +d1_mini_pro.build.core=esp8266 +d1_mini_pro.build.spiffs_pagesize=256 +d1_mini_pro.build.debug_port= +d1_mini_pro.build.debug_level= +d1_mini_pro.menu.CpuFrequency.80=80 MHz +d1_mini_pro.menu.CpuFrequency.80.build.f_cpu=80000000L +d1_mini_pro.menu.CpuFrequency.160=160 MHz +d1_mini_pro.menu.CpuFrequency.160.build.f_cpu=160000000L +d1_mini_pro.upload.resetmethod=nodemcu +d1_mini_pro.build.flash_mode=dio +d1_mini_pro.build.flash_freq=40 +d1_mini_pro.menu.FlashSize.16M15M=16M (15M SPIFFS) +d1_mini_pro.menu.FlashSize.16M15M.build.flash_size=16M +d1_mini_pro.menu.FlashSize.16M15M.build.flash_size_bytes=0x1000000 +d1_mini_pro.menu.FlashSize.16M15M.build.flash_ld=eagle.flash.16m.ld +d1_mini_pro.menu.FlashSize.16M15M.build.spiffs_pagesize=256 +d1_mini_pro.menu.FlashSize.16M15M.upload.maximum_size=1044464 +d1_mini_pro.menu.FlashSize.16M15M.build.rfcal_addr=0xFFC000 +d1_mini_pro.menu.FlashSize.16M15M.build.spiffs_start=0x100000 +d1_mini_pro.menu.FlashSize.16M15M.build.spiffs_end=0xFFB000 +d1_mini_pro.menu.FlashSize.16M15M.build.spiffs_blocksize=8192 +d1_mini_pro.menu.LwIPVariant.v2mss536=v2 Lower Memory +d1_mini_pro.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +d1_mini_pro.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +d1_mini_pro.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +d1_mini_pro.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +d1_mini_pro.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +d1_mini_pro.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +d1_mini_pro.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +d1_mini_pro.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +d1_mini_pro.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +d1_mini_pro.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +d1_mini_pro.menu.LwIPVariant.OpenSource=v1.4 Compile from source +d1_mini_pro.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +d1_mini_pro.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +d1_mini_pro.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +d1_mini_pro.menu.Debug.Disabled=Disabled +d1_mini_pro.menu.Debug.Disabled.build.debug_port= +d1_mini_pro.menu.Debug.Serial=Serial +d1_mini_pro.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +d1_mini_pro.menu.Debug.Serial1=Serial1 +d1_mini_pro.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +d1_mini_pro.menu.DebugLevel.None____=None +d1_mini_pro.menu.DebugLevel.None____.build.debug_level= +d1_mini_pro.menu.DebugLevel.SSL=SSL +d1_mini_pro.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +d1_mini_pro.menu.DebugLevel.TLS_MEM=TLS_MEM +d1_mini_pro.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +d1_mini_pro.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +d1_mini_pro.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +d1_mini_pro.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +d1_mini_pro.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +d1_mini_pro.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +d1_mini_pro.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +d1_mini_pro.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +d1_mini_pro.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +d1_mini_pro.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +d1_mini_pro.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +d1_mini_pro.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +d1_mini_pro.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +d1_mini_pro.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +d1_mini_pro.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +d1_mini_pro.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +d1_mini_pro.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini_pro.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +d1_mini_pro.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +d1_mini_pro.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +d1_mini_pro.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +d1_mini_pro.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +d1_mini_pro.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini_pro.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +d1_mini_pro.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini_pro.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +d1_mini_pro.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini_pro.menu.DebugLevel.CORE=CORE +d1_mini_pro.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +d1_mini_pro.menu.DebugLevel.WIFI=WIFI +d1_mini_pro.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +d1_mini_pro.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +d1_mini_pro.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +d1_mini_pro.menu.DebugLevel.UPDATER=UPDATER +d1_mini_pro.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +d1_mini_pro.menu.DebugLevel.OTA=OTA +d1_mini_pro.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +d1_mini_pro.menu.DebugLevel.OOM=OOM +d1_mini_pro.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1_mini_pro.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +d1_mini_pro.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1_mini_pro.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +d1_mini_pro.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1_mini_pro.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +d1_mini_pro.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +d1_mini_pro.menu.FlashErase.none=Only Sketch +d1_mini_pro.menu.FlashErase.none.upload.erase_cmd= +d1_mini_pro.menu.FlashErase.sdk=Sketch + WiFi Settings +d1_mini_pro.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +d1_mini_pro.menu.FlashErase.all=All Flash Contents +d1_mini_pro.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +d1_mini_pro.menu.UploadSpeed.921600=921600 +d1_mini_pro.menu.UploadSpeed.921600.upload.speed=921600 +d1_mini_pro.menu.UploadSpeed.9600=9600 +d1_mini_pro.menu.UploadSpeed.9600.upload.speed=9600 +d1_mini_pro.menu.UploadSpeed.57600=57600 +d1_mini_pro.menu.UploadSpeed.57600.upload.speed=57600 +d1_mini_pro.menu.UploadSpeed.115200=115200 +d1_mini_pro.menu.UploadSpeed.115200.upload.speed=115200 +d1_mini_pro.menu.UploadSpeed.230400.linux=230400 +d1_mini_pro.menu.UploadSpeed.230400.macosx=230400 +d1_mini_pro.menu.UploadSpeed.230400.upload.speed=230400 +d1_mini_pro.menu.UploadSpeed.256000.windows=256000 +d1_mini_pro.menu.UploadSpeed.256000.upload.speed=256000 +d1_mini_pro.menu.UploadSpeed.460800.linux=460800 +d1_mini_pro.menu.UploadSpeed.460800.macosx=460800 +d1_mini_pro.menu.UploadSpeed.460800.upload.speed=460800 +d1_mini_pro.menu.UploadSpeed.512000.windows=512000 +d1_mini_pro.menu.UploadSpeed.512000.upload.speed=512000 + +############################################################## +d1_mini_lite.name=WeMos D1 mini Lite +d1_mini_lite.build.board=ESP8266_WEMOS_D1MINILITE +d1_mini_lite.build.variant=d1_mini +d1_mini_lite.upload.tool=esptool +d1_mini_lite.upload.maximum_data_size=81920 +d1_mini_lite.upload.wait_for_upload_port=true +d1_mini_lite.upload.erase_cmd= +d1_mini_lite.serial.disableDTR=true +d1_mini_lite.serial.disableRTS=true +d1_mini_lite.build.mcu=esp8266 +d1_mini_lite.build.core=esp8266 +d1_mini_lite.build.spiffs_pagesize=256 +d1_mini_lite.build.debug_port= +d1_mini_lite.build.debug_level= +d1_mini_lite.menu.CpuFrequency.80=80 MHz +d1_mini_lite.menu.CpuFrequency.80.build.f_cpu=80000000L +d1_mini_lite.menu.CpuFrequency.160=160 MHz +d1_mini_lite.menu.CpuFrequency.160.build.f_cpu=160000000L +d1_mini_lite.upload.resetmethod=nodemcu +d1_mini_lite.build.flash_mode=dout +d1_mini_lite.build.flash_freq=40 +d1_mini_lite.menu.FlashSize.1M0=1M (no SPIFFS) +d1_mini_lite.menu.FlashSize.1M0.build.flash_size=1M +d1_mini_lite.menu.FlashSize.1M0.build.flash_size_bytes=0x100000 +d1_mini_lite.menu.FlashSize.1M0.build.flash_ld=eagle.flash.1m0.ld +d1_mini_lite.menu.FlashSize.1M0.build.spiffs_pagesize=256 +d1_mini_lite.menu.FlashSize.1M0.upload.maximum_size=1023984 +d1_mini_lite.menu.FlashSize.1M0.build.rfcal_addr=0xFC000 +d1_mini_lite.menu.FlashSize.1M64=1M (64K SPIFFS) +d1_mini_lite.menu.FlashSize.1M64.build.flash_size=1M +d1_mini_lite.menu.FlashSize.1M64.build.flash_size_bytes=0x100000 +d1_mini_lite.menu.FlashSize.1M64.build.flash_ld=eagle.flash.1m64.ld +d1_mini_lite.menu.FlashSize.1M64.build.spiffs_pagesize=256 +d1_mini_lite.menu.FlashSize.1M64.upload.maximum_size=958448 +d1_mini_lite.menu.FlashSize.1M64.build.rfcal_addr=0xFC000 +d1_mini_lite.menu.FlashSize.1M64.build.spiffs_start=0xEB000 +d1_mini_lite.menu.FlashSize.1M64.build.spiffs_end=0xFB000 +d1_mini_lite.menu.FlashSize.1M64.build.spiffs_blocksize=4096 +d1_mini_lite.menu.FlashSize.1M128=1M (128K SPIFFS) +d1_mini_lite.menu.FlashSize.1M128.build.flash_size=1M +d1_mini_lite.menu.FlashSize.1M128.build.flash_size_bytes=0x100000 +d1_mini_lite.menu.FlashSize.1M128.build.flash_ld=eagle.flash.1m128.ld +d1_mini_lite.menu.FlashSize.1M128.build.spiffs_pagesize=256 +d1_mini_lite.menu.FlashSize.1M128.upload.maximum_size=892912 +d1_mini_lite.menu.FlashSize.1M128.build.rfcal_addr=0xFC000 +d1_mini_lite.menu.FlashSize.1M128.build.spiffs_start=0xDB000 +d1_mini_lite.menu.FlashSize.1M128.build.spiffs_end=0xFB000 +d1_mini_lite.menu.FlashSize.1M128.build.spiffs_blocksize=4096 +d1_mini_lite.menu.FlashSize.1M144=1M (144K SPIFFS) +d1_mini_lite.menu.FlashSize.1M144.build.flash_size=1M +d1_mini_lite.menu.FlashSize.1M144.build.flash_size_bytes=0x100000 +d1_mini_lite.menu.FlashSize.1M144.build.flash_ld=eagle.flash.1m144.ld +d1_mini_lite.menu.FlashSize.1M144.build.spiffs_pagesize=256 +d1_mini_lite.menu.FlashSize.1M144.upload.maximum_size=876528 +d1_mini_lite.menu.FlashSize.1M144.build.rfcal_addr=0xFC000 +d1_mini_lite.menu.FlashSize.1M144.build.spiffs_start=0xD7000 +d1_mini_lite.menu.FlashSize.1M144.build.spiffs_end=0xFB000 +d1_mini_lite.menu.FlashSize.1M144.build.spiffs_blocksize=4096 +d1_mini_lite.menu.FlashSize.1M160=1M (160K SPIFFS) +d1_mini_lite.menu.FlashSize.1M160.build.flash_size=1M +d1_mini_lite.menu.FlashSize.1M160.build.flash_size_bytes=0x100000 +d1_mini_lite.menu.FlashSize.1M160.build.flash_ld=eagle.flash.1m160.ld +d1_mini_lite.menu.FlashSize.1M160.build.spiffs_pagesize=256 +d1_mini_lite.menu.FlashSize.1M160.upload.maximum_size=860144 +d1_mini_lite.menu.FlashSize.1M160.build.rfcal_addr=0xFC000 +d1_mini_lite.menu.FlashSize.1M160.build.spiffs_start=0xD3000 +d1_mini_lite.menu.FlashSize.1M160.build.spiffs_end=0xFB000 +d1_mini_lite.menu.FlashSize.1M160.build.spiffs_blocksize=4096 +d1_mini_lite.menu.FlashSize.1M192=1M (192K SPIFFS) +d1_mini_lite.menu.FlashSize.1M192.build.flash_size=1M +d1_mini_lite.menu.FlashSize.1M192.build.flash_size_bytes=0x100000 +d1_mini_lite.menu.FlashSize.1M192.build.flash_ld=eagle.flash.1m192.ld +d1_mini_lite.menu.FlashSize.1M192.build.spiffs_pagesize=256 +d1_mini_lite.menu.FlashSize.1M192.upload.maximum_size=827376 +d1_mini_lite.menu.FlashSize.1M192.build.rfcal_addr=0xFC000 +d1_mini_lite.menu.FlashSize.1M192.build.spiffs_start=0xCB000 +d1_mini_lite.menu.FlashSize.1M192.build.spiffs_end=0xFB000 +d1_mini_lite.menu.FlashSize.1M192.build.spiffs_blocksize=4096 +d1_mini_lite.menu.FlashSize.1M256=1M (256K SPIFFS) +d1_mini_lite.menu.FlashSize.1M256.build.flash_size=1M +d1_mini_lite.menu.FlashSize.1M256.build.flash_size_bytes=0x100000 +d1_mini_lite.menu.FlashSize.1M256.build.flash_ld=eagle.flash.1m256.ld +d1_mini_lite.menu.FlashSize.1M256.build.spiffs_pagesize=256 +d1_mini_lite.menu.FlashSize.1M256.upload.maximum_size=761840 +d1_mini_lite.menu.FlashSize.1M256.build.rfcal_addr=0xFC000 +d1_mini_lite.menu.FlashSize.1M256.build.spiffs_start=0xBB000 +d1_mini_lite.menu.FlashSize.1M256.build.spiffs_end=0xFB000 +d1_mini_lite.menu.FlashSize.1M256.build.spiffs_blocksize=4096 +d1_mini_lite.menu.FlashSize.1M512=1M (512K SPIFFS) +d1_mini_lite.menu.FlashSize.1M512.build.flash_size=1M +d1_mini_lite.menu.FlashSize.1M512.build.flash_size_bytes=0x100000 +d1_mini_lite.menu.FlashSize.1M512.build.flash_ld=eagle.flash.1m512.ld +d1_mini_lite.menu.FlashSize.1M512.build.spiffs_pagesize=256 +d1_mini_lite.menu.FlashSize.1M512.upload.maximum_size=499696 +d1_mini_lite.menu.FlashSize.1M512.build.rfcal_addr=0xFC000 +d1_mini_lite.menu.FlashSize.1M512.build.spiffs_start=0x7B000 +d1_mini_lite.menu.FlashSize.1M512.build.spiffs_end=0xFB000 +d1_mini_lite.menu.FlashSize.1M512.build.spiffs_blocksize=8192 +d1_mini_lite.menu.LwIPVariant.v2mss536=v2 Lower Memory +d1_mini_lite.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +d1_mini_lite.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +d1_mini_lite.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +d1_mini_lite.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +d1_mini_lite.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +d1_mini_lite.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +d1_mini_lite.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +d1_mini_lite.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +d1_mini_lite.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +d1_mini_lite.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +d1_mini_lite.menu.LwIPVariant.OpenSource=v1.4 Compile from source +d1_mini_lite.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +d1_mini_lite.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +d1_mini_lite.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +d1_mini_lite.menu.Debug.Disabled=Disabled +d1_mini_lite.menu.Debug.Disabled.build.debug_port= +d1_mini_lite.menu.Debug.Serial=Serial +d1_mini_lite.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +d1_mini_lite.menu.Debug.Serial1=Serial1 +d1_mini_lite.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +d1_mini_lite.menu.DebugLevel.None____=None +d1_mini_lite.menu.DebugLevel.None____.build.debug_level= +d1_mini_lite.menu.DebugLevel.SSL=SSL +d1_mini_lite.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +d1_mini_lite.menu.DebugLevel.TLS_MEM=TLS_MEM +d1_mini_lite.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +d1_mini_lite.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +d1_mini_lite.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +d1_mini_lite.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +d1_mini_lite.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +d1_mini_lite.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +d1_mini_lite.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +d1_mini_lite.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +d1_mini_lite.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +d1_mini_lite.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +d1_mini_lite.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +d1_mini_lite.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +d1_mini_lite.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +d1_mini_lite.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +d1_mini_lite.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +d1_mini_lite.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +d1_mini_lite.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini_lite.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +d1_mini_lite.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +d1_mini_lite.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +d1_mini_lite.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +d1_mini_lite.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +d1_mini_lite.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini_lite.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +d1_mini_lite.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini_lite.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +d1_mini_lite.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1_mini_lite.menu.DebugLevel.CORE=CORE +d1_mini_lite.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +d1_mini_lite.menu.DebugLevel.WIFI=WIFI +d1_mini_lite.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +d1_mini_lite.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +d1_mini_lite.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +d1_mini_lite.menu.DebugLevel.UPDATER=UPDATER +d1_mini_lite.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +d1_mini_lite.menu.DebugLevel.OTA=OTA +d1_mini_lite.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +d1_mini_lite.menu.DebugLevel.OOM=OOM +d1_mini_lite.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1_mini_lite.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +d1_mini_lite.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1_mini_lite.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +d1_mini_lite.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1_mini_lite.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +d1_mini_lite.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +d1_mini_lite.menu.FlashErase.none=Only Sketch +d1_mini_lite.menu.FlashErase.none.upload.erase_cmd= +d1_mini_lite.menu.FlashErase.sdk=Sketch + WiFi Settings +d1_mini_lite.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +d1_mini_lite.menu.FlashErase.all=All Flash Contents +d1_mini_lite.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +d1_mini_lite.menu.UploadSpeed.921600=921600 +d1_mini_lite.menu.UploadSpeed.921600.upload.speed=921600 +d1_mini_lite.menu.UploadSpeed.9600=9600 +d1_mini_lite.menu.UploadSpeed.9600.upload.speed=9600 +d1_mini_lite.menu.UploadSpeed.57600=57600 +d1_mini_lite.menu.UploadSpeed.57600.upload.speed=57600 +d1_mini_lite.menu.UploadSpeed.115200=115200 +d1_mini_lite.menu.UploadSpeed.115200.upload.speed=115200 +d1_mini_lite.menu.UploadSpeed.230400.linux=230400 +d1_mini_lite.menu.UploadSpeed.230400.macosx=230400 +d1_mini_lite.menu.UploadSpeed.230400.upload.speed=230400 +d1_mini_lite.menu.UploadSpeed.256000.windows=256000 +d1_mini_lite.menu.UploadSpeed.256000.upload.speed=256000 +d1_mini_lite.menu.UploadSpeed.460800.linux=460800 +d1_mini_lite.menu.UploadSpeed.460800.macosx=460800 +d1_mini_lite.menu.UploadSpeed.460800.upload.speed=460800 +d1_mini_lite.menu.UploadSpeed.512000.windows=512000 +d1_mini_lite.menu.UploadSpeed.512000.upload.speed=512000 + +############################################################## +d1.name=WeMos D1 R1 +d1.build.board=ESP8266_WEMOS_D1R1 +d1.build.variant=d1 +d1.upload.tool=esptool +d1.upload.maximum_data_size=81920 +d1.upload.wait_for_upload_port=true +d1.upload.erase_cmd= +d1.serial.disableDTR=true +d1.serial.disableRTS=true +d1.build.mcu=esp8266 +d1.build.core=esp8266 +d1.build.spiffs_pagesize=256 +d1.build.debug_port= +d1.build.debug_level= +d1.menu.CpuFrequency.80=80 MHz +d1.menu.CpuFrequency.80.build.f_cpu=80000000L +d1.menu.CpuFrequency.160=160 MHz +d1.menu.CpuFrequency.160.build.f_cpu=160000000L +d1.upload.resetmethod=nodemcu +d1.build.flash_mode=dio +d1.build.flash_freq=40 +d1.menu.FlashSize.4M1M=4M (1M SPIFFS) +d1.menu.FlashSize.4M1M.build.flash_size=4M +d1.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +d1.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +d1.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +d1.menu.FlashSize.4M1M.upload.maximum_size=1044464 +d1.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +d1.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +d1.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +d1.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +d1.menu.FlashSize.4M3M=4M (3M SPIFFS) +d1.menu.FlashSize.4M3M.build.flash_size=4M +d1.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +d1.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +d1.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +d1.menu.FlashSize.4M3M.upload.maximum_size=1044464 +d1.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +d1.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +d1.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +d1.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +d1.menu.LwIPVariant.v2mss536=v2 Lower Memory +d1.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +d1.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +d1.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +d1.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +d1.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +d1.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +d1.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +d1.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +d1.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +d1.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +d1.menu.LwIPVariant.OpenSource=v1.4 Compile from source +d1.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +d1.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +d1.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +d1.menu.Debug.Disabled=Disabled +d1.menu.Debug.Disabled.build.debug_port= +d1.menu.Debug.Serial=Serial +d1.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +d1.menu.Debug.Serial1=Serial1 +d1.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +d1.menu.DebugLevel.None____=None +d1.menu.DebugLevel.None____.build.debug_level= +d1.menu.DebugLevel.SSL=SSL +d1.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +d1.menu.DebugLevel.TLS_MEM=TLS_MEM +d1.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +d1.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +d1.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +d1.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +d1.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +d1.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +d1.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +d1.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +d1.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +d1.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +d1.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +d1.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +d1.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +d1.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +d1.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +d1.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +d1.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +d1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +d1.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +d1.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +d1.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +d1.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +d1.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +d1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +d1.menu.DebugLevel.CORE=CORE +d1.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +d1.menu.DebugLevel.WIFI=WIFI +d1.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +d1.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +d1.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +d1.menu.DebugLevel.UPDATER=UPDATER +d1.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +d1.menu.DebugLevel.OTA=OTA +d1.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +d1.menu.DebugLevel.OOM=OOM +d1.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +d1.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +d1.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +d1.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +d1.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +d1.menu.FlashErase.none=Only Sketch +d1.menu.FlashErase.none.upload.erase_cmd= +d1.menu.FlashErase.sdk=Sketch + WiFi Settings +d1.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +d1.menu.FlashErase.all=All Flash Contents +d1.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +d1.menu.UploadSpeed.921600=921600 +d1.menu.UploadSpeed.921600.upload.speed=921600 +d1.menu.UploadSpeed.9600=9600 +d1.menu.UploadSpeed.9600.upload.speed=9600 +d1.menu.UploadSpeed.57600=57600 +d1.menu.UploadSpeed.57600.upload.speed=57600 +d1.menu.UploadSpeed.115200=115200 +d1.menu.UploadSpeed.115200.upload.speed=115200 +d1.menu.UploadSpeed.230400.linux=230400 +d1.menu.UploadSpeed.230400.macosx=230400 +d1.menu.UploadSpeed.230400.upload.speed=230400 +d1.menu.UploadSpeed.256000.windows=256000 +d1.menu.UploadSpeed.256000.upload.speed=256000 +d1.menu.UploadSpeed.460800.linux=460800 +d1.menu.UploadSpeed.460800.macosx=460800 +d1.menu.UploadSpeed.460800.upload.speed=460800 +d1.menu.UploadSpeed.512000.windows=512000 +d1.menu.UploadSpeed.512000.upload.speed=512000 + +############################################################## +espino.name=ESPino (ESP-12 Module) +espino.build.board=ESP8266_ESP12 +espino.build.variant=espino +espino.upload.tool=esptool +espino.upload.maximum_data_size=81920 +espino.upload.wait_for_upload_port=true +espino.upload.erase_cmd= +espino.serial.disableDTR=true +espino.serial.disableRTS=true +espino.build.mcu=esp8266 +espino.build.core=esp8266 +espino.build.spiffs_pagesize=256 +espino.build.debug_port= +espino.build.debug_level= +espino.menu.CpuFrequency.80=80 MHz +espino.menu.CpuFrequency.80.build.f_cpu=80000000L +espino.menu.CpuFrequency.160=160 MHz +espino.menu.CpuFrequency.160.build.f_cpu=160000000L +espino.menu.ResetMethod.ck=ck +espino.menu.ResetMethod.ck.upload.resetmethod=ck +espino.menu.ResetMethod.nodemcu=nodemcu +espino.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu +espino.build.flash_mode=qio +espino.build.flash_freq=40 +espino.menu.FlashSize.4M1M=4M (1M SPIFFS) +espino.menu.FlashSize.4M1M.build.flash_size=4M +espino.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +espino.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +espino.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +espino.menu.FlashSize.4M1M.upload.maximum_size=1044464 +espino.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +espino.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +espino.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +espino.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +espino.menu.FlashSize.4M3M=4M (3M SPIFFS) +espino.menu.FlashSize.4M3M.build.flash_size=4M +espino.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +espino.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +espino.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +espino.menu.FlashSize.4M3M.upload.maximum_size=1044464 +espino.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +espino.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +espino.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +espino.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +espino.menu.LwIPVariant.v2mss536=v2 Lower Memory +espino.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +espino.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +espino.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +espino.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +espino.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +espino.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +espino.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +espino.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +espino.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +espino.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +espino.menu.LwIPVariant.OpenSource=v1.4 Compile from source +espino.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +espino.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +espino.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +espino.menu.Debug.Disabled=Disabled +espino.menu.Debug.Disabled.build.debug_port= +espino.menu.Debug.Serial=Serial +espino.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +espino.menu.Debug.Serial1=Serial1 +espino.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +espino.menu.DebugLevel.None____=None +espino.menu.DebugLevel.None____.build.debug_level= +espino.menu.DebugLevel.SSL=SSL +espino.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +espino.menu.DebugLevel.TLS_MEM=TLS_MEM +espino.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +espino.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +espino.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +espino.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +espino.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +espino.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +espino.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +espino.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +espino.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +espino.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +espino.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +espino.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +espino.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +espino.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +espino.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +espino.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +espino.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +espino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +espino.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +espino.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +espino.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +espino.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espino.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +espino.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +espino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espino.menu.DebugLevel.CORE=CORE +espino.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +espino.menu.DebugLevel.WIFI=WIFI +espino.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +espino.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +espino.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +espino.menu.DebugLevel.UPDATER=UPDATER +espino.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +espino.menu.DebugLevel.OTA=OTA +espino.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +espino.menu.DebugLevel.OOM=OOM +espino.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espino.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +espino.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +espino.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espino.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +espino.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +espino.menu.FlashErase.none=Only Sketch +espino.menu.FlashErase.none.upload.erase_cmd= +espino.menu.FlashErase.sdk=Sketch + WiFi Settings +espino.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +espino.menu.FlashErase.all=All Flash Contents +espino.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +espino.menu.UploadSpeed.115200=115200 +espino.menu.UploadSpeed.115200.upload.speed=115200 +espino.menu.UploadSpeed.9600=9600 +espino.menu.UploadSpeed.9600.upload.speed=9600 +espino.menu.UploadSpeed.57600=57600 +espino.menu.UploadSpeed.57600.upload.speed=57600 +espino.menu.UploadSpeed.230400.linux=230400 +espino.menu.UploadSpeed.230400.macosx=230400 +espino.menu.UploadSpeed.230400.upload.speed=230400 +espino.menu.UploadSpeed.256000.windows=256000 +espino.menu.UploadSpeed.256000.upload.speed=256000 +espino.menu.UploadSpeed.460800.linux=460800 +espino.menu.UploadSpeed.460800.macosx=460800 +espino.menu.UploadSpeed.460800.upload.speed=460800 +espino.menu.UploadSpeed.512000.windows=512000 +espino.menu.UploadSpeed.512000.upload.speed=512000 +espino.menu.UploadSpeed.921600=921600 +espino.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +espinotee.name=ThaiEasyElec's ESPino +espinotee.build.board=ESP8266_ESP13 +espinotee.build.variant=espinotee +espinotee.upload.tool=esptool +espinotee.upload.maximum_data_size=81920 +espinotee.upload.wait_for_upload_port=true +espinotee.upload.erase_cmd= +espinotee.serial.disableDTR=true +espinotee.serial.disableRTS=true +espinotee.build.mcu=esp8266 +espinotee.build.core=esp8266 +espinotee.build.spiffs_pagesize=256 +espinotee.build.debug_port= +espinotee.build.debug_level= +espinotee.menu.CpuFrequency.80=80 MHz +espinotee.menu.CpuFrequency.80.build.f_cpu=80000000L +espinotee.menu.CpuFrequency.160=160 MHz +espinotee.menu.CpuFrequency.160.build.f_cpu=160000000L +espinotee.upload.resetmethod=nodemcu +espinotee.build.flash_mode=qio +espinotee.build.flash_freq=40 +espinotee.menu.FlashSize.4M1M=4M (1M SPIFFS) +espinotee.menu.FlashSize.4M1M.build.flash_size=4M +espinotee.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +espinotee.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +espinotee.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +espinotee.menu.FlashSize.4M1M.upload.maximum_size=1044464 +espinotee.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +espinotee.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +espinotee.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +espinotee.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +espinotee.menu.FlashSize.4M3M=4M (3M SPIFFS) +espinotee.menu.FlashSize.4M3M.build.flash_size=4M +espinotee.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +espinotee.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +espinotee.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +espinotee.menu.FlashSize.4M3M.upload.maximum_size=1044464 +espinotee.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +espinotee.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +espinotee.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +espinotee.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +espinotee.menu.LwIPVariant.v2mss536=v2 Lower Memory +espinotee.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +espinotee.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +espinotee.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +espinotee.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +espinotee.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +espinotee.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +espinotee.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +espinotee.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +espinotee.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +espinotee.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +espinotee.menu.LwIPVariant.OpenSource=v1.4 Compile from source +espinotee.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +espinotee.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +espinotee.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +espinotee.menu.Debug.Disabled=Disabled +espinotee.menu.Debug.Disabled.build.debug_port= +espinotee.menu.Debug.Serial=Serial +espinotee.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +espinotee.menu.Debug.Serial1=Serial1 +espinotee.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +espinotee.menu.DebugLevel.None____=None +espinotee.menu.DebugLevel.None____.build.debug_level= +espinotee.menu.DebugLevel.SSL=SSL +espinotee.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +espinotee.menu.DebugLevel.TLS_MEM=TLS_MEM +espinotee.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +espinotee.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +espinotee.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +espinotee.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +espinotee.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +espinotee.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +espinotee.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +espinotee.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +espinotee.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +espinotee.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +espinotee.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +espinotee.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +espinotee.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +espinotee.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +espinotee.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +espinotee.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +espinotee.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espinotee.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +espinotee.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +espinotee.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +espinotee.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +espinotee.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +espinotee.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espinotee.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +espinotee.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espinotee.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +espinotee.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +espinotee.menu.DebugLevel.CORE=CORE +espinotee.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +espinotee.menu.DebugLevel.WIFI=WIFI +espinotee.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +espinotee.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +espinotee.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +espinotee.menu.DebugLevel.UPDATER=UPDATER +espinotee.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +espinotee.menu.DebugLevel.OTA=OTA +espinotee.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +espinotee.menu.DebugLevel.OOM=OOM +espinotee.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espinotee.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +espinotee.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espinotee.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +espinotee.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +espinotee.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +espinotee.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +espinotee.menu.FlashErase.none=Only Sketch +espinotee.menu.FlashErase.none.upload.erase_cmd= +espinotee.menu.FlashErase.sdk=Sketch + WiFi Settings +espinotee.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +espinotee.menu.FlashErase.all=All Flash Contents +espinotee.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +espinotee.menu.UploadSpeed.115200=115200 +espinotee.menu.UploadSpeed.115200.upload.speed=115200 +espinotee.menu.UploadSpeed.9600=9600 +espinotee.menu.UploadSpeed.9600.upload.speed=9600 +espinotee.menu.UploadSpeed.57600=57600 +espinotee.menu.UploadSpeed.57600.upload.speed=57600 +espinotee.menu.UploadSpeed.230400.linux=230400 +espinotee.menu.UploadSpeed.230400.macosx=230400 +espinotee.menu.UploadSpeed.230400.upload.speed=230400 +espinotee.menu.UploadSpeed.256000.windows=256000 +espinotee.menu.UploadSpeed.256000.upload.speed=256000 +espinotee.menu.UploadSpeed.460800.linux=460800 +espinotee.menu.UploadSpeed.460800.macosx=460800 +espinotee.menu.UploadSpeed.460800.upload.speed=460800 +espinotee.menu.UploadSpeed.512000.windows=512000 +espinotee.menu.UploadSpeed.512000.upload.speed=512000 +espinotee.menu.UploadSpeed.921600=921600 +espinotee.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +wifinfo.name=WifInfo +wifinfo.menu.ESPModule.ESP12.build.board=ESP8266_ESP12 +wifinfo.menu.ESPModule.ESP12.upload.maximum_size=1044464 +wifinfo.menu.ESPModule.ESP12.build.spiffs_pagesize=256 +wifinfo.menu.ESPModule.ESP12.build.flash_ld=eagle.flash.4m1m.ld +wifinfo.menu.ESPModule.ESP07192.build.spiffs_blocksize=4096 +wifinfo.menu.ESPModule.ESP07192.build.spiffs_end=0xFB000 +wifinfo.menu.ESPModule.ESP12=ESP12 (4M/1M SPIFFS) +wifinfo.menu.ESPModule.ESP12.build.spiffs_start=0x300000 +wifinfo.menu.ESPModule.ESP12.build.spiffs_end=0x3FB000 +wifinfo.menu.ESPModule.ESP07192.build.spiffs_start=0xCB000 +wifinfo.menu.ESPModule.ESP07192.build.board=ESP8266_ESP07 +wifinfo.menu.ESPModule.ESP12.build.spiffs_blocksize=8192 +wifinfo.menu.ESPModule.ESP12.build.flash_size=4M +wifinfo.build.board=WIFINFO +wifinfo.build.variant=wifinfo +wifinfo.menu.ESPModule.ESP07192.build.flash_ld=eagle.flash.1m192.ld +wifinfo.menu.ESPModule.ESP07192.build.flash_size=1M +wifinfo.menu.ESPModule.ESP07192=ESP07 (1M/192K SPIFFS) +wifinfo.menu.ESPModule.ESP07192.upload.maximum_size=827376 +wifinfo.upload.tool=esptool +wifinfo.upload.maximum_data_size=81920 +wifinfo.upload.wait_for_upload_port=true +wifinfo.upload.erase_cmd= +wifinfo.serial.disableDTR=true +wifinfo.serial.disableRTS=true +wifinfo.build.mcu=esp8266 +wifinfo.build.core=esp8266 +wifinfo.build.spiffs_pagesize=256 +wifinfo.build.debug_port= +wifinfo.build.debug_level= +wifinfo.menu.CpuFrequency.80=80 MHz +wifinfo.menu.CpuFrequency.80.build.f_cpu=80000000L +wifinfo.menu.CpuFrequency.160=160 MHz +wifinfo.menu.CpuFrequency.160.build.f_cpu=160000000L +wifinfo.upload.resetmethod=nodemcu +wifinfo.build.flash_mode=qio +wifinfo.menu.FlashFreq.40=40MHz +wifinfo.menu.FlashFreq.40.build.flash_freq=40 +wifinfo.menu.FlashFreq.80=80MHz +wifinfo.menu.FlashFreq.80.build.flash_freq=80 +wifinfo.menu.FlashSize.1M0=1M (no SPIFFS) +wifinfo.menu.FlashSize.1M0.build.flash_size=1M +wifinfo.menu.FlashSize.1M0.build.flash_size_bytes=0x100000 +wifinfo.menu.FlashSize.1M0.build.flash_ld=eagle.flash.1m0.ld +wifinfo.menu.FlashSize.1M0.build.spiffs_pagesize=256 +wifinfo.menu.FlashSize.1M0.upload.maximum_size=1023984 +wifinfo.menu.FlashSize.1M0.build.rfcal_addr=0xFC000 +wifinfo.menu.FlashSize.1M64=1M (64K SPIFFS) +wifinfo.menu.FlashSize.1M64.build.flash_size=1M +wifinfo.menu.FlashSize.1M64.build.flash_size_bytes=0x100000 +wifinfo.menu.FlashSize.1M64.build.flash_ld=eagle.flash.1m64.ld +wifinfo.menu.FlashSize.1M64.build.spiffs_pagesize=256 +wifinfo.menu.FlashSize.1M64.upload.maximum_size=958448 +wifinfo.menu.FlashSize.1M64.build.rfcal_addr=0xFC000 +wifinfo.menu.FlashSize.1M64.build.spiffs_start=0xEB000 +wifinfo.menu.FlashSize.1M64.build.spiffs_end=0xFB000 +wifinfo.menu.FlashSize.1M64.build.spiffs_blocksize=4096 +wifinfo.menu.FlashSize.1M128=1M (128K SPIFFS) +wifinfo.menu.FlashSize.1M128.build.flash_size=1M +wifinfo.menu.FlashSize.1M128.build.flash_size_bytes=0x100000 +wifinfo.menu.FlashSize.1M128.build.flash_ld=eagle.flash.1m128.ld +wifinfo.menu.FlashSize.1M128.build.spiffs_pagesize=256 +wifinfo.menu.FlashSize.1M128.upload.maximum_size=892912 +wifinfo.menu.FlashSize.1M128.build.rfcal_addr=0xFC000 +wifinfo.menu.FlashSize.1M128.build.spiffs_start=0xDB000 +wifinfo.menu.FlashSize.1M128.build.spiffs_end=0xFB000 +wifinfo.menu.FlashSize.1M128.build.spiffs_blocksize=4096 +wifinfo.menu.FlashSize.1M144=1M (144K SPIFFS) +wifinfo.menu.FlashSize.1M144.build.flash_size=1M +wifinfo.menu.FlashSize.1M144.build.flash_size_bytes=0x100000 +wifinfo.menu.FlashSize.1M144.build.flash_ld=eagle.flash.1m144.ld +wifinfo.menu.FlashSize.1M144.build.spiffs_pagesize=256 +wifinfo.menu.FlashSize.1M144.upload.maximum_size=876528 +wifinfo.menu.FlashSize.1M144.build.rfcal_addr=0xFC000 +wifinfo.menu.FlashSize.1M144.build.spiffs_start=0xD7000 +wifinfo.menu.FlashSize.1M144.build.spiffs_end=0xFB000 +wifinfo.menu.FlashSize.1M144.build.spiffs_blocksize=4096 +wifinfo.menu.FlashSize.1M160=1M (160K SPIFFS) +wifinfo.menu.FlashSize.1M160.build.flash_size=1M +wifinfo.menu.FlashSize.1M160.build.flash_size_bytes=0x100000 +wifinfo.menu.FlashSize.1M160.build.flash_ld=eagle.flash.1m160.ld +wifinfo.menu.FlashSize.1M160.build.spiffs_pagesize=256 +wifinfo.menu.FlashSize.1M160.upload.maximum_size=860144 +wifinfo.menu.FlashSize.1M160.build.rfcal_addr=0xFC000 +wifinfo.menu.FlashSize.1M160.build.spiffs_start=0xD3000 +wifinfo.menu.FlashSize.1M160.build.spiffs_end=0xFB000 +wifinfo.menu.FlashSize.1M160.build.spiffs_blocksize=4096 +wifinfo.menu.FlashSize.1M192=1M (192K SPIFFS) +wifinfo.menu.FlashSize.1M192.build.flash_size=1M +wifinfo.menu.FlashSize.1M192.build.flash_size_bytes=0x100000 +wifinfo.menu.FlashSize.1M192.build.flash_ld=eagle.flash.1m192.ld +wifinfo.menu.FlashSize.1M192.build.spiffs_pagesize=256 +wifinfo.menu.FlashSize.1M192.upload.maximum_size=827376 +wifinfo.menu.FlashSize.1M192.build.rfcal_addr=0xFC000 +wifinfo.menu.FlashSize.1M192.build.spiffs_start=0xCB000 +wifinfo.menu.FlashSize.1M192.build.spiffs_end=0xFB000 +wifinfo.menu.FlashSize.1M192.build.spiffs_blocksize=4096 +wifinfo.menu.FlashSize.1M256=1M (256K SPIFFS) +wifinfo.menu.FlashSize.1M256.build.flash_size=1M +wifinfo.menu.FlashSize.1M256.build.flash_size_bytes=0x100000 +wifinfo.menu.FlashSize.1M256.build.flash_ld=eagle.flash.1m256.ld +wifinfo.menu.FlashSize.1M256.build.spiffs_pagesize=256 +wifinfo.menu.FlashSize.1M256.upload.maximum_size=761840 +wifinfo.menu.FlashSize.1M256.build.rfcal_addr=0xFC000 +wifinfo.menu.FlashSize.1M256.build.spiffs_start=0xBB000 +wifinfo.menu.FlashSize.1M256.build.spiffs_end=0xFB000 +wifinfo.menu.FlashSize.1M256.build.spiffs_blocksize=4096 +wifinfo.menu.FlashSize.1M512=1M (512K SPIFFS) +wifinfo.menu.FlashSize.1M512.build.flash_size=1M +wifinfo.menu.FlashSize.1M512.build.flash_size_bytes=0x100000 +wifinfo.menu.FlashSize.1M512.build.flash_ld=eagle.flash.1m512.ld +wifinfo.menu.FlashSize.1M512.build.spiffs_pagesize=256 +wifinfo.menu.FlashSize.1M512.upload.maximum_size=499696 +wifinfo.menu.FlashSize.1M512.build.rfcal_addr=0xFC000 +wifinfo.menu.FlashSize.1M512.build.spiffs_start=0x7B000 +wifinfo.menu.FlashSize.1M512.build.spiffs_end=0xFB000 +wifinfo.menu.FlashSize.1M512.build.spiffs_blocksize=8192 +wifinfo.menu.LwIPVariant.v2mss536=v2 Lower Memory +wifinfo.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +wifinfo.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +wifinfo.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +wifinfo.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +wifinfo.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +wifinfo.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +wifinfo.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +wifinfo.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +wifinfo.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +wifinfo.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +wifinfo.menu.LwIPVariant.OpenSource=v1.4 Compile from source +wifinfo.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +wifinfo.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +wifinfo.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +wifinfo.menu.Debug.Disabled=Disabled +wifinfo.menu.Debug.Disabled.build.debug_port= +wifinfo.menu.Debug.Serial=Serial +wifinfo.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +wifinfo.menu.Debug.Serial1=Serial1 +wifinfo.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +wifinfo.menu.DebugLevel.None____=None +wifinfo.menu.DebugLevel.None____.build.debug_level= +wifinfo.menu.DebugLevel.SSL=SSL +wifinfo.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +wifinfo.menu.DebugLevel.TLS_MEM=TLS_MEM +wifinfo.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +wifinfo.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +wifinfo.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +wifinfo.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +wifinfo.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +wifinfo.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +wifinfo.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +wifinfo.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +wifinfo.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +wifinfo.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +wifinfo.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +wifinfo.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +wifinfo.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +wifinfo.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +wifinfo.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +wifinfo.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +wifinfo.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +wifinfo.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +wifinfo.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +wifinfo.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +wifinfo.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +wifinfo.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +wifinfo.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +wifinfo.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +wifinfo.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +wifinfo.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +wifinfo.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +wifinfo.menu.DebugLevel.CORE=CORE +wifinfo.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +wifinfo.menu.DebugLevel.WIFI=WIFI +wifinfo.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +wifinfo.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +wifinfo.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +wifinfo.menu.DebugLevel.UPDATER=UPDATER +wifinfo.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +wifinfo.menu.DebugLevel.OTA=OTA +wifinfo.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +wifinfo.menu.DebugLevel.OOM=OOM +wifinfo.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +wifinfo.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +wifinfo.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +wifinfo.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +wifinfo.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +wifinfo.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +wifinfo.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +wifinfo.menu.FlashErase.none=Only Sketch +wifinfo.menu.FlashErase.none.upload.erase_cmd= +wifinfo.menu.FlashErase.sdk=Sketch + WiFi Settings +wifinfo.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +wifinfo.menu.FlashErase.all=All Flash Contents +wifinfo.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +wifinfo.menu.UploadSpeed.115200=115200 +wifinfo.menu.UploadSpeed.115200.upload.speed=115200 +wifinfo.menu.UploadSpeed.9600=9600 +wifinfo.menu.UploadSpeed.9600.upload.speed=9600 +wifinfo.menu.UploadSpeed.57600=57600 +wifinfo.menu.UploadSpeed.57600.upload.speed=57600 +wifinfo.menu.UploadSpeed.230400.linux=230400 +wifinfo.menu.UploadSpeed.230400.macosx=230400 +wifinfo.menu.UploadSpeed.230400.upload.speed=230400 +wifinfo.menu.UploadSpeed.256000.windows=256000 +wifinfo.menu.UploadSpeed.256000.upload.speed=256000 +wifinfo.menu.UploadSpeed.460800.linux=460800 +wifinfo.menu.UploadSpeed.460800.macosx=460800 +wifinfo.menu.UploadSpeed.460800.upload.speed=460800 +wifinfo.menu.UploadSpeed.512000.windows=512000 +wifinfo.menu.UploadSpeed.512000.upload.speed=512000 +wifinfo.menu.UploadSpeed.921600=921600 +wifinfo.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +arduino-esp8266.name=Arduino +arduino-esp8266.menu.BoardModel.starottodeved.build.board=ESP8266_ARDUINO_STAR_OTTO +arduino-esp8266.menu.BoardModel.primo.build.extra_flags=-DF_CRYSTAL=40000000 -DESP8266 +arduino-esp8266.menu.BoardModel.starottodeved.build.extra_flags=-DF_CRYSTAL=40000000 -DESP8266 +arduino-esp8266.menu.BoardModel.starottodeved.build.variant=arduino_uart +arduino-esp8266.menu.BoardModel.unowifideved.build.board=ESP8266_ARDUINO_UNOWIFI +arduino-esp8266.menu.BoardModel.unowifideved.build.extra_flags=-DF_CRYSTAL=40000000 -DESP8266 +arduino-esp8266.menu.BoardModel.primo=Primo +arduino-esp8266.menu.BoardModel.unowifideved.build.variant=arduino_uart +arduino-esp8266.menu.BoardModel.primo.build.variant=arduino_spi +arduino-esp8266.menu.BoardModel.starottodeved=Star OTTO +arduino-esp8266.build.board=ESP8266_ARDUINO +arduino-esp8266.menu.BoardModel.primo.build.board=ESP8266_ARDUINO_PRIMO +arduino-esp8266.menu.BoardModel.unowifideved=Uno WiFi +arduino-esp8266.upload.tool=esptool +arduino-esp8266.upload.maximum_data_size=81920 +arduino-esp8266.upload.wait_for_upload_port=true +arduino-esp8266.upload.erase_cmd= +arduino-esp8266.serial.disableDTR=true +arduino-esp8266.serial.disableRTS=true +arduino-esp8266.build.mcu=esp8266 +arduino-esp8266.build.core=esp8266 +arduino-esp8266.build.variant=generic +arduino-esp8266.build.spiffs_pagesize=256 +arduino-esp8266.build.debug_port= +arduino-esp8266.build.debug_level= +arduino-esp8266.menu.CpuFrequency.80=80 MHz +arduino-esp8266.menu.CpuFrequency.80.build.f_cpu=80000000L +arduino-esp8266.menu.CpuFrequency.160=160 MHz +arduino-esp8266.menu.CpuFrequency.160.build.f_cpu=160000000L +arduino-esp8266.upload.resetmethod=ck +arduino-esp8266.build.flash_mode=qio +arduino-esp8266.build.flash_freq=40 +arduino-esp8266.menu.FlashSize.4M1M=4M (1M SPIFFS) +arduino-esp8266.menu.FlashSize.4M1M.build.flash_size=4M +arduino-esp8266.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +arduino-esp8266.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +arduino-esp8266.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +arduino-esp8266.menu.FlashSize.4M1M.upload.maximum_size=1044464 +arduino-esp8266.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +arduino-esp8266.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +arduino-esp8266.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +arduino-esp8266.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +arduino-esp8266.menu.FlashSize.4M3M=4M (3M SPIFFS) +arduino-esp8266.menu.FlashSize.4M3M.build.flash_size=4M +arduino-esp8266.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +arduino-esp8266.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +arduino-esp8266.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +arduino-esp8266.menu.FlashSize.4M3M.upload.maximum_size=1044464 +arduino-esp8266.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +arduino-esp8266.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +arduino-esp8266.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +arduino-esp8266.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +arduino-esp8266.menu.LwIPVariant.v2mss536=v2 Lower Memory +arduino-esp8266.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +arduino-esp8266.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +arduino-esp8266.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +arduino-esp8266.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +arduino-esp8266.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +arduino-esp8266.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +arduino-esp8266.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +arduino-esp8266.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +arduino-esp8266.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +arduino-esp8266.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +arduino-esp8266.menu.LwIPVariant.OpenSource=v1.4 Compile from source +arduino-esp8266.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +arduino-esp8266.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +arduino-esp8266.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +arduino-esp8266.menu.Debug.Disabled=Disabled +arduino-esp8266.menu.Debug.Disabled.build.debug_port= +arduino-esp8266.menu.Debug.Serial=Serial +arduino-esp8266.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +arduino-esp8266.menu.Debug.Serial1=Serial1 +arduino-esp8266.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +arduino-esp8266.menu.DebugLevel.None____=None +arduino-esp8266.menu.DebugLevel.None____.build.debug_level= +arduino-esp8266.menu.DebugLevel.SSL=SSL +arduino-esp8266.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +arduino-esp8266.menu.DebugLevel.TLS_MEM=TLS_MEM +arduino-esp8266.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +arduino-esp8266.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +arduino-esp8266.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +arduino-esp8266.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +arduino-esp8266.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +arduino-esp8266.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +arduino-esp8266.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +arduino-esp8266.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +arduino-esp8266.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +arduino-esp8266.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +arduino-esp8266.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +arduino-esp8266.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +arduino-esp8266.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +arduino-esp8266.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +arduino-esp8266.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +arduino-esp8266.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +arduino-esp8266.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +arduino-esp8266.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +arduino-esp8266.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +arduino-esp8266.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +arduino-esp8266.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +arduino-esp8266.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +arduino-esp8266.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +arduino-esp8266.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +arduino-esp8266.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +arduino-esp8266.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +arduino-esp8266.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +arduino-esp8266.menu.DebugLevel.CORE=CORE +arduino-esp8266.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +arduino-esp8266.menu.DebugLevel.WIFI=WIFI +arduino-esp8266.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +arduino-esp8266.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +arduino-esp8266.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +arduino-esp8266.menu.DebugLevel.UPDATER=UPDATER +arduino-esp8266.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +arduino-esp8266.menu.DebugLevel.OTA=OTA +arduino-esp8266.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +arduino-esp8266.menu.DebugLevel.OOM=OOM +arduino-esp8266.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +arduino-esp8266.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +arduino-esp8266.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +arduino-esp8266.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +arduino-esp8266.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +arduino-esp8266.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +arduino-esp8266.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +arduino-esp8266.menu.FlashErase.none=Only Sketch +arduino-esp8266.menu.FlashErase.none.upload.erase_cmd= +arduino-esp8266.menu.FlashErase.sdk=Sketch + WiFi Settings +arduino-esp8266.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +arduino-esp8266.menu.FlashErase.all=All Flash Contents +arduino-esp8266.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +arduino-esp8266.menu.UploadSpeed.115200=115200 +arduino-esp8266.menu.UploadSpeed.115200.upload.speed=115200 +arduino-esp8266.menu.UploadSpeed.9600=9600 +arduino-esp8266.menu.UploadSpeed.9600.upload.speed=9600 +arduino-esp8266.menu.UploadSpeed.57600=57600 +arduino-esp8266.menu.UploadSpeed.57600.upload.speed=57600 +arduino-esp8266.menu.UploadSpeed.230400.linux=230400 +arduino-esp8266.menu.UploadSpeed.230400.macosx=230400 +arduino-esp8266.menu.UploadSpeed.230400.upload.speed=230400 +arduino-esp8266.menu.UploadSpeed.256000.windows=256000 +arduino-esp8266.menu.UploadSpeed.256000.upload.speed=256000 +arduino-esp8266.menu.UploadSpeed.460800.linux=460800 +arduino-esp8266.menu.UploadSpeed.460800.macosx=460800 +arduino-esp8266.menu.UploadSpeed.460800.upload.speed=460800 +arduino-esp8266.menu.UploadSpeed.512000.windows=512000 +arduino-esp8266.menu.UploadSpeed.512000.upload.speed=512000 +arduino-esp8266.menu.UploadSpeed.921600=921600 +arduino-esp8266.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +gen4iod.name=4D Systems gen4 IoD Range +gen4iod.build.board=GEN4_IOD +gen4iod.build.f_cpu=160000000L +gen4iod.build.variant=generic +gen4iod.upload.tool=esptool +gen4iod.upload.maximum_data_size=81920 +gen4iod.upload.wait_for_upload_port=true +gen4iod.upload.erase_cmd= +gen4iod.serial.disableDTR=true +gen4iod.serial.disableRTS=true +gen4iod.build.mcu=esp8266 +gen4iod.build.core=esp8266 +gen4iod.build.spiffs_pagesize=256 +gen4iod.build.debug_port= +gen4iod.build.debug_level= +gen4iod.menu.CpuFrequency.80=80 MHz +gen4iod.menu.CpuFrequency.80.build.f_cpu=80000000L +gen4iod.menu.CpuFrequency.160=160 MHz +gen4iod.menu.CpuFrequency.160.build.f_cpu=160000000L +gen4iod.upload.resetmethod=nodemcu +gen4iod.build.flash_mode=qio +gen4iod.build.flash_freq=80 +gen4iod.menu.FlashSize.512K0=512K (no SPIFFS) +gen4iod.menu.FlashSize.512K0.build.flash_size=512K +gen4iod.menu.FlashSize.512K0.build.flash_size_bytes=0x80000 +gen4iod.menu.FlashSize.512K0.build.flash_ld=eagle.flash.512k0.ld +gen4iod.menu.FlashSize.512K0.build.spiffs_pagesize=256 +gen4iod.menu.FlashSize.512K0.upload.maximum_size=499696 +gen4iod.menu.FlashSize.512K0.build.rfcal_addr=0x7C000 +gen4iod.menu.FlashSize.512K64=512K (64K SPIFFS) +gen4iod.menu.FlashSize.512K64.build.flash_size=512K +gen4iod.menu.FlashSize.512K64.build.flash_size_bytes=0x80000 +gen4iod.menu.FlashSize.512K64.build.flash_ld=eagle.flash.512k64.ld +gen4iod.menu.FlashSize.512K64.build.spiffs_pagesize=256 +gen4iod.menu.FlashSize.512K64.upload.maximum_size=434160 +gen4iod.menu.FlashSize.512K64.build.rfcal_addr=0x7C000 +gen4iod.menu.FlashSize.512K64.build.spiffs_start=0x6B000 +gen4iod.menu.FlashSize.512K64.build.spiffs_end=0x7B000 +gen4iod.menu.FlashSize.512K64.build.spiffs_blocksize=4096 +gen4iod.menu.FlashSize.512K128=512K (128K SPIFFS) +gen4iod.menu.FlashSize.512K128.build.flash_size=512K +gen4iod.menu.FlashSize.512K128.build.flash_size_bytes=0x80000 +gen4iod.menu.FlashSize.512K128.build.flash_ld=eagle.flash.512k128.ld +gen4iod.menu.FlashSize.512K128.build.spiffs_pagesize=256 +gen4iod.menu.FlashSize.512K128.upload.maximum_size=368624 +gen4iod.menu.FlashSize.512K128.build.rfcal_addr=0x7C000 +gen4iod.menu.FlashSize.512K128.build.spiffs_start=0x5B000 +gen4iod.menu.FlashSize.512K128.build.spiffs_end=0x7B000 +gen4iod.menu.FlashSize.512K128.build.spiffs_blocksize=4096 +gen4iod.menu.LwIPVariant.v2mss536=v2 Lower Memory +gen4iod.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +gen4iod.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +gen4iod.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +gen4iod.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +gen4iod.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +gen4iod.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +gen4iod.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +gen4iod.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +gen4iod.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +gen4iod.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +gen4iod.menu.LwIPVariant.OpenSource=v1.4 Compile from source +gen4iod.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +gen4iod.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +gen4iod.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +gen4iod.menu.Debug.Disabled=Disabled +gen4iod.menu.Debug.Disabled.build.debug_port= +gen4iod.menu.Debug.Serial=Serial +gen4iod.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +gen4iod.menu.Debug.Serial1=Serial1 +gen4iod.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +gen4iod.menu.DebugLevel.None____=None +gen4iod.menu.DebugLevel.None____.build.debug_level= +gen4iod.menu.DebugLevel.SSL=SSL +gen4iod.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +gen4iod.menu.DebugLevel.TLS_MEM=TLS_MEM +gen4iod.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +gen4iod.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +gen4iod.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +gen4iod.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +gen4iod.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +gen4iod.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +gen4iod.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +gen4iod.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +gen4iod.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +gen4iod.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +gen4iod.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +gen4iod.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +gen4iod.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +gen4iod.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +gen4iod.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +gen4iod.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +gen4iod.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +gen4iod.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +gen4iod.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +gen4iod.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +gen4iod.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +gen4iod.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +gen4iod.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +gen4iod.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +gen4iod.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +gen4iod.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +gen4iod.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +gen4iod.menu.DebugLevel.CORE=CORE +gen4iod.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +gen4iod.menu.DebugLevel.WIFI=WIFI +gen4iod.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +gen4iod.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +gen4iod.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +gen4iod.menu.DebugLevel.UPDATER=UPDATER +gen4iod.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +gen4iod.menu.DebugLevel.OTA=OTA +gen4iod.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +gen4iod.menu.DebugLevel.OOM=OOM +gen4iod.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +gen4iod.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +gen4iod.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +gen4iod.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +gen4iod.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +gen4iod.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +gen4iod.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +gen4iod.menu.FlashErase.none=Only Sketch +gen4iod.menu.FlashErase.none.upload.erase_cmd= +gen4iod.menu.FlashErase.sdk=Sketch + WiFi Settings +gen4iod.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +gen4iod.menu.FlashErase.all=All Flash Contents +gen4iod.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +gen4iod.menu.UploadSpeed.115200=115200 +gen4iod.menu.UploadSpeed.115200.upload.speed=115200 +gen4iod.menu.UploadSpeed.9600=9600 +gen4iod.menu.UploadSpeed.9600.upload.speed=9600 +gen4iod.menu.UploadSpeed.57600=57600 +gen4iod.menu.UploadSpeed.57600.upload.speed=57600 +gen4iod.menu.UploadSpeed.230400.linux=230400 +gen4iod.menu.UploadSpeed.230400.macosx=230400 +gen4iod.menu.UploadSpeed.230400.upload.speed=230400 +gen4iod.menu.UploadSpeed.256000.windows=256000 +gen4iod.menu.UploadSpeed.256000.upload.speed=256000 +gen4iod.menu.UploadSpeed.460800.linux=460800 +gen4iod.menu.UploadSpeed.460800.macosx=460800 +gen4iod.menu.UploadSpeed.460800.upload.speed=460800 +gen4iod.menu.UploadSpeed.512000.windows=512000 +gen4iod.menu.UploadSpeed.512000.upload.speed=512000 +gen4iod.menu.UploadSpeed.921600=921600 +gen4iod.menu.UploadSpeed.921600.upload.speed=921600 + +############################################################## +oak.name=Digistump Oak +oak.build.board=ESP8266_OAK +oak.build.variant=oak +oak.upload.maximum_size=1040368 +oak.upload.tool=esptool +oak.upload.maximum_data_size=81920 +oak.upload.wait_for_upload_port=true +oak.upload.erase_cmd= +oak.serial.disableDTR=true +oak.serial.disableRTS=true +oak.build.mcu=esp8266 +oak.build.core=esp8266 +oak.build.spiffs_pagesize=256 +oak.build.debug_port= +oak.build.debug_level= +oak.menu.CpuFrequency.80=80 MHz +oak.menu.CpuFrequency.80.build.f_cpu=80000000L +oak.menu.CpuFrequency.160=160 MHz +oak.menu.CpuFrequency.160.build.f_cpu=160000000L +oak.upload.resetmethod=none +oak.build.flash_mode=dio +oak.build.flash_freq=40 +oak.menu.FlashSize.4M1M=4M (1M SPIFFS) +oak.menu.FlashSize.4M1M.build.flash_size=4M +oak.menu.FlashSize.4M1M.build.flash_size_bytes=0x400000 +oak.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld +oak.menu.FlashSize.4M1M.build.spiffs_pagesize=256 +oak.menu.FlashSize.4M1M.upload.maximum_size=1044464 +oak.menu.FlashSize.4M1M.build.rfcal_addr=0x3FC000 +oak.menu.FlashSize.4M1M.build.spiffs_start=0x300000 +oak.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000 +oak.menu.FlashSize.4M1M.build.spiffs_blocksize=8192 +oak.menu.FlashSize.4M3M=4M (3M SPIFFS) +oak.menu.FlashSize.4M3M.build.flash_size=4M +oak.menu.FlashSize.4M3M.build.flash_size_bytes=0x400000 +oak.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld +oak.menu.FlashSize.4M3M.build.spiffs_pagesize=256 +oak.menu.FlashSize.4M3M.upload.maximum_size=1044464 +oak.menu.FlashSize.4M3M.build.rfcal_addr=0x3FC000 +oak.menu.FlashSize.4M3M.build.spiffs_start=0x100000 +oak.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000 +oak.menu.FlashSize.4M3M.build.spiffs_blocksize=8192 +oak.menu.LwIPVariant.v2mss536=v2 Lower Memory +oak.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +oak.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +oak.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +oak.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +oak.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +oak.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +oak.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +oak.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +oak.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +oak.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +oak.menu.LwIPVariant.OpenSource=v1.4 Compile from source +oak.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +oak.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +oak.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +oak.menu.Debug.Disabled=Disabled +oak.menu.Debug.Disabled.build.debug_port= +oak.menu.Debug.Serial=Serial +oak.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +oak.menu.Debug.Serial1=Serial1 +oak.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +oak.menu.DebugLevel.None____=None +oak.menu.DebugLevel.None____.build.debug_level= +oak.menu.DebugLevel.SSL=SSL +oak.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +oak.menu.DebugLevel.TLS_MEM=TLS_MEM +oak.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +oak.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +oak.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +oak.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +oak.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +oak.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +oak.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +oak.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +oak.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +oak.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +oak.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +oak.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +oak.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +oak.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +oak.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +oak.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +oak.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +oak.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +oak.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +oak.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +oak.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +oak.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +oak.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +oak.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +oak.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +oak.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +oak.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +oak.menu.DebugLevel.CORE=CORE +oak.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +oak.menu.DebugLevel.WIFI=WIFI +oak.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +oak.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +oak.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +oak.menu.DebugLevel.UPDATER=UPDATER +oak.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +oak.menu.DebugLevel.OTA=OTA +oak.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +oak.menu.DebugLevel.OOM=OOM +oak.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +oak.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +oak.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +oak.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +oak.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +oak.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +oak.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +oak.menu.FlashErase.none=Only Sketch +oak.menu.FlashErase.none.upload.erase_cmd= +oak.menu.FlashErase.sdk=Sketch + WiFi Settings +oak.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +oak.menu.FlashErase.all=All Flash Contents +oak.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +oak.menu.UploadSpeed.921600=921600 +oak.menu.UploadSpeed.921600.upload.speed=921600 +oak.menu.UploadSpeed.9600=9600 +oak.menu.UploadSpeed.9600.upload.speed=9600 +oak.menu.UploadSpeed.57600=57600 +oak.menu.UploadSpeed.57600.upload.speed=57600 +oak.menu.UploadSpeed.115200=115200 +oak.menu.UploadSpeed.115200.upload.speed=115200 +oak.menu.UploadSpeed.230400.linux=230400 +oak.menu.UploadSpeed.230400.macosx=230400 +oak.menu.UploadSpeed.230400.upload.speed=230400 +oak.menu.UploadSpeed.256000.windows=256000 +oak.menu.UploadSpeed.256000.upload.speed=256000 +oak.menu.UploadSpeed.460800.linux=460800 +oak.menu.UploadSpeed.460800.macosx=460800 +oak.menu.UploadSpeed.460800.upload.speed=460800 +oak.menu.UploadSpeed.512000.windows=512000 +oak.menu.UploadSpeed.512000.upload.speed=512000 + diff --git a/arduino/version 2.4.1/platform.txt b/arduino/version 2.4.1/platform.txt new file mode 100644 index 000000000..2ddeb0065 --- /dev/null +++ b/arduino/version 2.4.1/platform.txt @@ -0,0 +1,137 @@ + +# ESP8266 platform +# ------------------------------ + +# For more info: +# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification + +name=ESP8266 Modules +version=2.4.1 + + + + +compiler.warning_flags=-w +compiler.warning_flags.none=-w +compiler.warning_flags.default= +compiler.warning_flags.more=-Wall +compiler.warning_flags.all=-Wall -Wextra + +build.lwip_lib=-llwip_gcc +build.lwip_include=lwip/include +build.lwip_flags=-DLWIP_OPEN_SRC + +#build.float=-u _printf_float -u _scanf_float +build.float= +build.led= + +compiler.path={runtime.tools.xtensa-lx106-elf-gcc.path}/bin/ +compiler.sdk.path={runtime.platform.path}/tools/sdk +compiler.libc.path={runtime.platform.path}/tools/sdk/libc/xtensa-lx106-elf +compiler.cpreprocessor.flags=-D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I{compiler.sdk.path}/include" "-I{compiler.sdk.path}/{build.lwip_include}" "-I{compiler.libc.path}/include" "-I{build.path}/core" + +compiler.c.cmd=xtensa-lx106-elf-gcc +compiler.c.flags=-c {compiler.warning_flags} -Os -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -falign-functions=4 -MMD -std=gnu99 -ffunction-sections -fdata-sections + +compiler.S.cmd=xtensa-lx106-elf-gcc +compiler.S.flags=-c -g -x assembler-with-cpp -MMD -mlongcalls + +compiler.c.elf.flags=-g {compiler.warning_flags} -Os -nostdlib -Wl,--no-check-sections -u call_user_start {build.float} -Wl,-static "-L{compiler.sdk.path}/lib" "-L{compiler.sdk.path}/ld" "-L{compiler.libc.path}/lib" "-T{build.flash_ld}" -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,spi_flash_read + +compiler.c.elf.cmd=xtensa-lx106-elf-gcc +compiler.c.elf.libs=-lhal -lphy -lpp -lnet80211 {build.lwip_lib} -lwpa -lcrypto -lmain -lwps -laxtls -lespnow -lsmartconfig -lairkiss -lwpa2 -lstdc++ -lm -lc -lgcc + +compiler.cpp.cmd=xtensa-lx106-elf-g++ +compiler.cpp.flags=-c {compiler.warning_flags} -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -MMD -ffunction-sections -fdata-sections + +compiler.as.cmd=xtensa-lx106-elf-as + +compiler.ar.cmd=xtensa-lx106-elf-ar +compiler.ar.flags=cru + +compiler.elf2hex.cmd=esptool +compiler.elf2hex.flags= + +compiler.size.cmd=xtensa-lx106-elf-size + +compiler.esptool.cmd=esptool +compiler.esptool.cmd.windows=esptool.exe + +# This can be overriden in boards.txt +build.extra_flags=-DESP8266 + +# These can be overridden in platform.local.txt +compiler.c.extra_flags= +compiler.c.elf.extra_flags= +compiler.S.extra_flags= +compiler.cpp.extra_flags= +compiler.ar.extra_flags= +compiler.objcopy.eep.extra_flags= +compiler.elf2hex.extra_flags= + +## generate file with git version number +## needs bash, git, and echo + + +## windows-compatible version without git + + + +## Compile c files +recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.c.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {build.led} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" + +## Compile c++ files +recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpreprocessor.flags} {compiler.cpp.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {build.led} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" + +## Compile S files +recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.S.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {build.led} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" + +## Create archives +recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/arduino.ar" "{object_file}" + +## Combine gc-sections, archives, and objects +recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" -Wl,--start-group {object_files} "{build.path}/arduino.ar" {compiler.c.elf.libs} -Wl,--end-group "-L{build.path}" + +## Create eeprom +recipe.objcopy.eep.pattern= + +## Create hex +#recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex" + +recipe.objcopy.hex.pattern="{runtime.tools.esptool.path}/{compiler.esptool.cmd}" -eo "{runtime.platform.path}/bootloaders/eboot/eboot.elf" -bo "{build.path}/{build.project_name}.bin" -bm {build.flash_mode} -bf {build.flash_freq} -bz {build.flash_size} -bs .text -bp 4096 -ec -eo "{build.path}/{build.project_name}.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec + +## Save hex +recipe.output.tmp_file={build.project_name}.bin +recipe.output.save_file={build.project_name}.{build.variant}.bin + +## Compute size +recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf" +recipe.size.regex=^(?:\.irom0\.text|\.text|\.data|\.rodata|)\s+([0-9]+).* +recipe.size.regex.data=^(?:\.data|\.rodata|\.bss)\s+([0-9]+).* +#recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).* + +# ------------------------------ + +tools.esptool.cmd=esptool +tools.esptool.cmd.windows=esptool.exe +tools.esptool.path={runtime.tools.esptool.path} +tools.esptool.network_cmd=python +tools.esptool.network_cmd.windows=python.exe + +tools.esptool.upload.protocol=esp +tools.esptool.upload.params.verbose=-vv +tools.esptool.upload.params.quiet= +tools.esptool.upload.pattern="{path}/{cmd}" {upload.verbose} -cd {upload.resetmethod} -cb {upload.speed} -cp "{serial.port}" {upload.erase_cmd} -ca 0x00000 -cf "{build.path}/{build.project_name}.bin" +tools.esptool.upload.network_pattern="{network_cmd}" "{runtime.platform.path}/tools/espota.py" -i "{serial.port}" -p "{network.port}" "--auth={network.password}" -f "{build.path}/{build.project_name}.bin" + +tools.mkspiffs.cmd=mkspiffs +tools.mkspiffs.cmd.windows=mkspiffs.exe +tools.mkspiffs.path={runtime.tools.mkspiffs.path} + +tools.espupload.cmd=python +tools.espupload.cmd.windows=python.exe +tools.espupload.path={runtime.platform.path}/tools +tools.espupload.upload.protocol=espupload +tools.espupload.upload.params.verbose= +tools.espupload.upload.params.quiet= +tools.espupload.upload.pattern="{cmd}" "{path}/espupload.py" -f "{build.path}/{build.project_name}.bin" diff --git a/lib/TasmotaSerial-1.1.0/README.md b/lib/TasmotaSerial-1.2.0/README.md similarity index 79% rename from lib/TasmotaSerial-1.1.0/README.md rename to lib/TasmotaSerial-1.2.0/README.md index 5c7a24721..205a9597c 100644 --- a/lib/TasmotaSerial-1.1.0/README.md +++ b/lib/TasmotaSerial-1.2.0/README.md @@ -1,6 +1,6 @@ # TasmotaSerial -Implementation of software serial library for the ESP8266 at 9600 baud +Implementation of software serial library for the ESP8266 Allows for several instances to be active at the same time. diff --git a/lib/TasmotaSerial-1.1.0/examples/swsertest/swsertest.ino b/lib/TasmotaSerial-1.2.0/examples/swsertest/swsertest.ino similarity index 100% rename from lib/TasmotaSerial-1.1.0/examples/swsertest/swsertest.ino rename to lib/TasmotaSerial-1.2.0/examples/swsertest/swsertest.ino diff --git a/lib/TasmotaSerial-1.1.0/keywords.txt b/lib/TasmotaSerial-1.2.0/keywords.txt similarity index 100% rename from lib/TasmotaSerial-1.1.0/keywords.txt rename to lib/TasmotaSerial-1.2.0/keywords.txt diff --git a/lib/TasmotaSerial-1.1.0/library.json b/lib/TasmotaSerial-1.2.0/library.json similarity index 89% rename from lib/TasmotaSerial-1.1.0/library.json rename to lib/TasmotaSerial-1.2.0/library.json index 986c6d7ac..e4b2ba8a3 100644 --- a/lib/TasmotaSerial-1.1.0/library.json +++ b/lib/TasmotaSerial-1.2.0/library.json @@ -1,10 +1,10 @@ { "name": "TasmotaSerial", - "version": "1.0.0", + "version": "1.2.0", "keywords": [ "serial", "io", "TasmotaSerial" ], - "description": "Implementation of software serial for ESP8266 at 9600 baud.", + "description": "Implementation of software serial for ESP8266.", "repository": { "type": "git", diff --git a/lib/TasmotaSerial-1.1.0/library.properties b/lib/TasmotaSerial-1.2.0/library.properties similarity index 64% rename from lib/TasmotaSerial-1.1.0/library.properties rename to lib/TasmotaSerial-1.2.0/library.properties index 703b613ee..d427d0fb3 100644 --- a/lib/TasmotaSerial-1.1.0/library.properties +++ b/lib/TasmotaSerial-1.2.0/library.properties @@ -1,8 +1,8 @@ name=TasmotaSerial -version=1.0 +version=1.2.0 author=Theo Arends maintainer=Theo Arends -sentence=Implementation of software serial for ESP8266 at 9600 baud. +sentence=Implementation of software serial for ESP8266. paragraph= category=Signal Input/Output url= diff --git a/lib/TasmotaSerial-1.1.0/src/TasmotaSerial.cpp b/lib/TasmotaSerial-1.2.0/src/TasmotaSerial.cpp similarity index 91% rename from lib/TasmotaSerial-1.1.0/src/TasmotaSerial.cpp rename to lib/TasmotaSerial-1.2.0/src/TasmotaSerial.cpp index 35881dfb3..c189442e6 100644 --- a/lib/TasmotaSerial-1.1.0/src/TasmotaSerial.cpp +++ b/lib/TasmotaSerial-1.2.0/src/TasmotaSerial.cpp @@ -87,9 +87,7 @@ TasmotaSerial::TasmotaSerial(int receive_pin, int transmit_pin) m_in_pos = m_out_pos = 0; if (m_rx_pin > -1) { m_buffer = (uint8_t*)malloc(TM_SERIAL_BUFFER_SIZE); - if (m_buffer == NULL) { - return; - } + if (m_buffer == NULL) return; // Use getCycleCount() loop to get as exact timing as possible m_bit_time = ESP.getCpuFreqMHz() *1000000 /TM_SERIAL_BAUDRATE; pinMode(m_rx_pin, INPUT); @@ -111,7 +109,8 @@ bool TasmotaSerial::isValidGPIOpin(int pin) bool TasmotaSerial::begin(long speed) { // Use getCycleCount() loop to get as exact timing as possible m_bit_time = ESP.getCpuFreqMHz() *1000000 /speed; - return m_valid && (speed <= TM_SERIAL_BAUDRATE); + m_high_speed = (speed > 9600); + return m_valid; } bool TasmotaSerial::begin() { @@ -123,17 +122,13 @@ void TasmotaSerial::flush() { } int TasmotaSerial::peek() { - if ((-1 == m_rx_pin) || (m_in_pos == m_out_pos)) { - return -1; - } + if ((-1 == m_rx_pin) || (m_in_pos == m_out_pos)) return -1; return m_buffer[m_out_pos]; } int TasmotaSerial::read() { - if ((-1 == m_rx_pin) || (m_in_pos == m_out_pos)) { - return -1; - } + if ((-1 == m_rx_pin) || (m_in_pos == m_out_pos)) return -1; uint8_t ch = m_buffer[m_out_pos]; m_out_pos = (m_out_pos +1) % TM_SERIAL_BUFFER_SIZE; return ch; @@ -142,23 +137,20 @@ int TasmotaSerial::read() int TasmotaSerial::available() { int avail = m_in_pos - m_out_pos; - if (avail < 0) { - avail += TM_SERIAL_BUFFER_SIZE; - } + if (avail < 0) avail += TM_SERIAL_BUFFER_SIZE; return avail; } #ifdef TM_SERIAL_USE_IRAM -#define TM_SERIAL_WAIT { while (ESP.getCycleCount()-start < wait) optimistic_yield(1); wait += m_bit_time; } // Watchdog timeouts +#define TM_SERIAL_WAIT { while (ESP.getCycleCount()-start < wait) if (!m_high_speed) optimistic_yield(1); wait += m_bit_time; } // Watchdog timeouts #else #define TM_SERIAL_WAIT { while (ESP.getCycleCount()-start < wait); wait += m_bit_time; } #endif size_t TasmotaSerial::write(uint8_t b) { - if (-1 == m_tx_pin) { - return 0; - } + if (-1 == m_tx_pin) return 0; + if (m_high_speed) cli(); // Disable interrupts in order to get a clean transmit unsigned long wait = m_bit_time; digitalWrite(m_tx_pin, HIGH); unsigned long start = ESP.getCycleCount(); @@ -173,6 +165,7 @@ size_t TasmotaSerial::write(uint8_t b) // Stop bit digitalWrite(m_tx_pin, HIGH); TM_SERIAL_WAIT; + if (m_high_speed) sei(); return 1; } @@ -191,9 +184,7 @@ void TasmotaSerial::rxRead() for (int i = 0; i < 8; i++) { TM_SERIAL_WAIT; rec >>= 1; - if (digitalRead(m_rx_pin)) { - rec |= 0x80; - } + if (digitalRead(m_rx_pin)) rec |= 0x80; } // Stop bit TM_SERIAL_WAIT; diff --git a/lib/TasmotaSerial-1.1.0/src/TasmotaSerial.h b/lib/TasmotaSerial-1.2.0/src/TasmotaSerial.h similarity index 91% rename from lib/TasmotaSerial-1.1.0/src/TasmotaSerial.h rename to lib/TasmotaSerial-1.2.0/src/TasmotaSerial.h index d18dd335f..0876590fe 100644 --- a/lib/TasmotaSerial-1.1.0/src/TasmotaSerial.h +++ b/lib/TasmotaSerial-1.2.0/src/TasmotaSerial.h @@ -20,12 +20,12 @@ #ifndef TasmotaSerial_h #define TasmotaSerial_h /*********************************************************************************************\ - * TasmotaSerial supports up to 9600 baud with fixed buffer size of 64 bytes using optional no iram + * TasmotaSerial supports up to 115200 baud with fixed buffer size of 64 bytes using optional no iram * * Based on EspSoftwareSerial v3.3.1 by Peter Lerup (https://github.com/plerup/espsoftwareserial) \*********************************************************************************************/ -#define TM_SERIAL_BAUDRATE 9600 // Max supported baudrate +#define TM_SERIAL_BAUDRATE 9600 // Default baudrate #define TM_SERIAL_BUFFER_SIZE 64 // Receive buffer size #include // Arduino_Esp8266 version information (ARDUINO_ESP8266_RELEASE and ARDUINO_ESP8266_RELEASE_2_3_0) @@ -57,6 +57,7 @@ class TasmotaSerial : public Stream { // Member variables bool m_valid; + bool m_high_speed; int m_rx_pin; int m_tx_pin; unsigned long m_bit_time; diff --git a/sonoff/_releasenotes.ino b/sonoff/_releasenotes.ino index 51ebe785b..d92495343 100644 --- a/sonoff/_releasenotes.ino +++ b/sonoff/_releasenotes.ino @@ -1,10 +1,46 @@ -/* 5.12.0d +/* 5.12.0i + * Add 16 timers using commands Timer and Timers (#1091) + * + * 5.12.0h + * Add optional Arduino OTA support to be enabled in user_config.h (#1998) + * Add support for Software Serial bridge using commands SerialDelimiter, SBaudrate and SSerialSend. Supports 8N1 and text only (#2190) + * Add support for Hardware Serial bridge using commands SerialDelimiter, Baudrate and SerialSend. Supports 8N1 and text only (#2182) + * Add support for Zengge WF017 PWM Led strip controller (#2202) + * Add PWM status to command State if PWM enabled (#2203) + * Add command HSBColor Hue,Sat,Bri (#1642, #2203) + * Add command Channel 0..100 to control dimmer value for individual color channels (#2111, #2203) + * Add Channel status information (#2211) + * Add all FriendlyNames to Status information (#2208) + * Change status display of Ssid and SetOption + * Change default option SetOption15 from 0 to 1 providing better initial PWM experience + * + * 5.12.0f + * Add compile time support for WS2812 BRG and RBG led configurations to be defined in user_config.h (#1690) + * + * 5.12.0e + * Add Domoticz dust (custom) sensors to PMS5003 and NovaFitness SDS drivers as PM1, PM2.5 and PM10 + * Add a second TLS fingerprint to allow switching keys in TLS mode (#2033, #2102) + * Add display of remaining pulse time to command PulseTime (#2085) + * Add additional time offset to Wifi Retry based on device mac address (#2089) + * Add command Color6 RRGGBB for Clock hour marker color and command Rotation pixels for Clock rotation (#2092) + * Add HTML language header in local language (#2123) + * Add command PowerDelta 0..100 (percentage) to Energy monitoring devices to report on active power load change (#2157) + * Add Restart Reason to Status 1 report (#2161) + * Fix MAX31850 higher temperatures (#1269) + * + * 5.12.0d * Add support for optional MQTT drivers to be selected in user_config.h (#1992) * Add Portuguese language file * Add compiler check for stable lwIP version v1.4 (#1940) + * Add always suffix with device number in Mqtt discovery topic (#1962) * Add diacritics to Polish language file (#2005) * Add Hungarian language file (#2024) + * Add Czech language file + * Add Chinese (Traditional) in Taiwan language file (#2108) * Add support for Nova Fitness SDS011 and possibly SDS021 particle concentration sensor (#2070) + * Add single decimal precision to Nova Fitness SDS0x1 sensor values (#2093) + * Add support for multiple SHT3X sensors (#1949, #2110) + * Add Sonoff SC domoticz support for Sound level as Counter and Air quality (#2118) * Fix MQTT TLS fingerprint validation (#2033) * * 5.12.0c diff --git a/sonoff/i18n.h b/sonoff/i18n.h index e0e115b50..2b9ac09ed 100644 --- a/sonoff/i18n.h +++ b/sonoff/i18n.h @@ -63,6 +63,7 @@ #define D_JSON_GATEWAY "Gateway" #define D_JSON_HEAPSIZE "Heap" #define D_JSON_HIGH "High" +#define D_JSON_HSBCOLOR "HSBColor" #define D_JSON_HUMIDITY "Humidity" #define D_JSON_I2CSCAN_DEVICES_FOUND_AT "Device(s) found at" #define D_JSON_I2CSCAN_UNKNOWN_ERROR_AT "Unknown error at" @@ -96,6 +97,7 @@ #define D_JSON_SAVESTATE "SaveState" #define D_JSON_SDKVERSION "SDK" #define D_JSON_SELECTED "selected" +#define D_JSON_SERIALRECEIVED "SerialReceived" #define D_JSON_SSID "SSId" #define D_JSON_STARTDST "StartDST" // Start Daylight Savings Time #define D_JSON_STARTED "Started" @@ -240,16 +242,22 @@ #define D_CMND_LEDSTATE "LedState" #define D_CMND_CFGDUMP "CfgDump" #define D_CMND_I2CSCAN "I2CScan" +#define D_CMND_SERIALSEND "SerialSend" +#define D_CMND_SERIALDELIMITER "SerialDelimiter" +#define D_CMND_BAUDRATE "Baudrate" #define D_CMND_EXCEPTION "Exception" // Commands xdrv_01_light.ino +#define D_CMND_CHANNEL "Channel" #define D_CMND_COLOR "Color" #define D_CMND_COLORTEMPERATURE "CT" #define D_CMND_DIMMER "Dimmer" +#define D_CMND_HSBCOLOR "HSBColor" #define D_CMND_LED "Led" #define D_CMND_LEDTABLE "LedTable" #define D_CMND_FADE "Fade" #define D_CMND_PIXELS "Pixels" +#define D_CMND_ROTATION "Rotation" #define D_CMND_SCHEME "Scheme" #define D_CMND_SPEED "Speed" #define D_CMND_WAKEUP "Wakeup" @@ -274,6 +282,7 @@ // Commands xdrv_03_energy.ino #define D_CMND_POWERLOW "PowerLow" #define D_CMND_POWERHIGH "PowerHigh" +#define D_CMND_POWERDELTA "PowerDelta" #define D_CMND_VOLTAGELOW "VoltageLow" #define D_CMND_VOLTAGEHIGH "VoltageHigh" #define D_CMND_CURRENTLOW "CurrentLow" @@ -335,6 +344,21 @@ #define D_CMND_DISP_SIZE "Size" #define D_CMND_DISP_TEXT "Text" +// Commands xdrv_08_serial_bridge.ino +#define D_CMND_SSERIALSEND "SSerialSend" +#define D_CMND_SBAUDRATE "SBaudrate" + #define D_JSON_SSERIALRECEIVED "SSerialReceived" + +// Commands xdrv_09_timers.ino +#define D_CMND_TIMER "Timer" + #define D_JSON_TIMER_ARM "Arm" + #define D_JSON_TIMER_TIME "Time" + #define D_JSON_TIMER_DAYS "Days" + #define D_JSON_TIMER_REPEAT "Repeat" + #define D_JSON_TIMER_DEVICE "Device" + #define D_JSON_TIMER_POWER "Power" +#define D_CMND_TIMERS "Timers" + /********************************************************************************************/ #ifndef MY_LANGUAGE @@ -358,6 +382,7 @@ enum UnitNames { UNIT_MILLISECOND, UNIT_MINUTE, UNIT_PPM, + UNIT_PERCENTAGE, UNIT_PRESSURE, UNIT_SECOND, UNIT_SECTORS, @@ -375,6 +400,7 @@ const char kUnitNames[] PROGMEM = D_UNIT_MILLISECOND "|" D_UNIT_MINUTE "|" D_UNIT_PARTS_PER_MILLION "|" + "%|" D_UNIT_PRESSURE "|" D_UNIT_SECOND "|" D_UNIT_SECTORS "|" @@ -400,6 +426,7 @@ const char S_JSON_COMMAND_INDEX_NVALUE[] PROGMEM = "{\"%s%d\":%d}"; const char S_JSON_COMMAND_INDEX_LVALUE[] PROGMEM = "{\"%s%d\":%lu}"; const char S_JSON_COMMAND_INDEX_SVALUE[] PROGMEM = "{\"%s%d\":\"%s\"}"; const char S_JSON_COMMAND_INDEX_SVALUE_SVALUE[] PROGMEM = "{\"%s%d\":\"%s%s\"}"; +const char S_JSON_COMMAND_INDEX_NVALUE_ACTIVE_NVALUE[] PROGMEM = "{\"%s%d\":\"%d (" D_JSON_ACTIVE " %d)\"}"; const char S_JSON_SENSOR_INDEX_NVALUE[] PROGMEM = "{\"" D_CMND_SENSOR "%d\":%d}"; const char S_JSON_SENSOR_INDEX_SVALUE[] PROGMEM = "{\"" D_CMND_SENSOR "%d\":\"%s\"}"; @@ -469,4 +496,4 @@ const char S_INFORMATION[] PROGMEM = D_INFORMATION; const char S_RESTART[] PROGMEM = D_RESTART; #endif // USE_WEBSERVER -#endif // _I18N_H_ \ No newline at end of file +#endif // _I18N_H_ diff --git a/sonoff/language/cs-CZ.h b/sonoff/language/cs-CZ.h new file mode 100644 index 000000000..e78d0a8e0 --- /dev/null +++ b/sonoff/language/cs-CZ.h @@ -0,0 +1,464 @@ +/* + cs-CZ.h - localization for Czech with diacritics - Czech for Sonoff-Tasmota + + Copyright (C) 2018 Theo Arends (translated by vs) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _LANGUAGE_CS_CZ_H_ +#define _LANGUAGE_CS_CZ_H_ + +/*************************** ATTENTION *******************************\ + * + * Due to memory constraints only UTF-8 is supported. + * To save code space keep text as short as possible. + * Time and Date provided by SDK can not be localized (yet). + * Use online command StateText to translate ON, OFF, HOLD and TOGGLE. + * Use online command Prefix to translate cmnd, stat and tele. + * +\*********************************************************************/ + +//#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) + +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "cs" + +// "2017-03-07T11:08:02" - ISO8601:2004 +#define D_YEAR_MONTH_SEPARATOR "-" +#define D_MONTH_DAY_SEPARATOR "-" +#define D_DATE_TIME_SEPARATOR "T" +#define D_HOUR_MINUTE_SEPARATOR ":" +#define D_MINUTE_SECOND_SEPARATOR ":" + +#define D_DAY3LIST "PonÚteStřČtvPátSobNed" +#define D_MONTH3LIST "LedÚnoBřeDubKvěČerČevSrpZářŘíjLisPro" + +// Non JSON decimal separator +#define D_DECIMAL_SEPARATOR "," + +// Common +#define D_ADMIN "Admin" +#define D_AIR_QUALITY "Kvalita vzduchu" +#define D_AP "AP" // Access Point +#define D_AS "jako" +#define D_AUTO "AUTO" +#define D_BLINK "Blikání" +#define D_BLINKOFF "BlikáníVyp" +#define D_BOOT_COUNT "Počítadlo spuštění" +#define D_BRIGHTLIGHT "Světlý" +#define D_BUTTON "Tlačítko" +#define D_BY "by" // Written by me +#define D_BYTES "Bytu" +#define D_CELSIUS "Celsia" +#define D_CO2 "Kysličníku uhličitého" +#define D_CODE "kód" // Button code +#define D_COLDLIGHT "Studený" +#define D_COMMAND "Příkaz" +#define D_CONNECTED "...připojeno" +#define D_COUNT "Počítej" +#define D_COUNTER "Počítadlo" +#define D_CURRENT "Proud" // As in Voltage and Current +#define D_DATA "Data" +#define D_DARKLIGHT "Tmavý" +#define D_DEBUG "Debug" +#define D_DISABLED "Zablokováno" +#define D_DNS_SERVER "Server DNS" +#define D_DONE "Provedeno" +#define D_DST_TIME "DST" +#define D_EMULATION "Emulace" +#define D_ENABLED "Otevřený" +#define D_ERASE "Smaž" +#define D_ERROR "Chyba" +#define D_FAHRENHEIT "Fahrenheita" +#define D_FAILED "chyba" +#define D_FALLBACK "Záložní" +#define D_FALLBACK_TOPIC "Záložní topic" +#define D_FALSE "Nepravda" +#define D_FILE "Soubor" +#define D_FREE_MEMORY "Volná paměť" +#define D_GAS "Gas" +#define D_GATEWAY "Výchozí brána" +#define D_GROUP "Skupina" +#define D_HOST "Server" +#define D_HOSTNAME "Název serveru" +#define D_HUMIDITY "Vlhkost" +#define D_ILLUMINANCE "Osvětlení" +#define D_IMMEDIATE "Mžikové" // Button immediate +#define D_INDEX "Index" +#define D_INFO "Informace" +#define D_INITIALIZED "Inicializovaný" +#define D_IP_ADDRESS "Adresa IP" +#define D_LIGHT "Světlo" +#define D_LWT "LWT" +#define D_MODULE "Modul" +#define D_MQTT "MQTT" +#define D_MULTI_PRESS "několikeré-stisknutí" +#define D_NOISE "Hluk" +#define D_NONE "Není" +#define D_OFF "Vypnutý" +#define D_OFFLINE "Neaktivní" +#define D_OK "OK" +#define D_ON "Sepnutý" +#define D_ONLINE "Aktivní" +#define D_PASSWORD "Heslo" +#define D_PORT "Port" +#define D_POWER_FACTOR "Součinitel příkonu" +#define D_POWERUSAGE "Příkon" +#define D_PRESSURE "Tlak" +#define D_PRESSUREATSEALEVEL "Tlak na úrovni hladiny moře" +#define D_PROGRAM_FLASH_SIZE "Velikost flash programu" +#define D_PROGRAM_SIZE "Velikost programu" +#define D_PROJECT "Projekt" +#define D_RECEIVED "Obdržený" +#define D_RESTART "Restart" +#define D_RESTARTING "Restartování" +#define D_RESTART_REASON "Příčina restartu" +#define D_RESTORE "Načtený" +#define D_RETAINED "Uloženo" +#define D_SAVE "Ulož" +#define D_SENSOR "Sensor" +#define D_SSID "SSID" +#define D_START "Start" +#define D_STD_TIME "STD" +#define D_STOP "Stop" +#define D_SUBNET_MASK "Maska podsítě" +#define D_SUBSCRIBE_TO "Přihlaš se do" +#define D_SUCCESSFUL "úspěšné." +#define D_TEMPERATURE "Teplota" +#define D_TO "do" +#define D_TOGGLE "Přepni" +#define D_TOPIC "Topic" +#define D_TRANSMIT "Odešli" +#define D_TRUE "Pravda" +#define D_UPGRADE "aktualizace" +#define D_UPLOAD "Nahrání..." +#define D_UPTIME "Uptime" +#define D_USER "Uživatel" +#define D_UTC_TIME "UTC" +#define D_UV_LEVEL "úroveň UV" +#define D_VERSION "Verze" +#define D_VOLTAGE "Napětí" +#define D_WARMLIGHT "Ohřev" +#define D_WEB_SERVER "Web Server" + +// sonoff.ino +#define D_WARNING_MINIMAL_VERSION "WARNING Tato verze nepodporuje trvalé nastavení" +#define D_LEVEL_10 "úroveň 1-0" +#define D_LEVEL_01 "úroveň 0-1" +#define D_SERIAL_LOGGING_DISABLED "Logování na sériovém portu ukončeno" +#define D_SYSLOG_LOGGING_REENABLED "Obnoven zápis do Syslog" + +#define D_SET_BAUDRATE_TO "Nastavení rychlosti přenosu na" +#define D_RECEIVED_TOPIC "Obdržený topic" +#define D_DATA_SIZE "Velikost dat" +#define D_ANALOG_INPUT "Analogový vstup" + +// support.ino +#define D_OSWATCH "osWatch" +#define D_BLOCKED_LOOP "Zablokování smyčky" +#define D_WPS_FAILED_WITH_STATUS "Chyba WPSconfig se statusem" +#define D_ACTIVE_FOR_3_MINUTES "aktivní 3 minuty" +#define D_FAILED_TO_START "nepodařilo se spustit" +#define D_PATCH_ISSUE_2186 "Chyba 2186" +#define D_CONNECTING_TO_AP "Připojování k AP" +#define D_IN_MODE "v módu" +#define D_CONNECT_FAILED_NO_IP_ADDRESS "Chyba připojení, nebyla obdržena IP adresa" +#define D_CONNECT_FAILED_AP_NOT_REACHED "Chyba připojení, nedostupný AP" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Chyba připojení, nesprávné heslo pro AP" +#define D_CONNECT_FAILED_AP_TIMEOUT "Chyba připojení, uplynul AP timeout" +#define D_ATTEMPTING_CONNECTION "Připojování..." +#define D_CHECKING_CONNECTION "Zkouška spojení..." +#define D_QUERY_DONE "Vyslání dotazu. Nalezena služba MQTT" +#define D_MQTT_SERVICE_FOUND "Služba MQTT byla nalezena" +#define D_FOUND_AT "znalezeno v" +#define D_SYSLOG_HOST_NOT_FOUND "Syslog Host nebyl nalezen" + +// settings.ino +#define D_SAVED_TO_FLASH_AT "Uloženo do paměti flash v" +#define D_LOADED_FROM_FLASH_AT "Staženo z paměti flash z" +#define D_USE_DEFAULTS "Použij defaultní hodnoty" +#define D_ERASED_SECTOR "Smazaný sektor" + +// webserver.ino +#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "Firmware MINIMÁLNÍ - prosím zaktualizujte" +#define D_WEBSERVER_ACTIVE_ON "Aktivní Web server" +#define D_WITH_IP_ADDRESS "na IP adrese" +#define D_WEBSERVER_STOPPED "Web server zastaven" +#define D_FILE_NOT_FOUND "Soubor nebyl nalezen" +#define D_REDIRECTED "Přesměrování na vlastní portál" +#define D_WIFIMANAGER_SET_ACCESSPOINT_AND_STATION "Wi-Fi manager nastaví AP a zachová STA" +#define D_WIFIMANAGER_SET_ACCESSPOINT "Wi-Fi manager nastaví Access Point" +#define D_TRYING_TO_CONNECT "Zkouším připojit zařízení k síti" + +#define D_RESTART_IN "Restart" +#define D_SECONDS "sekund" +#define D_DEVICE_WILL_RESTART "Zařízení bude zrestartováno během několika sekund" +#define D_BUTTON_TOGGLE "Přepínač" +#define D_CONFIGURATION "Nastavení" +#define D_INFORMATION "Informace" +#define D_FIRMWARE_UPGRADE "Aktualizace firmware" +#define D_CONSOLE "Konzole" +#define D_CONFIRM_RESTART "Potvrzení restartu" + +#define D_CONFIGURE_MODULE "Nastavení modulu" +#define D_CONFIGURE_WIFI "Nastavení WiFi" +#define D_CONFIGURE_MQTT "Nastavení MQTT" +#define D_CONFIGURE_DOMOTICZ "Nastavení Domoticz" +#define D_CONFIGURE_LOGGING "Nastavení logování" +#define D_CONFIGURE_OTHER "Jiná nastavení" +#define D_CONFIRM_RESET_CONFIGURATION "Potvrzení resetu nastavení" +#define D_RESET_CONFIGURATION "Reset nastavení" +#define D_BACKUP_CONFIGURATION "Záloha nastavení" +#define D_RESTORE_CONFIGURATION "Obnovení nastavení" +#define D_MAIN_MENU "Hlavní menu" + +#define D_MODULE_PARAMETERS "Parametry modulu" +#define D_MODULE_TYPE "Typ modulu" +#define D_GPIO "GPIO" +#define D_SERIAL_IN "Serial In" +#define D_SERIAL_OUT "Serial Out" + +#define D_WIFI_PARAMETERS "Parametry WiFi" +#define D_SCAN_FOR_WIFI_NETWORKS "Scan sítí WiFi" +#define D_SCAN_DONE "Scan dokončen" +#define D_NO_NETWORKS_FOUND "Síť nebyla nalezena" +#define D_REFRESH_TO_SCAN_AGAIN "Zopakovat scan" +#define D_DUPLICATE_ACCESSPOINT "Kopie AP" +#define D_SKIPPING_LOW_QUALITY "Přeskočení z důvodu kvality signálu" +#define D_RSSI "RSSI" +#define D_WEP "WEP" +#define D_WPA_PSK "WPA PSK" +#define D_WPA2_PSK "WPA2 PSK" +#define D_AP1_SSID "AP1 SSID" +#define D_AP1_PASSWORD "Heslo AP1" +#define D_AP2_SSID "AP2 SSID" +#define D_AP2_PASSWORD "Heslo AP2" + +#define D_MQTT_PARAMETERS "Parametry MQTT" +#define D_CLIENT "Klient" +#define D_FULL_TOPIC "Celý topic" + +#define D_LOGGING_PARAMETERS "Volby logování" +#define D_SERIAL_LOG_LEVEL "Seriová úroveň logu" +#define D_WEB_LOG_LEVEL "Webová úroveň logu" +#define D_SYS_LOG_LEVEL "Systemová úroveň logu" +#define D_MORE_DEBUG "Více debug informací" +#define D_SYSLOG_HOST "Syslog host" +#define D_SYSLOG_PORT "Syslog port" +#define D_TELEMETRY_PERIOD "Interval telemetrie" + +#define D_OTHER_PARAMETERS "Jiné parametry" +#define D_WEB_ADMIN_PASSWORD "Heslo Web administrátora" +#define D_MQTT_ENABLE "MQTT aktivní" +#define D_FRIENDLY_NAME "Friendly Name" +#define D_BELKIN_WEMO "Belkin WeMo" +#define D_HUE_BRIDGE "Hue Bridge" +#define D_SINGLE_DEVICE "single device" +#define D_MULTI_DEVICE "multi device" + +#define D_SAVE_CONFIGURATION "Ulož nastavení" +#define D_CONFIGURATION_SAVED "Nastavení uloženo" +#define D_CONFIGURATION_RESET "Nastavení resetováno" + +#define D_PROGRAM_VERSION "Verze programu" +#define D_BUILD_DATE_AND_TIME "Datum a čas kompilace" +#define D_CORE_AND_SDK_VERSION "Verze Core/SDK" +#define D_FLASH_WRITE_COUNT "Počet zápisů do paměti" +#define D_MAC_ADDRESS "Adresa MAC" +#define D_MQTT_HOST "Host MQTT" +#define D_MQTT_PORT "Port MQTT" +#define D_MQTT_CLIENT "Klient MQTT" +#define D_MQTT_USER "Uživatel MQTT" +#define D_MQTT_TOPIC "Topic MQTT" +#define D_MQTT_GROUP_TOPIC "Topic skupiny MQTT" +#define D_MQTT_FULL_TOPIC "Celý topic MQTT" +#define D_MDNS_DISCOVERY "Získávání mDNS" +#define D_MDNS_ADVERTISE "Rozesílání mDNS" +#define D_ESP_CHIP_ID "ID systému ESP" +#define D_FLASH_CHIP_ID "ID systému paměti flash" +#define D_FLASH_CHIP_SIZE "Velikost flash" +#define D_FREE_PROGRAM_SPACE "Volné místo pro program" + +#define D_UPGRADE_BY_WEBSERVER "Aktualizace z Web serveru" +#define D_OTA_URL "URL OTA" +#define D_START_UPGRADE "Start aktualizace" +#define D_UPGRADE_BY_FILE_UPLOAD "Aktualizace nahráním souboru" +#define D_UPLOAD_STARTED "Nahrávání zahájeno" +#define D_UPGRADE_STARTED "Zahájení aktualizace" +#define D_UPLOAD_DONE "Nahrávání ukončeno" +#define D_UPLOAD_ERR_1 "Soubor nebyl vybrán" +#define D_UPLOAD_ERR_2 "Málo místa" +#define D_UPLOAD_ERR_3 "Magický byte má hodnotu jinou než 0xE9" +#define D_UPLOAD_ERR_4 "Velikost programu je větší než skutečná velikost paměti flash" +#define D_UPLOAD_ERR_5 "Chyba nahrávání, nesouhlasí porovnávané bity" +#define D_UPLOAD_ERR_6 "Chyba nahrávání. Spuštěn zápis do logu na úrovni 3" +#define D_UPLOAD_ERR_7 "Nahrávání přerušeno" +#define D_UPLOAD_ERR_8 "Špatný soubor" +#define D_UPLOAD_ERR_9 "Soubor je příliš velký" +#define D_UPLOAD_ERROR_CODE "Chyba nahrávání" + +#define D_ENTER_COMMAND "Vlož příkaz" +#define D_ENABLE_WEBLOG_FOR_RESPONSE "Zapni úroveň 2 zápisu Weblog, pokud je očekávána odpověď" +#define D_NEED_USER_AND_PASSWORD "Vyžadován uživatel=&heslo=" + +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "Verifikuj otisk TLS..." +#define D_TLS_CONNECT_FAILED_TO "Nepřipojeno TLS do" +#define D_RETRY_IN "Zopakuji za" +#define D_VERIFIED "Ověřeno otisk " +#define D_INSECURE "Nesprávné připojení z důvodu chybného otisku TLS" +#define D_CONNECT_FAILED_TO "Spojení se nepodařilo navázat" + +// xdrv_wemohue.ino +#define D_MULTICAST_DISABLED "Multicast je vypnutý" +#define D_MULTICAST_REJOINED "Multicast opět připojený" +#define D_MULTICAST_JOIN_FAILED "Multicast neúspěšný" +#define D_FAILED_TO_SEND_RESPONSE "Nepodařilo se odeslat odpověď" + +#define D_WEMO "WeMo" +#define D_WEMO_BASIC_EVENT "WeMo základní událost" +#define D_WEMO_EVENT_SERVICE "WeMo servisní událost" +#define D_WEMO_META_SERVICE "WeMo meta událost" +#define D_WEMO_SETUP "WeMo setup" +#define D_RESPONSE_SENT "Odpověď odeslána" + +#define D_HUE "Hue" +#define D_HUE_BRIDGE_SETUP "Hue setup" +#define D_HUE_API_NOT_IMPLEMENTED "Hue API není implementováno" +#define D_HUE_API "Hue API" +#define D_HUE_POST_ARGS "Hue POST args" +#define D_3_RESPONSE_PACKETS_SENT "3 pakety odpovědi odeslány" + +// xdrv_05_domoticz.ino +#define D_DOMOTICZ_PARAMETERS "Parametry Domoticz" +#define D_DOMOTICZ_IDX "Idx" +#define D_DOMOTICZ_KEY_IDX "Key idx" +#define D_DOMOTICZ_SWITCH_IDX "Spinac idx" +#define D_DOMOTICZ_SENSOR_IDX "Sensor idx" + #define D_DOMOTICZ_TEMP "Temp" + #define D_DOMOTICZ_TEMP_HUM "Temp,Vlhk" + #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Vlhk,Tlak" + #define D_DOMOTICZ_POWER_ENERGY "Příkon,Energie" + #define D_DOMOTICZ_ILLUMINANCE "Osvětlení" + #define D_DOMOTICZ_COUNT "Počítadlo/PM1" + #define D_DOMOTICZ_VOLTAGE "Napětí/PM2,5" + #define D_DOMOTICZ_CURRENT "Proud/PM10" + #define D_DOMOTICZ_AIRQUALITY "AirQuality" +#define D_DOMOTICZ_UPDATE_TIMER "Aktualizace stopek" + +// xdrv_03_energy.ino +#define D_ENERGY_TODAY "Energie Dnes" +#define D_ENERGY_YESTERDAY "Energie Včera" +#define D_ENERGY_TOTAL "Energie Součet" + +// xsns_05_ds18b20.ino +#define D_SENSOR_BUSY "Sensor DS18x20 obsazen" +#define D_SENSOR_CRC_ERROR "Sensor DS18x20 chyba CRC" +#define D_SENSORS_FOUND "Nalezen sensor DS18x20" + +// xsns_06_dht.ino +#define D_TIMEOUT_WAITING_FOR "Čekání na" +#define D_START_SIGNAL_LOW "signál, startovní nízký" +#define D_START_SIGNAL_HIGH "signál, startovní vysoký" +#define D_PULSE "puls" +#define D_CHECKSUM_FAILURE "Chybný kontrolní součet" + +// xsns_07_sht1x.ino +#define D_SENSOR_DID_NOT_ACK_COMMAND "Sensor neobdržel pžíkaz ACK" +#define D_SHT1X_FOUND "SHT1X nalezen" + +// xsns_18_pms5003.ino +#define D_STANDARD_CONCENTRATION "CF-1 PM" // Standard Particle CF-1 Particle Matter +#define D_ENVIRONMENTAL_CONCENTRATION "PM" // Environmetal Particle Matter +#define D_PARTICALS_BEYOND "Particals" + +// sonoff_template.h +#define D_SENSOR_NONE "Není" +#define D_SENSOR_DHT11 "DHT11" +#define D_SENSOR_AM2301 "AM2301" +#define D_SENSOR_SI7021 "SI7021" +#define D_SENSOR_DS18X20 "DS18x20" +#define D_SENSOR_I2C_SCL "I2C SCL" +#define D_SENSOR_I2C_SDA "I2C SDA" +#define D_SENSOR_WS2812 "WS2812" +#define D_SENSOR_IRSEND "IRsend" +#define D_SENSOR_SWITCH "Spínač" // Suffix "1" +#define D_SENSOR_BUTTON "Tlačít" // Suffix "1" +#define D_SENSOR_RELAY "Relé" // Suffix "1i" +#define D_SENSOR_LED "Led" // Suffix "1i" +#define D_SENSOR_PWM "PWM" // Suffix "1", +#define D_SENSOR_COUNTER "Počíta" // Suffix "1" +#define D_SENSOR_IRRECV "IRrecv" +#define D_SENSOR_MHZ_RX "MHZ Rx" +#define D_SENSOR_MHZ_TX "MHZ Tx" +#define D_SENSOR_PZEM_RX "PZEM Rx" +#define D_SENSOR_PZEM_TX "PZEM Tx" +#define D_SENSOR_SAIR_RX "SAir Rx" +#define D_SENSOR_SAIR_TX "SAir Tx" +#define D_SENSOR_SPI_CS "SPI CS" +#define D_SENSOR_SPI_DC "SPI DC" +#define D_SENSOR_BACKLIGHT "BkLight" +#define D_SENSOR_PMS5003 "PMS5003" +#define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" + +// Units +#define D_UNIT_AMPERE "A" +#define D_UNIT_HOUR "Hod" +#define D_UNIT_KILOOHM "kOhm" +#define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LUX "lx" +#define D_UNIT_MICROGRAM_PER_CUBIC_METER "ug/m3" +#define D_UNIT_MICROMETER "um" +#define D_UNIT_MICROSECOND "us" +#define D_UNIT_MILLIAMPERE "mA" +#define D_UNIT_MILLISECOND "ms" +#define D_UNIT_MINUTE "Min" +#define D_UNIT_PARTS_PER_DECILITER "ppd" +#define D_UNIT_PARTS_PER_MILLION "ppm" +#define D_UNIT_PRESSURE "hPa" +#define D_UNIT_SECOND "sec" +#define D_UNIT_SECTORS "sektory" +#define D_UNIT_VOLT "V" +#define D_UNIT_WATT "W" +#define D_UNIT_WATTHOUR "Wh" + +// Log message prefix +#define D_LOG_APPLICATION "APP: " // Application +#define D_LOG_BRIDGE "BRG: " // Bridge +#define D_LOG_CONFIG "CFG: " // Settings +#define D_LOG_COMMAND "CMD: " // Command +#define D_LOG_DEBUG "DBG: " // Debug +#define D_LOG_DHT "DHT: " // DHT sensor +#define D_LOG_DOMOTICZ "DOM: " // Domoticz +#define D_LOG_DSB "DSB: " // DS18xB20 sensor +#define D_LOG_HTTP "HTP: " // HTTP webserver +#define D_LOG_I2C "I2C: " // I2C +#define D_LOG_IRR "IRR: " // Infra Red Received +#define D_LOG_LOG "LOG: " // Logging +#define D_LOG_MODULE "MOD: " // Module +#define D_LOG_MDNS "DNS: " // mDNS +#define D_LOG_MQTT "MQT: " // MQTT +#define D_LOG_OTHER "OTH: " // Other +#define D_LOG_RESULT "RSL: " // Result +#define D_LOG_RFR "RFR: " // RF Received +#define D_LOG_SERIAL "SER: " // Serial +#define D_LOG_SHT1 "SHT: " // SHT1x sensor +#define D_LOG_UPLOAD "UPL: " // Upload +#define D_LOG_UPNP "UPP: " // UPnP +#define D_LOG_WIFI "WIF: " // Wifi + +#endif // _LANGUAGE_CS_CZ_H_ diff --git a/sonoff/language/de-DE.h b/sonoff/language/de-DE.h index f1eed0dac..b0ea8033a 100644 --- a/sonoff/language/de-DE.h +++ b/sonoff/language/de-DE.h @@ -32,6 +32,9 @@ //#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "de" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "." #define D_MONTH_DAY_SEPARATOR "." @@ -162,13 +165,6 @@ #define D_DATA_SIZE "Datengröße" #define D_ANALOG_INPUT "Analog" -#define D_FINGERPRINT "TLS-Fingerabdruck wird verifiziert..." -#define D_TLS_CONNECT_FAILED_TO "TLS-Verbindung fehlgeschlagen an" -#define D_RETRY_IN "Wiederversuch in" -#define D_VERIFIED "verifiziert" -#define D_INSECURE "unsichere Verbindung aufgrund ungültigen Fingerabdrucks" -#define D_CONNECT_FAILED_TO "Verbindung fehlgeschlagen aufgrund von" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Blocked Loop" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "Aktivere Web Log Level 2 falls Reaktion erwartet" #define D_NEED_USER_AND_PASSWORD "Benutzer benötigt=&password=" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "TLS-Fingerabdruck wird verifiziert..." +#define D_TLS_CONNECT_FAILED_TO "TLS-Verbindung fehlgeschlagen an" +#define D_RETRY_IN "Wiederversuch in" +#define D_VERIFIED "verifiziert mit Fingerabdruck" +#define D_INSECURE "unsichere Verbindung aufgrund ungültigen Fingerabdrucks" +#define D_CONNECT_FAILED_TO "Verbindung fehlgeschlagen aufgrund von" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "Multicast deaktiviert" #define D_MULTICAST_REJOINED "Multicast (wieder-)verbunden" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Hum,Baro" #define D_DOMOTICZ_POWER_ENERGY "Power,Energy" #define D_DOMOTICZ_ILLUMINANCE "Illuminance" - #define D_DOMOTICZ_COUNT "Count" - #define D_DOMOTICZ_VOLTAGE "Voltage" - #define D_DOMOTICZ_CURRENT "Current" + #define D_DOMOTICZ_COUNT "Count/PM1" + #define D_DOMOTICZ_VOLTAGE "Voltage/PM2.5" + #define D_DOMOTICZ_CURRENT "Current/PM10" #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Update timer" @@ -408,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "BkLight" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/en-GB.h b/sonoff/language/en-GB.h index 987d0ccda..5fb862b5e 100644 --- a/sonoff/language/en-GB.h +++ b/sonoff/language/en-GB.h @@ -32,6 +32,9 @@ //#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "en" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "-" #define D_MONTH_DAY_SEPARATOR "-" @@ -162,13 +165,6 @@ #define D_DATA_SIZE "Data Size" #define D_ANALOG_INPUT "Analog" -#define D_FINGERPRINT "Verify TLS fingerprint..." -#define D_TLS_CONNECT_FAILED_TO "TLS Connect failed to" -#define D_RETRY_IN "Retry in" -#define D_VERIFIED "Verified" -#define D_INSECURE "Insecure connection due to invalid Fingerprint" -#define D_CONNECT_FAILED_TO "Connect failed to" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Blocked Loop" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "Enable weblog 2 if response expected" #define D_NEED_USER_AND_PASSWORD "Need user=&password=" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "Verify TLS fingerprint..." +#define D_TLS_CONNECT_FAILED_TO "TLS Connect failed to" +#define D_RETRY_IN "Retry in" +#define D_VERIFIED "Verified using Fingerprint" +#define D_INSECURE "Insecure connection due to invalid Fingerprint" +#define D_CONNECT_FAILED_TO "Connect failed to" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "Multicast disabled" #define D_MULTICAST_REJOINED "Multicast (re)joined" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Hum,Baro" #define D_DOMOTICZ_POWER_ENERGY "Power,Energy" #define D_DOMOTICZ_ILLUMINANCE "Illuminance" - #define D_DOMOTICZ_COUNT "Count" - #define D_DOMOTICZ_VOLTAGE "Voltage" - #define D_DOMOTICZ_CURRENT "Current" + #define D_DOMOTICZ_COUNT "Count/PM1" + #define D_DOMOTICZ_VOLTAGE "Voltage/PM2.5" + #define D_DOMOTICZ_CURRENT "Current/PM10" #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Update timer" @@ -408,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "BkLight" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/es-AR.h b/sonoff/language/es-AR.h index 8386dd605..dbe241731 100644 --- a/sonoff/language/es-AR.h +++ b/sonoff/language/es-AR.h @@ -32,6 +32,9 @@ #define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "es" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "-" #define D_MONTH_DAY_SEPARATOR "-" @@ -162,13 +165,6 @@ #define D_DATA_SIZE "Tamaño de Datos" #define D_ANALOG_INPUT "Entrada Analógica" -#define D_FINGERPRINT "Verificar TLS fingerprint..." -#define D_TLS_CONNECT_FAILED_TO "Falló Conección TLS a" -#define D_RETRY_IN "Reintentando" -#define D_VERIFIED "Verificado" -#define D_INSECURE "Conección insegura por Fingerprint no válido" -#define D_CONNECT_FAILED_TO "Falló Conección a" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Ciclo Bloqueado" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "Habilitar weblog 2 si desea respuesta" #define D_NEED_USER_AND_PASSWORD "Se necesita user=&password=" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "Verificar TLS fingerprint..." +#define D_TLS_CONNECT_FAILED_TO "Falló Conección TLS a" +#define D_RETRY_IN "Reintentando" +#define D_VERIFIED "Verificado Fingerprint" +#define D_INSECURE "Conección insegura por Fingerprint no válido" +#define D_CONNECT_FAILED_TO "Falló Conección a" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "Multicast deshabilitado" #define D_MULTICAST_REJOINED "Multicast (re)conectado" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Hum,Baro" #define D_DOMOTICZ_POWER_ENERGY "Potencia,Energía" #define D_DOMOTICZ_ILLUMINANCE "Luminancia" - #define D_DOMOTICZ_COUNT "Contador" - #define D_DOMOTICZ_VOLTAGE "Voltaje" - #define D_DOMOTICZ_CURRENT "Corriente" + #define D_DOMOTICZ_COUNT "Contador/PM1" + #define D_DOMOTICZ_VOLTAGE "Voltaje/PM2,5" + #define D_DOMOTICZ_CURRENT "Corriente/PM10" #define D_DOMOTICZ_AIRQUALITY "Calidad del Aire" #define D_DOMOTICZ_UPDATE_TIMER "Intervalo de refresco" @@ -408,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "BkLight" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/fr-FR.h b/sonoff/language/fr-FR.h index 9364bc102..7b9c0137f 100644 --- a/sonoff/language/fr-FR.h +++ b/sonoff/language/fr-FR.h @@ -32,6 +32,9 @@ #define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "fr" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "-" #define D_MONTH_DAY_SEPARATOR "-" @@ -162,13 +165,6 @@ #define D_DATA_SIZE "Taille données" #define D_ANALOG_INPUT "Analogique" -#define D_FINGERPRINT "Verification empreinte TLS ..." -#define D_TLS_CONNECT_FAILED_TO "Echec de connexion TLS à" -#define D_RETRY_IN "Nouvelle tentative dans" -#define D_VERIFIED "Verifié" -#define D_INSECURE "Connexion non sécurisée car empreinte non vérifée" -#define D_CONNECT_FAILED_TO "Echec de connexion à" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Boucle bloquée" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "Activer weblog 2 si response attendue" #define D_NEED_USER_AND_PASSWORD "Nécessite utilisateur=&password=" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "Verification empreinte TLS ..." +#define D_TLS_CONNECT_FAILED_TO "Echec de connexion TLS à" +#define D_RETRY_IN "Nouvelle tentative dans" +#define D_VERIFIED "Verifié empreinte " +#define D_INSECURE "Connexion non sécurisée car empreinte non vérifée" +#define D_CONNECT_FAILED_TO "Echec de connexion à" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "Multicast désactivé" #define D_MULTICAST_REJOINED "Multicast (re)joint" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Hum,Baro" #define D_DOMOTICZ_POWER_ENERGY "Power,Energy" #define D_DOMOTICZ_ILLUMINANCE "Illuminance" - #define D_DOMOTICZ_COUNT "Count" - #define D_DOMOTICZ_VOLTAGE "Voltage" - #define D_DOMOTICZ_CURRENT "Current" + #define D_DOMOTICZ_COUNT "Count/PM1" + #define D_DOMOTICZ_VOLTAGE "Voltage/PM2,5" + #define D_DOMOTICZ_CURRENT "Current/PM10" #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Update timer" @@ -408,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "BkLight" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/hu-HU.h b/sonoff/language/hu-HU.h index f1fb99c61..82dde4c38 100644 --- a/sonoff/language/hu-HU.h +++ b/sonoff/language/hu-HU.h @@ -32,6 +32,9 @@ //#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "hu" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "." #define D_MONTH_DAY_SEPARATOR "." @@ -56,7 +59,7 @@ #define D_BOOT_COUNT "Bootolások száma" #define D_BRIGHTLIGHT "Max. fényerő" #define D_BUTTON "Gomb" -#define D_BY "által" // Written by me +#define D_BY "tőle:" // Written by me #define D_BYTES "Byte-ok" #define D_CELSIUS "Celsius" #define D_CO2 "Szén-dioxid" @@ -68,7 +71,7 @@ #define D_COUNTER "Számláló" #define D_CURRENT "Áram" // As in Voltage and Current #define D_DATA "Adat" -#define D_DARKLIGHT "Min. févnyerő" +#define D_DARKLIGHT "Min. fényerő" #define D_DEBUG "Debug" #define D_DISABLED "Letiltva" #define D_DNS_SERVER "DNS Szerver" @@ -162,13 +165,6 @@ #define D_DATA_SIZE "Adat Méret" #define D_ANALOG_INPUT "Analóg" -#define D_FINGERPRINT "TLS fingerprint hitelesítése..." -#define D_TLS_CONNECT_FAILED_TO "TLS Csatlakozás sikertelen a" -#define D_RETRY_IN "Újrapróbálás" -#define D_VERIFIED "Hitelesítve" -#define D_INSECURE "Nem biztonságos kapcsolat érvénytelen Fingerprint miatt" -#define D_CONNECT_FAILED_TO "Sikertelen csatlakozás a" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Blocked Loop" @@ -214,7 +210,7 @@ #define D_INFORMATION "Információ" #define D_FIRMWARE_UPGRADE "Firmware Frissítés" #define D_CONSOLE "Konzol" -#define D_CONFIRM_RESTART "Újraindítés megerősítése" +#define D_CONFIRM_RESTART "Újraindítás megerősítése" #define D_CONFIGURE_MODULE "Eszköz konfiguráció" #define D_CONFIGURE_WIFI "WiFi konfiguráció" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "Engedélyezz 2-es weblogolást több információért" #define D_NEED_USER_AND_PASSWORD "Kell felhasználó=&jelszó=" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "TLS fingerprint hitelesítése..." +#define D_TLS_CONNECT_FAILED_TO "TLS Csatlakozás sikertelen a" +#define D_RETRY_IN "Újrapróbálás" +#define D_VERIFIED "Hitelesítve Fingerprint" +#define D_INSECURE "Nem biztonságos kapcsolat érvénytelen Fingerprint miatt" +#define D_CONNECT_FAILED_TO "Sikertelen csatlakozás a" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "Multicast kikapcsolva" #define D_MULTICAST_REJOINED "Multicast (újra)csatlakozás" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "Hőm,Párat,Légny" #define D_DOMOTICZ_POWER_ENERGY "Teljesítmény,Energia" #define D_DOMOTICZ_ILLUMINANCE "Fényerő" - #define D_DOMOTICZ_COUNT "Szám" - #define D_DOMOTICZ_VOLTAGE "Feszültség" - #define D_DOMOTICZ_CURRENT "Áram" + #define D_DOMOTICZ_COUNT "Szám/PM1" + #define D_DOMOTICZ_VOLTAGE "Feszültség/PM2.5" + #define D_DOMOTICZ_CURRENT "Áram/PM10" #define D_DOMOTICZ_AIRQUALITY "Légminőség" #define D_DOMOTICZ_UPDATE_TIMER "Update időzítő" @@ -408,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "Háttérvil" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "A" @@ -455,4 +461,4 @@ #define D_LOG_UPNP "UPP: " // UPnP #define D_LOG_WIFI "WIF: " // Wifi -#endif // _LANGUAGE_EN_GB_H_ +#endif // _LANGUAGE_HU_HU_H_ diff --git a/sonoff/language/it-IT.h b/sonoff/language/it-IT.h index ea6ce9804..4e16869a4 100644 --- a/sonoff/language/it-IT.h +++ b/sonoff/language/it-IT.h @@ -32,6 +32,9 @@ #define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "it" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "-" #define D_MONTH_DAY_SEPARATOR "-" @@ -162,13 +165,6 @@ #define D_DATA_SIZE "Dimensione Dati" #define D_ANALOG_INPUT "Ingresso Analogico" -#define D_FINGERPRINT "Verifica TLS fingerprint..." -#define D_TLS_CONNECT_FAILED_TO "Connessione TLS fallita a" -#define D_RETRY_IN "Nuovo tentativo in" -#define D_VERIFIED "Verificato" -#define D_INSECURE "Connessione insicura a causa di Fingerprint non valido" -#define D_CONNECT_FAILED_TO "Connessione Fallita a" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Ciclo Bloccato" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "Abilitare weblog 2 se e' attesa una risposta" #define D_NEED_USER_AND_PASSWORD "Richiesto user=&password=" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "Verifica TLS fingerprint..." +#define D_TLS_CONNECT_FAILED_TO "Connessione TLS fallita a" +#define D_RETRY_IN "Nuovo tentativo in" +#define D_VERIFIED "Verificato Fingerprint" +#define D_INSECURE "Connessione insicura a causa di Fingerprint non valido" +#define D_CONNECT_FAILED_TO "Connessione Fallita a" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "Multicast disabilitato" #define D_MULTICAST_REJOINED "Multicast (ri)associato" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Hum,Baro" #define D_DOMOTICZ_POWER_ENERGY "Power,Energy" #define D_DOMOTICZ_ILLUMINANCE "Illuminance" - #define D_DOMOTICZ_COUNT "Count" - #define D_DOMOTICZ_VOLTAGE "Voltage" - #define D_DOMOTICZ_CURRENT "Current" + #define D_DOMOTICZ_COUNT "Count/PM1" + #define D_DOMOTICZ_VOLTAGE "Voltage/PM2.5" + #define D_DOMOTICZ_CURRENT "Current/PM10" #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Intervallo di aggiornamento" @@ -408,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "BkLight" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/nl-NL.h b/sonoff/language/nl-NL.h index c260553a0..53bdb7f67 100644 --- a/sonoff/language/nl-NL.h +++ b/sonoff/language/nl-NL.h @@ -32,6 +32,9 @@ //#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "nl" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "-" #define D_MONTH_DAY_SEPARATOR "-" @@ -162,13 +165,6 @@ #define D_DATA_SIZE "Data lengte" #define D_ANALOG_INPUT "Analoog" -#define D_FINGERPRINT "Controleer TLS vingerafdruk..." -#define D_TLS_CONNECT_FAILED_TO "TLS Verbinding mislukt naar" -#define D_RETRY_IN "Opnieuw proberen over" -#define D_VERIFIED "Gecontroleerd" -#define D_INSECURE "Door ongeldige vingerafdruk een onveilige verbinding" -#define D_CONNECT_FAILED_TO "Verbinding mislukt naar" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Blocked Loop" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "Schakel weblog 2 in indien antwoord verwacht" #define D_NEED_USER_AND_PASSWORD "Benodig user=&password=" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "Controleer TLS vingerafdruk..." +#define D_TLS_CONNECT_FAILED_TO "TLS Verbinding mislukt naar" +#define D_RETRY_IN "Opnieuw proberen over" +#define D_VERIFIED "Gecontroleerd met vingerafdruk" +#define D_INSECURE "Door ongeldige vingerafdruk een onveilige verbinding" +#define D_CONNECT_FAILED_TO "Verbinding mislukt naar" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "Multicast uitgeschakeld" #define D_MULTICAST_REJOINED "Multicast verbonden" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Hum,Baro" #define D_DOMOTICZ_POWER_ENERGY "Power,Energy" #define D_DOMOTICZ_ILLUMINANCE "Illuminance" - #define D_DOMOTICZ_COUNT "Count" - #define D_DOMOTICZ_VOLTAGE "Spanning" - #define D_DOMOTICZ_CURRENT "Stroom" + #define D_DOMOTICZ_COUNT "Count/PM1" + #define D_DOMOTICZ_VOLTAGE "Spanning/PM2,5" + #define D_DOMOTICZ_CURRENT "Stroom/PM10" #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Bijwerk timer" @@ -408,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "BkLight" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/pl-PL.h b/sonoff/language/pl-PL.h index 334934a12..90a69afb5 100644 --- a/sonoff/language/pl-PL.h +++ b/sonoff/language/pl-PL.h @@ -32,6 +32,9 @@ //#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "pl" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "-" #define D_MONTH_DAY_SEPARATOR "-" @@ -162,13 +165,6 @@ #define D_DATA_SIZE "Wielkość danych" #define D_ANALOG_INPUT "Wej_analogowe" -#define D_FINGERPRINT "Weryfikuj odcisk TLS..." -#define D_TLS_CONNECT_FAILED_TO "Nieudane połączenie TLS do" -#define D_RETRY_IN "Spróbuj ponownie" -#define D_VERIFIED "Zweryfikowano" -#define D_INSECURE "Nieprawidłowe połączenie z powodu błędnego odcisku TLS" -#define D_CONNECT_FAILED_TO "Nie udało się nawiązać połączenia" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Pętla zablokowana" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "Włącz poziom 2 zapisu Weblog, jeśli oczekiwana jest odpowiedź" #define D_NEED_USER_AND_PASSWORD "Wymagany użytkownik=&hasło=" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "Weryfikuj odcisk TLS..." +#define D_TLS_CONNECT_FAILED_TO "Nieudane połączenie TLS do" +#define D_RETRY_IN "Spróbuj ponownie" +#define D_VERIFIED "Zweryfikowano odcisku" +#define D_INSECURE "Nieprawidłowe połączenie z powodu błędnego odcisku TLS" +#define D_CONNECT_FAILED_TO "Nie udało się nawiązać połączenia" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "Multicast jest wyłączony" #define D_MULTICAST_REJOINED "Multicast (re)dołączony" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Wilg,Cis" #define D_DOMOTICZ_POWER_ENERGY "Moc,Energia" #define D_DOMOTICZ_ILLUMINANCE "Oświetl." - #define D_DOMOTICZ_COUNT "Licznik" - #define D_DOMOTICZ_VOLTAGE "Napięcie" - #define D_DOMOTICZ_CURRENT "Prąd" + #define D_DOMOTICZ_COUNT "Licznik/PM1" + #define D_DOMOTICZ_VOLTAGE "Napięcie/PM2,5" + #define D_DOMOTICZ_CURRENT "Prąd/PM10" #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Zaktualizuj czasomierz" @@ -408,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "BkLight" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/pt-PT.h b/sonoff/language/pt-PT.h index 7fd9bac23..7d8f0512c 100644 --- a/sonoff/language/pt-PT.h +++ b/sonoff/language/pt-PT.h @@ -32,6 +32,9 @@ //#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "pt" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "-" #define D_MONTH_DAY_SEPARATOR "-" @@ -162,13 +165,6 @@ #define D_DATA_SIZE "Tamanho de dados" #define D_ANALOG_INPUT "Entrada Analógica" -#define D_FINGERPRINT "Verifique a impressão digital TLS..." -#define D_TLS_CONNECT_FAILED_TO "TLS não conseguiu ligar" -#define D_RETRY_IN "Tentativa em" -#define D_VERIFIED "Verificado" -#define D_INSECURE "Ligação insegura devido à impressão digital inválida" -#define D_CONNECT_FAILED_TO "A ligação falhou ao" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Loop Bloqueado" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "Habilitar weblog 2 se resposta esperada" #define D_NEED_USER_AND_PASSWORD "Necessário user=&password=" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "Verifique a impressão digital TLS..." +#define D_TLS_CONNECT_FAILED_TO "TLS não conseguiu ligar" +#define D_RETRY_IN "Tentativa em" +#define D_VERIFIED "Verificado impressão digital " +#define D_INSECURE "Ligação insegura devido à impressão digital inválida" +#define D_CONNECT_FAILED_TO "A ligação falhou ao" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "Multicast desabilitado" #define D_MULTICAST_REJOINED "Multicast (re)ingressou" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Hum,Baro" #define D_DOMOTICZ_POWER_ENERGY "Potência,Energia" #define D_DOMOTICZ_ILLUMINANCE "Luminâcia" - #define D_DOMOTICZ_COUNT "Contagem" - #define D_DOMOTICZ_VOLTAGE "Voltagem" - #define D_DOMOTICZ_CURRENT "Corrente" + #define D_DOMOTICZ_COUNT "Contagem/PM1" + #define D_DOMOTICZ_VOLTAGE "Voltagem/PM2.5" + #define D_DOMOTICZ_CURRENT "Corrente/PM10" #define D_DOMOTICZ_AIRQUALITY "Qualidade do Ar" #define D_DOMOTICZ_UPDATE_TIMER "Tempo de atualização" @@ -408,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "Luz negra" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/ru-RU.h b/sonoff/language/ru-RU.h index b0f5cd764..640b8bef7 100644 --- a/sonoff/language/ru-RU.h +++ b/sonoff/language/ru-RU.h @@ -32,6 +32,9 @@ //#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "ru" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "-" #define D_MONTH_DAY_SEPARATOR "-" @@ -162,13 +165,6 @@ #define D_DATA_SIZE "Размер данных" #define D_ANALOG_INPUT "Аналоговый вход" -#define D_FINGERPRINT "Проверка TLS Fingerprint..." -#define D_TLS_CONNECT_FAILED_TO "Сбой подключения TLS к" -#define D_RETRY_IN "Повторить" -#define D_VERIFIED "Проверено" -#define D_INSECURE "Небезопасное соединение, недействительный Fingerprint" -#define D_CONNECT_FAILED_TO "Ошибка подключения к" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Блокирующий цикл" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "Включить Веб лог уровня 2 если ожидается ответ" #define D_NEED_USER_AND_PASSWORD "Ожидается user=&password=" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "Проверка TLS Fingerprint..." +#define D_TLS_CONNECT_FAILED_TO "Сбой подключения TLS к" +#define D_RETRY_IN "Повторить" +#define D_VERIFIED "Проверено Fingerprint" +#define D_INSECURE "Небезопасное соединение, недействительный Fingerprint" +#define D_CONNECT_FAILED_TO "Ошибка подключения к" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "Multicast отключен" #define D_MULTICAST_REJOINED "Multicast (ре)соединился" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Hum,Baro" #define D_DOMOTICZ_POWER_ENERGY "Power,Energy" #define D_DOMOTICZ_ILLUMINANCE "Illuminance" - #define D_DOMOTICZ_COUNT "Count" - #define D_DOMOTICZ_VOLTAGE "Voltage" - #define D_DOMOTICZ_CURRENT "Current" + #define D_DOMOTICZ_COUNT "Count/PM1" + #define D_DOMOTICZ_VOLTAGE "Voltage/PM2,5" + #define D_DOMOTICZ_CURRENT "Current/PM10" #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Update timer" @@ -381,7 +385,6 @@ #define D_PARTICALS_BEYOND "Particals" // sonoff_template.h -// Max string length is 8 characters including suffixes #define D_SENSOR_NONE "-нет-" #define D_SENSOR_DHT11 "DHT11" #define D_SENSOR_AM2301 "AM2301" @@ -409,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "BkLight" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "А" diff --git a/sonoff/language/zh-CN.h b/sonoff/language/zh-CN.h index feff61a23..0cd86bcc8 100644 --- a/sonoff/language/zh-CN.h +++ b/sonoff/language/zh-CN.h @@ -32,6 +32,9 @@ //#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "zh" + // "2017-03-07T11:08:02" - ISO8601:2004 #define D_YEAR_MONTH_SEPARATOR "-" #define D_MONTH_DAY_SEPARATOR "-" @@ -162,13 +165,6 @@ #define D_DATA_SIZE "数据大小:" #define D_ANALOG_INPUT "Analog" -#define D_FINGERPRINT "验证 TLS 指纹..." -#define D_TLS_CONNECT_FAILED_TO "TLS 连接失败" -#define D_RETRY_IN "重试倒计时:" -#define D_VERIFIED "验证成功" -#define D_INSECURE "指纹无效导致连接不安全" -#define D_CONNECT_FAILED_TO "连接失败:" - // support.ino #define D_OSWATCH "osWatch" #define D_BLOCKED_LOOP "Blocked Loop" @@ -317,6 +313,14 @@ #define D_ENABLE_WEBLOG_FOR_RESPONSE "如果预期响应,则启用Weblog 2" #define D_NEED_USER_AND_PASSWORD "需要 user=<用户名>&password=<密码>" +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "验证 TLS 指纹..." +#define D_TLS_CONNECT_FAILED_TO "TLS 连接失败" +#define D_RETRY_IN "重试倒计时:" +#define D_VERIFIED "验证成功" +#define D_INSECURE "指纹无效导致连接不安全" +#define D_CONNECT_FAILED_TO "连接失败:" + // xdrv_wemohue.ino #define D_MULTICAST_DISABLED "组播已禁用" #define D_MULTICAST_REJOINED "组播已(重新)加入" @@ -348,9 +352,9 @@ #define D_DOMOTICZ_TEMP_HUM_BARO "温度,湿度,气压" #define D_DOMOTICZ_POWER_ENERGY "功率,电量" #define D_DOMOTICZ_ILLUMINANCE "照度" - #define D_DOMOTICZ_COUNT "数值" - #define D_DOMOTICZ_VOLTAGE "电压" - #define D_DOMOTICZ_CURRENT "电流" + #define D_DOMOTICZ_COUNT "数值/PM1" + #define D_DOMOTICZ_VOLTAGE "电压/PM2.5" + #define D_DOMOTICZ_CURRENT "电流/PM10" #define D_DOMOTICZ_AIRQUALITY "空气质量" #define D_DOMOTICZ_UPDATE_TIMER "更新计时器" @@ -408,6 +412,8 @@ #define D_SENSOR_BACKLIGHT "BkLight" #define D_SENSOR_PMS5003 "PMS5003" #define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" // Units #define D_UNIT_AMPERE "安" diff --git a/sonoff/language/zh-TW.h b/sonoff/language/zh-TW.h new file mode 100644 index 000000000..c3efc118b --- /dev/null +++ b/sonoff/language/zh-TW.h @@ -0,0 +1,464 @@ +/* + zh-TW.h - localization for Chinese (Traditional) - Taiwan for Sonoff-Tasmota + + Copyright (C) 2018 Theo Arends (translated by dannydu) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _LANGUAGE_ZH_TW_H_ +#define _LANGUAGE_ZH_TW_H_ + +/*************************** ATTENTION *******************************\ + * + * Due to memory constraints only UTF-8 is supported. + * To save code space keep text as short as possible. + * Time and Date provided by SDK can not be localized (yet). + * Use online command StateText to translate ON, OFF, HOLD and TOGGLE. + * Use online command Prefix to translate cmnd, stat and tele. + * +\*********************************************************************/ + +//#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) + +// HTML (ISO 639-1) Language Code +#define D_HTML_LANGUAGE "zh" + +// "2017-03-07T11:08:02" - ISO8601:2004 +#define D_YEAR_MONTH_SEPARATOR "-" +#define D_MONTH_DAY_SEPARATOR "-" +#define D_DATE_TIME_SEPARATOR "T" +#define D_HOUR_MINUTE_SEPARATOR ":" +#define D_MINUTE_SECOND_SEPARATOR ":" + +#define D_DAY3LIST "SunMonTueWedThuFriSat" +#define D_MONTH3LIST "JanFebMarAprMayJunJulAugSepOctNovDec" + +// Non JSON decimal separator +#define D_DECIMAL_SEPARATOR "." + +// Common +#define D_ADMIN "Admin" +#define D_AIR_QUALITY "空氣品質" +#define D_AP "AP" // Access Point +#define D_AS "名稱:" +#define D_AUTO "自動" +#define D_BLINK "閃爍" +#define D_BLINKOFF "閃爍關" +#define D_BOOT_COUNT "啟動次數" +#define D_BRIGHTLIGHT "亮度" +#define D_BUTTON "按鈕" +#define D_BY "by" // Written by me +#define D_BYTES "大小:" +#define D_CELSIUS "攝氏" +#define D_CO2 "二氧化碳" +#define D_CODE "代碼" // Button code +#define D_COLDLIGHT "冷" +#define D_COMMAND "命令:" +#define D_CONNECTED "已連接" +#define D_COUNT "數量:" +#define D_COUNTER "Counter" +#define D_CURRENT "電流" // As in Voltage and Current +#define D_DATA "數據:" +#define D_DARKLIGHT "Dark" +#define D_DEBUG "除錯" +#define D_DISABLED "停用" +#define D_DNS_SERVER "DNS伺服器" +#define D_DONE "完成" +#define D_DST_TIME "DST" +#define D_EMULATION "設備模擬" +#define D_ENABLED "啟用" +#define D_ERASE "刪除" +#define D_ERROR "錯誤" +#define D_FAHRENHEIT "華氏" +#define D_FAILED "失敗" +#define D_FALLBACK "Fallback" +#define D_FALLBACK_TOPIC "Fallback Topic" +#define D_FALSE "False" +#define D_FILE "文件:" +#define D_FREE_MEMORY "可用記憶體" +#define D_GAS "氣體" +#define D_GATEWAY "網關" +#define D_GROUP "組:" +#define D_HOST "主機" +#define D_HOSTNAME "主機名" +#define D_HUMIDITY "濕度" +#define D_ILLUMINANCE "照度" +#define D_IMMEDIATE "immediate" // Button immediate +#define D_INDEX "索引:" +#define D_INFO "信息" +#define D_INITIALIZED "初始化完成" +#define D_IP_ADDRESS "IP地址" +#define D_LIGHT "燈" +#define D_LWT "LWT" +#define D_MODULE "模組" +#define D_MQTT "MQTT" +#define D_MULTI_PRESS "多次按鍵" +#define D_NOISE "雜訊" +#define D_NONE "無" +#define D_OFF "關" +#define D_OFFLINE "離線" +#define D_OK "好" +#define D_ON "開" +#define D_ONLINE "在線" +#define D_PASSWORD "密碼" +#define D_PORT "端口" +#define D_POWER_FACTOR "功率因數" +#define D_POWERUSAGE "功率" +#define D_PRESSURE "氣壓" +#define D_PRESSUREATSEALEVEL "海平面氣壓" +#define D_PROGRAM_FLASH_SIZE "韌體 Flash 大小" +#define D_PROGRAM_SIZE "韌體大小" +#define D_PROJECT "項目:" +#define D_RECEIVED "已接收" +#define D_RESTART "重啟" +#define D_RESTARTING "正在重啟" +#define D_RESTART_REASON "重啟原因" +#define D_RESTORE "恢覆" +#define D_RETAINED "已保留" +#define D_SAVE "存檔" +#define D_SENSOR "感測器" +#define D_SSID "名稱" +#define D_START "開始" +#define D_STD_TIME "STD" +#define D_STOP "停止" +#define D_SUBNET_MASK "子網遮罩" +#define D_SUBSCRIBE_TO "訂閱" +#define D_SUCCESSFUL "成功" +#define D_TEMPERATURE "溫度" +#define D_TO "to" +#define D_TOGGLE "切換" +#define D_TOPIC "主題" +#define D_TRANSMIT "發送" +#define D_TRUE "True" +#define D_UPGRADE "升級" +#define D_UPLOAD "上傳" +#define D_UPTIME "運行時間" +#define D_USER "用戶名" +#define D_UTC_TIME "UTC" +#define D_UV_LEVEL "紫外線等級" +#define D_VERSION "版本" +#define D_VOLTAGE "電壓" +#define D_WARMLIGHT "暖" +#define D_WEB_SERVER "Web Server" + +// sonoff.ino +#define D_WARNING_MINIMAL_VERSION "警告:精簡產品不支持配置寫入保存" +#define D_LEVEL_10 "level 1-0" +#define D_LEVEL_01 "level 0-1" +#define D_SERIAL_LOGGING_DISABLED "串口日誌已禁用" +#define D_SYSLOG_LOGGING_REENABLED "Syslog 日誌已開啟" + +#define D_SET_BAUDRATE_TO "設置波特率為:" +#define D_RECEIVED_TOPIC "接收到的主題:" +#define D_DATA_SIZE "數據大小:" +#define D_ANALOG_INPUT "Analog" + +// support.ino +#define D_OSWATCH "osWatch" +#define D_BLOCKED_LOOP "Blocked Loop" +#define D_WPS_FAILED_WITH_STATUS "WPSconfig FAILED with status" +#define D_ACTIVE_FOR_3_MINUTES "active for 3 minutes" +#define D_FAILED_TO_START "未能啟動" +#define D_PATCH_ISSUE_2186 "Patch issue 2186" +#define D_CONNECTING_TO_AP "連接到 AP" +#define D_IN_MODE "模式:" +#define D_CONNECT_FAILED_NO_IP_ADDRESS "連接失敗,因為沒有獲取到IP地址" +#define D_CONNECT_FAILED_AP_NOT_REACHED "連接失敗,無法連接AP" +#define D_CONNECT_FAILED_WRONG_PASSWORD "連接失敗,AP密碼不正確" +#define D_CONNECT_FAILED_AP_TIMEOUT "連接失敗,AP超時" +#define D_ATTEMPTING_CONNECTION "嘗試連接..." +#define D_CHECKING_CONNECTION "檢查連接..." +#define D_QUERY_DONE "查詢完成。 發現MQTT服務" +#define D_MQTT_SERVICE_FOUND "發現MQTT服務:" +#define D_FOUND_AT "found at" +#define D_SYSLOG_HOST_NOT_FOUND "Syslog主機未找到" + +// settings.ino +#define D_SAVED_TO_FLASH_AT "保存到 flash:" +#define D_LOADED_FROM_FLASH_AT "從 flash 載入" +#define D_USE_DEFAULTS "使用默認設置" +#define D_ERASED_SECTOR "擦除刪除" + +// webserver.ino +#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "固件版本過低 - 請升級" +#define D_WEBSERVER_ACTIVE_ON "Web服務器:" +#define D_WITH_IP_ADDRESS "IP地址:" +#define D_WEBSERVER_STOPPED "Web 服務器已停止" +#define D_FILE_NOT_FOUND "文件未找到" +#define D_REDIRECTED "重定向到認證頁面" +#define D_WIFIMANAGER_SET_ACCESSPOINT_AND_STATION "Wifimanager set AccessPoint and keep Station" +#define D_WIFIMANAGER_SET_ACCESSPOINT "Wifimanager 設置接入點" +#define D_TRYING_TO_CONNECT "嘗試將設備連接到網絡" + +#define D_RESTART_IN "重啟需要" +#define D_SECONDS "秒" +#define D_DEVICE_WILL_RESTART "設備將在幾分鐘內重啟" +#define D_BUTTON_TOGGLE "狀態切換" +#define D_CONFIGURATION "設置" +#define D_INFORMATION "信息" +#define D_FIRMWARE_UPGRADE "固件升級" +#define D_CONSOLE "控制台" +#define D_CONFIRM_RESTART "確認重啟" + +#define D_CONFIGURE_MODULE "模塊設置" +#define D_CONFIGURE_WIFI "WiFi設置" +#define D_CONFIGURE_MQTT "MQTT設置" +#define D_CONFIGURE_DOMOTICZ "Domoticz設置" +#define D_CONFIGURE_LOGGING "日志設置" +#define D_CONFIGURE_OTHER "其他設置" +#define D_CONFIRM_RESET_CONFIGURATION "確認重置配置" +#define D_RESET_CONFIGURATION "重置配置" +#define D_BACKUP_CONFIGURATION "備份配置" +#define D_RESTORE_CONFIGURATION "還原配置" +#define D_MAIN_MENU "主菜單" + +#define D_MODULE_PARAMETERS "模塊設置" +#define D_MODULE_TYPE "模塊類型" +#define D_GPIO "GPIO" +#define D_SERIAL_IN "串口輸入(RX)" +#define D_SERIAL_OUT "串口輸出(TX)" + +#define D_WIFI_PARAMETERS "Wifi設置" +#define D_SCAN_FOR_WIFI_NETWORKS "掃描無線網絡" +#define D_SCAN_DONE "掃描完畢" +#define D_NO_NETWORKS_FOUND "未找到任何網絡" +#define D_REFRESH_TO_SCAN_AGAIN "刷新並重試" +#define D_DUPLICATE_ACCESSPOINT "重覆AP" +#define D_SKIPPING_LOW_QUALITY "忽略弱信號網絡" +#define D_RSSI "RSSI" +#define D_WEP "WEP" +#define D_WPA_PSK "WPA PSK" +#define D_WPA2_PSK "WPA2 PSK" +#define D_AP1_SSID "AP1 名稱" +#define D_AP1_PASSWORD "AP1 密碼" +#define D_AP2_SSID "AP2 名稱" +#define D_AP2_PASSWORD "AP2 密碼" + +#define D_MQTT_PARAMETERS "MQTT設置" +#define D_CLIENT "客戶端" +#define D_FULL_TOPIC "完整主題" + +#define D_LOGGING_PARAMETERS "日志設置" +#define D_SERIAL_LOG_LEVEL "串口日志級別" +#define D_WEB_LOG_LEVEL "Web 日志級別" +#define D_SYS_LOG_LEVEL "Syslog 日志級別" +#define D_MORE_DEBUG "全部調試" +#define D_SYSLOG_HOST "Syslog 主機地址" +#define D_SYSLOG_PORT "Syslog 端口" +#define D_TELEMETRY_PERIOD "上報周期" + +#define D_OTHER_PARAMETERS "其他設置" +#define D_WEB_ADMIN_PASSWORD "WEB管理密碼" +#define D_MQTT_ENABLE "啟用MQTT" +#define D_FRIENDLY_NAME "昵稱" +#define D_BELKIN_WEMO "貝爾金 WeMo" +#define D_HUE_BRIDGE "飛利浦 Hue 網橋" +#define D_SINGLE_DEVICE "單設備" +#define D_MULTI_DEVICE "多設備" + +#define D_SAVE_CONFIGURATION "保存設置" +#define D_CONFIGURATION_SAVED "設置已保存" +#define D_CONFIGURATION_RESET "設置已重置" + +#define D_PROGRAM_VERSION "固件版本" +#define D_BUILD_DATE_AND_TIME "編譯時間" +#define D_CORE_AND_SDK_VERSION "內核版本" +#define D_FLASH_WRITE_COUNT "刷機次數" +#define D_MAC_ADDRESS "MAC地址" +#define D_MQTT_HOST "MQTT主機" +#define D_MQTT_PORT "MQTT端口" +#define D_MQTT_CLIENT "MQTT客戶端" +#define D_MQTT_USER "MQTT用戶名" +#define D_MQTT_TOPIC "MQTT 主題(Topic)" +#define D_MQTT_GROUP_TOPIC "MQTT 主題組(Group Topic)" +#define D_MQTT_FULL_TOPIC "MQTT 完整主題(Full Topic)" +#define D_MDNS_DISCOVERY "mDNS 發現" +#define D_MDNS_ADVERTISE "mDNS 廣播" +#define D_ESP_CHIP_ID "ESP芯片ID" +#define D_FLASH_CHIP_ID "Flash芯片ID" +#define D_FLASH_CHIP_SIZE "Flash大小" +#define D_FREE_PROGRAM_SPACE "空閑程序空間" + +#define D_UPGRADE_BY_WEBSERVER "通過Web升級" +#define D_OTA_URL "OTA地址" +#define D_START_UPGRADE "開始升級" +#define D_UPGRADE_BY_FILE_UPLOAD "通過文件升級" +#define D_UPLOAD_STARTED "開始上傳" +#define D_UPGRADE_STARTED "開始升級" +#define D_UPLOAD_DONE "上傳完成" +#define D_UPLOAD_ERR_1 "沒有選擇文件" +#define D_UPLOAD_ERR_2 "沒有足夠空間" +#define D_UPLOAD_ERR_3 "固件頭不是 0xE9" +#define D_UPLOAD_ERR_4 "固件太大" +#define D_UPLOAD_ERR_5 "上傳緩沖區不匹配" +#define D_UPLOAD_ERR_6 "上傳失敗。 啟用日志記錄 3" +#define D_UPLOAD_ERR_7 "上傳取消" +#define D_UPLOAD_ERR_8 "錯誤的固件" +#define D_UPLOAD_ERR_9 "固件太大" +#define D_UPLOAD_ERROR_CODE "上傳錯誤代碼" + +#define D_ENTER_COMMAND "輸入命令" +#define D_ENABLE_WEBLOG_FOR_RESPONSE "如果預期響應,則啟用Weblog 2" +#define D_NEED_USER_AND_PASSWORD "需要 user=<用戶名>&password=<密碼>" + +// xdrv_00_mqtt.ino +#define D_FINGERPRINT "驗證 TLS 指紋..." +#define D_TLS_CONNECT_FAILED_TO "TLS 連接失敗" +#define D_RETRY_IN "重試倒計時:" +#define D_VERIFIED "驗證成功" +#define D_INSECURE "指紋無效導致連接不安全" +#define D_CONNECT_FAILED_TO "連接失敗:" + +// xdrv_wemohue.ino +#define D_MULTICAST_DISABLED "組播已禁用" +#define D_MULTICAST_REJOINED "組播已(重新)加入" +#define D_MULTICAST_JOIN_FAILED "組播加入失敗" +#define D_FAILED_TO_SEND_RESPONSE "請求發送失敗" + +#define D_WEMO "WeMo" +#define D_WEMO_BASIC_EVENT "WeMo 基礎事件" +#define D_WEMO_EVENT_SERVICE "WeMo 事件服務" +#define D_WEMO_META_SERVICE "WeMo meta 服務" +#define D_WEMO_SETUP "WeMo 設置" +#define D_RESPONSE_SENT "發送請求" + +#define D_HUE "Hue" +#define D_HUE_BRIDGE_SETUP "Hue 設置" +#define D_HUE_API_NOT_IMPLEMENTED "Hue API 未實現" +#define D_HUE_API "Hue API" +#define D_HUE_POST_ARGS "Hue POST 參數" +#define D_3_RESPONSE_PACKETS_SENT "3 請求包發送" + +// xdrv_05_domoticz.ino +#define D_DOMOTICZ_PARAMETERS "Domoticz 設置" +#define D_DOMOTICZ_IDX "Idx" +#define D_DOMOTICZ_KEY_IDX "Key idx" +#define D_DOMOTICZ_SWITCH_IDX "開關 idx" +#define D_DOMOTICZ_SENSOR_IDX "傳感器 idx" + #define D_DOMOTICZ_TEMP "溫度" + #define D_DOMOTICZ_TEMP_HUM "溫度,濕度" + #define D_DOMOTICZ_TEMP_HUM_BARO "溫度,濕度,氣壓" + #define D_DOMOTICZ_POWER_ENERGY "功率,電量" + #define D_DOMOTICZ_ILLUMINANCE "照度" + #define D_DOMOTICZ_COUNT "數值/PM1" + #define D_DOMOTICZ_VOLTAGE "電壓/PM2.5" + #define D_DOMOTICZ_CURRENT "電流/PM10" + #define D_DOMOTICZ_AIRQUALITY "空氣品質" +#define D_DOMOTICZ_UPDATE_TIMER "更新計時器" + +// xdrv_03_energy.ino +#define D_ENERGY_TODAY "今日用電量" +#define D_ENERGY_YESTERDAY "昨日用電量" +#define D_ENERGY_TOTAL "總用電量" + +// xsns_05_ds18b20.ino +#define D_SENSOR_BUSY "傳感器正忙" +#define D_SENSOR_CRC_ERROR "傳感器 CRC 校驗錯誤" +#define D_SENSORS_FOUND "發現傳感器" + +// xsns_06_dht.ino +#define D_TIMEOUT_WAITING_FOR "等待超時" +#define D_START_SIGNAL_LOW "開始低電平" +#define D_START_SIGNAL_HIGH "開始高電平" +#define D_PULSE "pulse" +#define D_CHECKSUM_FAILURE "校驗失敗" + +// xsns_07_sht1x.ino +#define D_SENSOR_DID_NOT_ACK_COMMAND "傳感器沒有確認命令" +#define D_SHT1X_FOUND "發現 SHT1X 傳感器" + +// xsns_18_pms5003.ino +#define D_STANDARD_CONCENTRATION "CF-1 PM" // Standard Particle CF-1 Particle Matter +#define D_ENVIRONMENTAL_CONCENTRATION "PM" // Environmetal Particle Matter +#define D_PARTICALS_BEYOND "顆粒物直徑大於" + +// sonoff_template.h +#define D_SENSOR_NONE "None" +#define D_SENSOR_DHT11 "DHT11" +#define D_SENSOR_AM2301 "AM2301" +#define D_SENSOR_SI7021 "SI7021" +#define D_SENSOR_DS18X20 "DS18x20" +#define D_SENSOR_I2C_SCL "I2C SCL" +#define D_SENSOR_I2C_SDA "I2C SDA" +#define D_SENSOR_WS2812 "WS2812" +#define D_SENSOR_IRSEND "IRsend" +#define D_SENSOR_SWITCH "Switch" // Suffix "1" +#define D_SENSOR_BUTTON "Button" // Suffix "1" +#define D_SENSOR_RELAY "Relay" // Suffix "1i" +#define D_SENSOR_LED "Led" // Suffix "1i" +#define D_SENSOR_PWM "PWM" // Suffix "1" +#define D_SENSOR_COUNTER "Counter" // Suffix "1" +#define D_SENSOR_IRRECV "IRrecv" +#define D_SENSOR_MHZ_RX "MHZ Rx" +#define D_SENSOR_MHZ_TX "MHZ Tx" +#define D_SENSOR_PZEM_RX "PZEM Rx" +#define D_SENSOR_PZEM_TX "PZEM Tx" +#define D_SENSOR_SAIR_RX "SAir Rx" +#define D_SENSOR_SAIR_TX "SAir Tx" +#define D_SENSOR_SPI_CS "SPI CS" +#define D_SENSOR_SPI_DC "SPI DC" +#define D_SENSOR_BACKLIGHT "BkLight" +#define D_SENSOR_PMS5003 "PMS5003" +#define D_SENSOR_SDS0X1 "SDS0X1" +#define D_SENSOR_SBR_RX "SerBr Rx" +#define D_SENSOR_SBR_TX "SerBr Tx" + +// Units +#define D_UNIT_AMPERE "安" +#define D_UNIT_HOUR "時" +#define D_UNIT_KILOOHM "千歐" +#define D_UNIT_KILOWATTHOUR "千瓦時" +#define D_UNIT_LUX "勒克斯" +#define D_UNIT_MICROGRAM_PER_CUBIC_METER "微克/立方米" +#define D_UNIT_MICROMETER "微米" +#define D_UNIT_MICROSECOND "微秒" +#define D_UNIT_MILLIAMPERE "毫安" +#define D_UNIT_MILLISECOND "毫秒" +#define D_UNIT_MINUTE "分" +#define D_UNIT_PARTS_PER_DECILITER "每分升" +#define D_UNIT_PARTS_PER_MILLION "ppm" +#define D_UNIT_PRESSURE "百帕" +#define D_UNIT_SECOND "秒" +#define D_UNIT_SECTORS "扇區" +#define D_UNIT_VOLT "伏" +#define D_UNIT_WATT "瓦" +#define D_UNIT_WATTHOUR "瓦時" + +// Log message prefix +#define D_LOG_APPLICATION "APP: " // Application +#define D_LOG_BRIDGE "BRG: " // Bridge +#define D_LOG_CONFIG "CFG: " // Settings +#define D_LOG_COMMAND "CMD: " // Command +#define D_LOG_DEBUG "DBG: " // Debug +#define D_LOG_DHT "DHT: " // DHT sensor +#define D_LOG_DOMOTICZ "DOM: " // Domoticz +#define D_LOG_DSB "DSB: " // DS18xB20 sensor +#define D_LOG_HTTP "HTP: " // HTTP webserver +#define D_LOG_I2C "I2C: " // I2C +#define D_LOG_IRR "IRR: " // Infra Red Received +#define D_LOG_LOG "LOG: " // Logging +#define D_LOG_MODULE "MOD: " // Module +#define D_LOG_MDNS "DNS: " // mDNS +#define D_LOG_MQTT "MQT: " // MQTT +#define D_LOG_OTHER "OTH: " // Other +#define D_LOG_RESULT "RSL: " // Result +#define D_LOG_RFR "RFR: " // RF Received +#define D_LOG_SERIAL "SER: " // Serial +#define D_LOG_SHT1 "SHT: " // SHT1x sensor +#define D_LOG_UPLOAD "UPL: " // Upload +#define D_LOG_UPNP "UPP: " // UPnP +#define D_LOG_WIFI "WIF: " // Wifi + +#endif // _LANGUAGE_ZH_TW_H_ diff --git a/sonoff/settings.h b/sonoff/settings.h index dab308503..173958b86 100644 --- a/sonoff/settings.h +++ b/sonoff/settings.h @@ -47,7 +47,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu uint32_t hass_discovery : 1; // bit 19 (v5.11.1a) uint32_t not_power_linked : 1; // bit 20 (v5.11.1f) uint32_t no_power_on_check : 1; // bit 21 (v5.11.1i) - uint32_t spare22 : 1; + uint32_t mqtt_serial : 1; // bit 22 (v5.12.0f) uint32_t spare23 : 1; uint32_t spare24 : 1; uint32_t spare25 : 1; @@ -89,6 +89,20 @@ typedef union { }; } SysBitfield2; +typedef union { + uint32_t data; + struct { + uint32_t time : 11; // bits 0 - 10 = minutes in a day + uint32_t mday : 5; // bits 11 - 15 = optional day in a month + uint32_t days : 7; // bits 16 - 22 = week day mask + uint32_t device : 4; // bits 23 - 26 = 16 devices + uint32_t power : 2; // bits 27 - 28 = 4 power states - Off, On, Toggle + uint32_t repeat : 1; // bit 29 + uint32_t arm : 1; // bit 30 + uint32_t spare : 1; // bit 31 + }; +} Timer; + struct SYSCFG { unsigned long cfg_holder; // 000 unsigned long save_flag; // 004 @@ -99,9 +113,7 @@ struct SYSCFG { int8_t timezone; // 016 char ota_url[101]; // 017 char mqtt_prefix[3][11]; // 07C - - byte free_09D[1]; // 09D - + uint8_t baudrate; // 09D byte seriallog_level; // 09E uint8_t sta_config; // 09F byte sta_active; // 0A0 @@ -116,7 +128,10 @@ struct SYSCFG { byte syslog_level; // 1AA uint8_t webserver; // 1AB byte weblog_level; // 1AC - char mqtt_fingerprint[60]; // 1AD To be freed by binary fingerprint + uint8_t mqtt_fingerprint[2][20]; // 1AD + + byte free_1D5[20]; // 1D5 Free since 5.12.0e + char mqtt_host[33]; // 1E9 uint16_t mqtt_port; // 20A char mqtt_client[33]; // 20C @@ -125,7 +140,6 @@ struct SYSCFG { char mqtt_topic[33]; // 26F char button_topic[33]; // 290 char mqtt_grptopic[33]; // 2B1 - uint8_t display_model; // 2D2 uint8_t display_mode; // 2D3 uint8_t display_refresh; // 2D4 @@ -134,27 +148,23 @@ struct SYSCFG { uint8_t display_address[8]; // 2D8 uint8_t display_dimmer; // 2E0 uint8_t display_size; // 2E1 + uint8_t free_2E2[4]; // 2E2 uint16_t pwm_frequency; // 2E6 power_t power; // 2E8 uint16_t pwm_value[MAX_PWMS]; // 2EC - int16_t altitude; // 2F6 Add since 5.8.0i uint16_t tele_period; // 2F8 uint8_t ex_power; // 2FA Not used since 5.8.0j uint8_t ledstate; // 2FB uint8_t param[PARAM8_SIZE]; // 2FC was domoticz_in_topic until 5.1.6 char state_text[4][11]; // 313 - - byte free_33F[1]; // 33F - + uint8_t energy_power_delta; // 33F uint16_t domoticz_update_timer; // 340 uint16_t pwm_range; // 342 - unsigned long domoticz_relay_idx[MAX_DOMOTICZ_IDX]; // 344 unsigned long domoticz_key_idx[MAX_DOMOTICZ_IDX]; // 354 - unsigned long energy_power_calibration; // 364 unsigned long energy_voltage_calibration; // 368 unsigned long energy_current_calibration; // 36C @@ -178,10 +188,9 @@ struct SYSCFG { uint16_t mqtt_retry; // 396 uint8_t poweronstate; // 398 uint8_t last_module; // 399 - uint16_t blinktime; // 39A uint16_t blinkcount; // 39C - uint16_t ws_pixels; // 39E Not used since 5.8.0 + uint16_t light_rotation; // 39E uint8_t ws_red; // 3A0 Not used since 5.8.0 uint8_t ws_green; // 3A1 Not used since 5.8.0 uint8_t ws_blue; // 3A2 Not used since 5.8.0 @@ -197,17 +206,14 @@ struct SYSCFG { uint16_t ws_wakeup; // 3AA Not used since 5.8.0 char friendlyname[MAX_FRIENDLYNAMES][33]; // 3AC char switch_topic[33]; // 430 - - byte free_451[2]; // 451 - + char serial_delimiter; // 451 + uint8_t sbaudrate; // 452 uint8_t sleep; // 453 uint16_t domoticz_switch_idx[MAX_DOMOTICZ_IDX]; // 454 uint16_t domoticz_sensor_idx[MAX_DOMOTICZ_SNS_IDX]; // 45C uint8_t module; // 474 - uint8_t ws_color[4][3]; // 475 uint8_t ws_width[3]; // 481 - myio my_gp; // 484 uint16_t light_pixels; // 496 uint8_t light_color[5]; // 498 @@ -230,9 +236,7 @@ struct SYSCFG { char web_password[33]; // 4A9 uint8_t switchmode[MAX_SWITCHES]; // 4CA char ntp_server[3][33]; // 4CE - byte ina219_mode; // 531 - uint16_t pulse_timer[MAX_PULSETIMERS]; // 532 byte free_542[2]; // 542 @@ -240,14 +244,17 @@ struct SYSCFG { uint32_t ip_address[4]; // 544 unsigned long energy_kWhtotal; // 554 char mqtt_fulltopic[100]; // 558 - SysBitfield2 flag2; // 5BC Add flag2 since 5.9.2 - unsigned long pulse_counter[MAX_COUNTERS]; // 5C0 uint16_t pulse_counter_type; // 5D0 uint16_t pulse_counter_debounce; // 5D2 uint8_t rf_code[17][9]; // 5D4 + byte free_66d[3]; // 66D + + Timer timer[MAX_TIMERS]; // 670 + + // 6B0 - FFF free locations } Settings; struct RTCMEM { diff --git a/sonoff/settings.ino b/sonoff/settings.ino index c702d16c2..d17f33d35 100644 --- a/sonoff/settings.ino +++ b/sonoff/settings.ino @@ -450,6 +450,7 @@ void SettingsDefaultSet2() Settings.flag.mqtt_power_retain = MQTT_POWER_RETAIN; Settings.flag.mqtt_button_retain = MQTT_BUTTON_RETAIN; Settings.flag.mqtt_switch_retain = MQTT_SWITCH_RETAIN; + Settings.flag.pwm_control = 1; Settings.flag.hass_discovery = HOME_ASSISTANT_DISCOVERY_ENABLE; Settings.flag2.emulation = EMULATION; @@ -457,6 +458,9 @@ void SettingsDefaultSet2() Settings.save_data = SAVE_DATA; Settings.timezone = APP_TIMEZONE; strlcpy(Settings.ota_url, OTA_URL, sizeof(Settings.ota_url)); + Settings.baudrate = APP_BAUDRATE / 1200; + Settings.sbaudrate = SOFT_BAUDRATE / 1200; + Settings.serial_delimiter = 0xff; Settings.seriallog_level = SERIAL_LOG_LEVEL; // Settings.sta_active = 0; @@ -472,7 +476,18 @@ void SettingsDefaultSet2() Settings.webserver = WEB_SERVER; Settings.weblog_level = WEB_LOG_LEVEL; - strlcpy(Settings.mqtt_fingerprint, MQTT_FINGERPRINT, sizeof(Settings.mqtt_fingerprint)); + char fingerprint[60]; + strlcpy(fingerprint, MQTT_FINGERPRINT1, sizeof(fingerprint)); + char *p = fingerprint; + for (byte i = 0; i < 20; i++) { + Settings.mqtt_fingerprint[0][i] = strtol(p, &p, 16); + } + strlcpy(fingerprint, MQTT_FINGERPRINT2, sizeof(fingerprint)); + p = fingerprint; + for (byte i = 0; i < 20; i++) { + Settings.mqtt_fingerprint[1][i] = strtol(p, &p, 16); + } + strlcpy(Settings.mqtt_host, MQTT_HOST, sizeof(Settings.mqtt_host)); Settings.mqtt_port = MQTT_PORT; strlcpy(Settings.mqtt_client, MQTT_CLIENT_ID, sizeof(Settings.mqtt_client)); @@ -498,6 +513,7 @@ void SettingsDefaultSet2() // Settings.domoticz_switch_idx[i] = 0; } + Settings.energy_power_delta = DEFAULT_POWER_DELTA; Settings.energy_power_calibration = HLW_PREF_PULSE; Settings.energy_voltage_calibration = HLW_UREF_PULSE; Settings.energy_current_calibration = HLW_IREF_PULSE; @@ -510,14 +526,14 @@ void SettingsDefaultSet2() // Settings.energy_max_voltage = 0; // Settings.energy_min_current = 0; // Settings.energy_max_current = 0; -// Settings.energy_max_power_limit = 0; // MaxPowerLimit +// Settings.energy_max_power_limit = 0; // MaxPowerLimit Settings.energy_max_power_limit_hold = MAX_POWER_HOLD; Settings.energy_max_power_limit_window = MAX_POWER_WINDOW; -// Settings.energy_max_power_safe_limit = 0; // MaxSafePowerLimit +// Settings.energy_max_power_safe_limit = 0; // MaxSafePowerLimit Settings.energy_max_power_safe_limit_hold = SAFE_POWER_HOLD; Settings.energy_max_power_safe_limit_window = SAFE_POWER_WINDOW; -// Settings.energy_max_energy = 0; // MaxEnergy -// Settings.energy_max_energy_start = 0; // MaxEnergyStart +// Settings.energy_max_energy = 0; // MaxEnergy +// Settings.energy_max_energy_start = 0; // MaxEnergyStart SettingsDefaultSet_3_2_4(); @@ -568,6 +584,7 @@ void SettingsDefaultSet2() // 5.8.0 Settings.light_pixels = WS2812_LEDS; +// Settings.light_rotation = 0; // 5.8.1 // Settings.altitude = 0; @@ -586,7 +603,6 @@ void SettingsDefaultSet2() void SettingsDefaultSet_3_2_4() { - Settings.ws_pixels = WS2812_LEDS; Settings.ws_red = 255; Settings.ws_green = 0; Settings.ws_blue = 0; @@ -614,6 +630,7 @@ void SettingsDefaultSet_3_9_3() } Settings.light_pixels = WS2812_LEDS; + Settings.light_rotation = 0; for (byte i = 0; i < MAX_PWMS; i++) { Settings.light_color[i] = 255; } @@ -824,7 +841,7 @@ void SettingsDelta() } } if (!Settings.light_pixels && cfg_wsflg) { - Settings.light_pixels = Settings.ws_pixels; + Settings.light_pixels = WS2812_LEDS; Settings.light_color[0] = Settings.ws_red; Settings.light_color[1] = Settings.ws_green; Settings.light_color[2] = Settings.ws_blue; @@ -875,7 +892,27 @@ void SettingsDelta() if (Settings.version < 0x050B0107) { Settings.flag.not_power_linked = 0; } - + if (Settings.version < 0x050C0005) { + Settings.light_rotation = 0; + Settings.energy_power_delta = DEFAULT_POWER_DELTA; + char fingerprint[60]; + memcpy(fingerprint, Settings.mqtt_fingerprint, sizeof(fingerprint)); + char *p = fingerprint; + for (byte i = 0; i < 20; i++) { + Settings.mqtt_fingerprint[0][i] = strtol(p, &p, 16); + Settings.mqtt_fingerprint[1][i] = Settings.mqtt_fingerprint[0][i]; + } + } + if (Settings.version < 0x050C0007) { + Settings.baudrate = APP_BAUDRATE / 1200; + } + if (Settings.version < 0x050C0008) { + Settings.sbaudrate = SOFT_BAUDRATE / 1200; + Settings.serial_delimiter = 0xff; + } + if (Settings.version < 0x050C0009) { + memset(&Settings.timer, 0x00, sizeof(Timer) * MAX_TIMERS); + } Settings.version = VERSION; SettingsSave(1); diff --git a/sonoff/sonoff.h b/sonoff/sonoff.h index cfa72ffe6..5511856c4 100644 --- a/sonoff/sonoff.h +++ b/sonoff/sonoff.h @@ -43,6 +43,7 @@ typedef unsigned long power_t; // Power (Relay) type #define MAX_SWITCHES 4 // Max number of switches #define MAX_PWMS 5 // Max number of PWM channels #define MAX_COUNTERS 4 // Max number of counter sensors +#define MAX_TIMERS 16 // Max number of Timers #define MAX_PULSETIMERS 8 // Max number of supported pulse timers #define MAX_FRIENDLYNAMES 4 // Max number of Friendly names #define MAX_DOMOTICZ_IDX 4 // Max number of Domoticz device, key and switch indices @@ -71,11 +72,12 @@ typedef unsigned long power_t; // Power (Relay) type //#define PWM_FREQ 910 // 100..1000 Hz led refresh (iTead value) #define PWM_FREQ 880 // 100..1000 Hz led refresh (BN-SZ01 value) -#define MAX_POWER_HOLD 10 // Time in SECONDS to allow max agreed power (Pow) -#define MAX_POWER_WINDOW 30 // Time in SECONDS to disable allow max agreed power (Pow) -#define SAFE_POWER_HOLD 10 // Time in SECONDS to allow max unit safe power (Pow) -#define SAFE_POWER_WINDOW 30 // Time in MINUTES to disable allow max unit safe power (Pow) -#define MAX_POWER_RETRY 5 // Retry count allowing agreed power limit overflow (Pow) +#define DEFAULT_POWER_DELTA 80 // Power change percentage +#define MAX_POWER_HOLD 10 // Time in SECONDS to allow max agreed power +#define MAX_POWER_WINDOW 30 // Time in SECONDS to disable allow max agreed power +#define SAFE_POWER_HOLD 10 // Time in SECONDS to allow max unit safe power +#define SAFE_POWER_WINDOW 30 // Time in MINUTES to disable allow max unit safe power +#define MAX_POWER_RETRY 5 // Retry count allowing agreed power limit overflow #define STATES 20 // State loops per second #define SYSLOG_TIMER 600 // Seconds to restore syslog_level @@ -97,7 +99,9 @@ typedef unsigned long power_t; // Power (Relay) type #define MAX_BACKLOG 16 // Max number of commands in backlog (chk backlog_index and backlog_pointer code) #define MIN_BACKLOG_DELAY 2 // Minimal backlog delay in 0.1 seconds +#define SOFT_BAUDRATE 9600 // Default software serial baudrate #define APP_BAUDRATE 115200 // Default serial baudrate +#define SERIAL_POLLING 100 // Serial receive polling in ms #define MAX_STATUS 11 // Max number of status lines /* @@ -106,6 +110,19 @@ typedef unsigned long power_t; // Power (Relay) type #define max(a,b) ((a)>(b)?(a):(b)) */ +//enum ws2812NeopixelbusFeature { NEO_RGB, NEO_GRB, NEO_BRG, NEO_RBG, NEO_3LED, NEO_RGBW, NEO_GRBW }; // Doesn't work +#define NEO_RGB 0 // Neopixel RGB leds +#define NEO_GRB 1 // Neopixel GRB leds +#define NEO_BRG 2 // Neopixel BRG leds +#define NEO_RBG 3 // Neopixel RBG leds +#define NEO_3LED 4 // Placeholder to test for 4 led types +#define NEO_RGBW 5 // Neopixel RGBW leds +#define NEO_GRBW 6 // Neopixel GRBW leds + +#define MQTT_PUBSUBCLIENT 1 // Mqtt PubSubClient library +#define MQTT_TASMOTAMQTT 2 // Mqtt TasmotaMqtt library based on esp-mqtt-arduino +#define MQTT_ESPMQTTARDUINO 3 // Mqtt esp-mqtt-arduino library by Ingo Randolf + /*********************************************************************************************\ * Enumeration \*********************************************************************************************/ @@ -138,8 +155,8 @@ enum SettingsParmaIndex {P_HOLD_TIME, P_MAX_POWER_RETRY, P_MAX_PARAM8}; enum DomoticzSensors {DZ_TEMP, DZ_TEMP_HUM, DZ_TEMP_HUM_BARO, DZ_POWER_ENERGY, DZ_ILLUMINANCE, DZ_COUNT, DZ_VOLTAGE, DZ_CURRENT, DZ_AIRQUALITY, DZ_MAX_SENSORS}; -enum Ws2812ClockIndex {WS_SECOND, WS_MINUTE, WS_HOUR}; -enum Ws2812Color {WS_RED, WS_GREEN, WS_BLUE}; +enum Ws2812ClockIndex { WS_SECOND, WS_MINUTE, WS_HOUR, WS_MARKER }; +enum Ws2812Color { WS_RED, WS_GREEN, WS_BLUE }; enum LightTypes {LT_BASIC, LT_PWM1, LT_PWM2, LT_PWM3, LT_PWM4, LT_PWM5, LT_PWM6, LT_PWM7, LT_NU8, LT_NU9, LT_NU10, LT_WS2812, LT_RGBW, LT_RGBWC}; enum LichtSubtypes {LST_NONE, LST_SINGLE, LST_COLDWARM, LST_RGB, LST_RGBW, LST_RGBWC}; enum LichtSchemes {LS_POWER, LS_WAKEUP, LS_CYCLEUP, LS_CYCLEDN, LS_RANDOM, LS_MAX}; diff --git a/sonoff/sonoff.ino b/sonoff/sonoff.ino index 099bedd9f..96ade5005 100644 --- a/sonoff/sonoff.ino +++ b/sonoff/sonoff.ino @@ -25,7 +25,7 @@ - Select IDE Tools - Flash Size: "1M (no SPIFFS)" ====================================================*/ -#define VERSION 0x050C0004 // 5.12.0d +#define VERSION 0x050C0009 // 5.12.0i // Location specific includes #include // Arduino_Esp8266 version information (ARDUINO_ESP8266_RELEASE and ARDUINO_ESP8266_RELEASE_2_3_0) @@ -54,8 +54,14 @@ #include // WifiManager, Webserver #include // WifiManager #endif // USE_WEBSERVER +#ifdef USE_ARDUINO_OTA + #include // Arduino OTA + #ifndef USE_DISCOVERY + #define USE_DISCOVERY + #endif +#endif // USE_ARDUINO_OTA #ifdef USE_DISCOVERY - #include // MQTT, Webserver + #include // MQTT, Webserver, Arduino OTA #endif // USE_DISCOVERY #ifdef USE_I2C #include // I2C support library @@ -76,7 +82,7 @@ enum TasmotaCommands { CMND_LOGHOST, CMND_LOGPORT, CMND_IPADDRESS, CMND_NTPSERVER, CMND_AP, CMND_SSID, CMND_PASSWORD, CMND_HOSTNAME, CMND_WIFICONFIG, CMND_FRIENDLYNAME, CMND_SWITCHMODE, CMND_WEBSERVER, CMND_WEBPASSWORD, CMND_WEBLOG, CMND_EMULATION, CMND_TELEPERIOD, CMND_RESTART, CMND_RESET, CMND_TIMEZONE, CMND_ALTITUDE, CMND_LEDPOWER, CMND_LEDSTATE, - CMND_CFGDUMP, CMND_I2CSCAN, CMND_EXCEPTION }; + CMND_CFGDUMP, CMND_I2CSCAN, CMND_SERIALSEND, CMND_BAUDRATE, CMND_SERIALDELIMITER, CMND_EXCEPTION }; const char kTasmotaCommands[] PROGMEM = D_CMND_BACKLOG "|" D_CMND_DELAY "|" D_CMND_POWER "|" D_CMND_STATUS "|" D_CMND_STATE "|" D_CMND_POWERONSTATE "|" D_CMND_PULSETIME "|" D_CMND_BLINKTIME "|" D_CMND_BLINKCOUNT "|" D_CMND_SENSOR "|" D_CMND_SAVEDATA "|" D_CMND_SETOPTION "|" D_CMND_TEMPERATURE_RESOLUTION "|" D_CMND_HUMIDITY_RESOLUTION "|" @@ -86,7 +92,7 @@ const char kTasmotaCommands[] PROGMEM = D_CMND_LOGHOST "|" D_CMND_LOGPORT "|" D_CMND_IPADDRESS "|" D_CMND_NTPSERVER "|" D_CMND_AP "|" D_CMND_SSID "|" D_CMND_PASSWORD "|" D_CMND_HOSTNAME "|" D_CMND_WIFICONFIG "|" D_CMND_FRIENDLYNAME "|" D_CMND_SWITCHMODE "|" D_CMND_WEBSERVER "|" D_CMND_WEBPASSWORD "|" D_CMND_WEBLOG "|" D_CMND_EMULATION "|" D_CMND_TELEPERIOD "|" D_CMND_RESTART "|" D_CMND_RESET "|" D_CMND_TIMEZONE "|" D_CMND_ALTITUDE "|" D_CMND_LEDPOWER "|" D_CMND_LEDSTATE "|" - D_CMND_CFGDUMP "|" D_CMND_I2CSCAN + D_CMND_CFGDUMP "|" D_CMND_I2CSCAN "|" D_CMND_SERIALSEND "|" D_CMND_BAUDRATE "|" D_CMND_SERIALDELIMITER #ifdef DEBUG_THEO "|" D_CMND_EXCEPTION #endif @@ -102,6 +108,7 @@ const char kOptionBlinkOff[] PROGMEM = "BLINKOFF|" D_BLINKOFF ; int baudrate = APP_BAUDRATE; // Serial interface baud rate SerialConfig serial_config = SERIAL_8N1; // Serial interface configuration 8 data bits, No parity, 1 stop bit byte serial_in_byte; // Received byte +unsigned long serial_polling_window = 0; // Serial polling window int serial_in_byte_counter = 0; // Index in receive buffer byte dual_hex_code = 0; // Sonoff dual input flag uint16_t dual_button_code = 0; // Sonoff dual received code @@ -175,7 +182,6 @@ uint8_t i2c_flg = 0; // I2C configured uint8_t spi_flg = 0; // SPI configured uint8_t light_type = 0; // Light types bool pwm_present = false; // Any PWM channel configured with SetOption15 0 - boolean mdns_begun = false; char my_version[33]; // Composed version string @@ -422,10 +428,12 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len) if (!strcmp(dataBuf,"?")) data_len = 0; int16_t payload = -99; // No payload uint16_t payload16 = 0; - long lnum = strtol(dataBuf, &p, 10); + long payload32 = strtol(dataBuf, &p, 10); if (p != dataBuf) { - payload = (int16_t) lnum; // -32766 - 32767 - payload16 = (uint16_t) lnum; // 0 - 65535 + payload = (int16_t) payload32; // -32766 - 32767 + payload16 = (uint16_t) payload32; // 0 - 65535 + } else { + payload32 = 0; } backlog_delay = MIN_BACKLOG_DELAY; // Reset backlog delay @@ -513,7 +521,7 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len) Settings.pulse_timer[index -1] = payload16; // 0 - 65535 pulse_timer[index -1] = 0; } - snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_INDEX_NVALUE, command, index, Settings.pulse_timer[index -1]); + snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_INDEX_NVALUE_ACTIVE_NVALUE, command, index, Settings.pulse_timer[index -1], pulse_timer[index -1]); } else if (CMND_BLINKTIME == command_code) { if ((payload > 2) && (payload <= 3600)) { @@ -734,15 +742,9 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len) Settings.pwm_value[index -1] = payload; analogWrite(pin[GPIO_PWM1 + index -1], bitRead(pwm_inverted, index -1) ? Settings.pwm_range - payload : payload); } - snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_PWM "\":{")); - bool first = true; - for (byte i = 0; i < MAX_PWMS; i++) { - if (pin[GPIO_PWM1 + i] < 99) { - snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s%s\"" D_CMND_PWM "%d\":%d"), mqtt_data, first ? "" : ",", i+1, Settings.pwm_value[i]); - first = false; - } - } - snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s}}"),mqtt_data); + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{")); + MqttShowPWMState(); // Render the PWM status to MQTT + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s}"), mqtt_data); } else if (CMND_PWMFREQUENCY == command_code) { if ((1 == payload) || ((payload >= 100) && (payload <= 4000))) { @@ -810,11 +812,47 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len) strlcpy(Settings.ota_url, (1 == payload) ? OTA_URL : dataBuf, sizeof(Settings.ota_url)); snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, Settings.ota_url); } + else if (CMND_BAUDRATE == command_code) { + if (payload32 > 0) { + payload32 /= 1200; // Make it a valid baudrate + baudrate = (1 == payload) ? APP_BAUDRATE : payload32 * 1200; + SetSerialBaudrate(baudrate); + } + snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.baudrate * 1200); + } + else if ((CMND_SERIALSEND == command_code) && (index > 0) && (index <= 3)) { + SetSeriallog(LOG_LEVEL_NONE); + Settings.flag.mqtt_serial = 1; + if (data_len > 0) { + if (1 == index) { + Serial.printf("%s\n", dataBuf); + } + else if (2 == index) { + Serial.printf("%s", dataBuf); + } + else if (3 == index) { + uint16_t dat_len = data_len; + Serial.printf("%s", Unescape(dataBuf, &dat_len)); + } + snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, D_JSON_DONE); + } + } + else if (CMND_SERIALDELIMITER == command_code) { + if ((data_len > 0) && (payload < 256)) { + if (payload > 0) { + Settings.serial_delimiter = payload; + } else { + uint16_t dat_len = data_len; + Unescape(dataBuf, &dat_len); + Settings.serial_delimiter = dataBuf[0]; + } + } + snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.serial_delimiter); + } else if (CMND_SERIALLOG == command_code) { if ((payload >= LOG_LEVEL_NONE) && (payload <= LOG_LEVEL_ALL)) { - Settings.seriallog_level = payload; - seriallog_level = payload; - seriallog_timer = 0; + Settings.flag.mqtt_serial = 0; + SetSeriallog(payload); } snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE_ACTIVE_NVALUE, command, Settings.seriallog_level, seriallog_level); } @@ -1016,7 +1054,7 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len) } snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, GetStateText(bitRead(Settings.ledstate, 3))); } - else if (CMND_LEDSTATE ==command_code) { + else if (CMND_LEDSTATE == command_code) { if ((payload >= 0) && (payload < MAX_LED_OPTION)) { Settings.ledstate = payload; if (!Settings.ledstate) SetLedPower(0); @@ -1204,6 +1242,7 @@ void ExecuteCommand(char *cmnd) void PublishStatus(uint8_t payload) { uint8_t option = 1; + char stemp[MAX_FRIENDLYNAMES * (sizeof(Settings.friendlyname[0]) +4)]; // Workaround MQTT - TCP/IP stack queueing when SUB_PREFIX = PUB_PREFIX if (!strcmp(Settings.mqtt_prefix[0],Settings.mqtt_prefix[1]) && (!payload)) option++; @@ -1212,14 +1251,19 @@ void PublishStatus(uint8_t payload) if (!energy_flg && (9 == payload)) payload = 99; if ((0 == payload) || (99 == payload)) { - snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS "\":{\"" D_CMND_MODULE "\":%d,\"" D_CMND_FRIENDLYNAME "\":\"%s\",\"" D_CMND_TOPIC "\":\"%s\",\"" D_CMND_BUTTONTOPIC "\":\"%s\",\"" D_CMND_POWER "\":%d,\"" D_CMND_POWERONSTATE "\":%d,\"" D_CMND_LEDSTATE "\":%d,\"" D_CMND_SAVEDATA "\":%d,\"" D_JSON_SAVESTATE "\":%d,\"" D_CMND_BUTTONRETAIN "\":%d,\"" D_CMND_POWERRETAIN "\":%d}}"), - Settings.module +1, Settings.friendlyname[0], mqtt_topic, Settings.button_topic, power, Settings.poweronstate, Settings.ledstate, Settings.save_data, Settings.flag.save_state, Settings.flag.mqtt_button_retain, Settings.flag.mqtt_power_retain); + uint8_t maxfn = (devices_present > MAX_FRIENDLYNAMES) ? MAX_FRIENDLYNAMES : devices_present; + stemp[0] = '\0'; + for (byte i = 0; i < maxfn; i++) { + snprintf_P(stemp, sizeof(stemp), PSTR("%s%s\"%s\"" ), stemp, (i > 0 ? "," : ""), Settings.friendlyname[i]); + } + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS "\":{\"" D_CMND_MODULE "\":%d,\"" D_CMND_FRIENDLYNAME "\":[%s],\"" D_CMND_TOPIC "\":\"%s\",\"" D_CMND_BUTTONTOPIC "\":\"%s\",\"" D_CMND_POWER "\":%d,\"" D_CMND_POWERONSTATE "\":%d,\"" D_CMND_LEDSTATE "\":%d,\"" D_CMND_SAVEDATA "\":%d,\"" D_JSON_SAVESTATE "\":%d,\"" D_CMND_BUTTONRETAIN "\":%d,\"" D_CMND_POWERRETAIN "\":%d}}"), + Settings.module +1, stemp, mqtt_topic, Settings.button_topic, power, Settings.poweronstate, Settings.ledstate, Settings.save_data, Settings.flag.save_state, Settings.flag.mqtt_button_retain, Settings.flag.mqtt_power_retain); MqttPublishPrefixTopic_P(option, PSTR(D_CMND_STATUS)); } if ((0 == payload) || (1 == payload)) { - snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS1_PARAMETER "\":{\"" D_JSON_BAUDRATE "\":%d,\"" D_CMND_GROUPTOPIC "\":\"%s\",\"" D_CMND_OTAURL "\":\"%s\",\"" D_JSON_UPTIME "\":\"%s\",\"" D_JSON_STARTUPUTC "\":\"%s\",\"" D_CMND_SLEEP "\":%d,\"" D_JSON_BOOTCOUNT "\":%d,\"" D_JSON_SAVECOUNT "\":%d,\"" D_JSON_SAVEADDRESS "\":\"%X\"}}"), - baudrate, Settings.mqtt_grptopic, Settings.ota_url, GetDateAndTime(DT_UPTIME).c_str(), GetDateAndTime(DT_RESTART).c_str(), Settings.sleep, Settings.bootcount, Settings.save_flag, GetSettingsAddress()); + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS1_PARAMETER "\":{\"" D_JSON_BAUDRATE "\":%d,\"" D_CMND_GROUPTOPIC "\":\"%s\",\"" D_CMND_OTAURL "\":\"%s\",\"" D_JSON_RESTARTREASON "\":\"%s\",\"" D_JSON_UPTIME "\":\"%s\",\"" D_JSON_STARTUPUTC "\":\"%s\",\"" D_CMND_SLEEP "\":%d,\"" D_JSON_BOOTCOUNT "\":%d,\"" D_JSON_SAVECOUNT "\":%d,\"" D_JSON_SAVEADDRESS "\":\"%X\"}}"), + baudrate, Settings.mqtt_grptopic, Settings.ota_url, GetResetReason().c_str(), GetDateAndTime(DT_UPTIME).c_str(), GetDateAndTime(DT_RESTART).c_str(), Settings.sleep, Settings.bootcount, Settings.save_flag, GetSettingsAddress()); MqttPublishPrefixTopic_P(option, PSTR(D_CMND_STATUS "1")); } @@ -1230,8 +1274,8 @@ void PublishStatus(uint8_t payload) } if ((0 == payload) || (3 == payload)) { - snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS3_LOGGING "\":{\"" D_CMND_SERIALLOG "\":%d,\"" D_CMND_WEBLOG "\":%d,\"" D_CMND_SYSLOG "\":%d,\"" D_CMND_LOGHOST "\":\"%s\",\"" D_CMND_LOGPORT "\":%d,\"" D_CMND_SSID "1\":\"%s\",\"" D_CMND_SSID "2\":\"%s\",\"" D_CMND_TELEPERIOD "\":%d,\"" D_CMND_SETOPTION "\":\"%08X\"}}"), - Settings.seriallog_level, Settings.weblog_level, Settings.syslog_level, Settings.syslog_host, Settings.syslog_port, Settings.sta_ssid[0], Settings.sta_ssid[1], Settings.tele_period, Settings.flag.data); + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS3_LOGGING "\":{\"" D_CMND_SERIALLOG "\":%d,\"" D_CMND_WEBLOG "\":%d,\"" D_CMND_SYSLOG "\":%d,\"" D_CMND_LOGHOST "\":\"%s\",\"" D_CMND_LOGPORT "\":%d,\"" D_CMND_SSID "\":[\"%s\",\"%s\"],\"" D_CMND_TELEPERIOD "\":%d,\"" D_CMND_SETOPTION "\":[\"%08X\",\"%08X\"]}}"), + Settings.seriallog_level, Settings.weblog_level, Settings.syslog_level, Settings.syslog_host, Settings.syslog_port, Settings.sta_ssid[0], Settings.sta_ssid[1], Settings.tele_period, Settings.flag.data, Settings.flag2.data); MqttPublishPrefixTopic_P(option, PSTR(D_CMND_STATUS "3")); } @@ -1262,8 +1306,8 @@ void PublishStatus(uint8_t payload) if (energy_flg) { if ((0 == payload) || (9 == payload)) { - snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS9_MARGIN "\":{\"" D_CMND_POWERLOW "\":%d,\"" D_CMND_POWERHIGH "\":%d,\"" D_CMND_VOLTAGELOW "\":%d,\"" D_CMND_VOLTAGEHIGH "\":%d,\"" D_CMND_CURRENTLOW "\":%d,\"" D_CMND_CURRENTHIGH "\":%d}}"), - Settings.energy_min_power, Settings.energy_max_power, Settings.energy_min_voltage, Settings.energy_max_voltage, Settings.energy_min_current, Settings.energy_max_current); + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS9_MARGIN "\":{\"" D_CMND_POWERDELTA "\":%d,\"" D_CMND_POWERLOW "\":%d,\"" D_CMND_POWERHIGH "\":%d,\"" D_CMND_VOLTAGELOW "\":%d,\"" D_CMND_VOLTAGEHIGH "\":%d,\"" D_CMND_CURRENTLOW "\":%d,\"" D_CMND_CURRENTHIGH "\":%d}}"), + Settings.energy_power_delta, Settings.energy_min_power, Settings.energy_max_power, Settings.energy_min_voltage, Settings.energy_max_voltage, Settings.energy_min_current, Settings.energy_max_current); MqttPublishPrefixTopic_P(option, PSTR(D_CMND_STATUS "9")); } } @@ -1288,6 +1332,19 @@ void PublishStatus(uint8_t payload) } +void MqttShowPWMState() +{ + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s\"" D_CMND_PWM "\":{"), mqtt_data); + bool first = true; + for (byte i = 0; i < MAX_PWMS; i++) { + if (pin[GPIO_PWM1 + i] < 99) { + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s%s\"" D_CMND_PWM "%d\":%d"), mqtt_data, first ? "" : ",", i+1, Settings.pwm_value[i]); + first = false; + } + } + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s}"), mqtt_data); +} + void MqttShowState() { char stemp1[33]; @@ -1306,6 +1363,11 @@ void MqttShowState() } } + if (pwm_present) { + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,"), mqtt_data); + MqttShowPWMState(); + } + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"" D_JSON_WIFI "\":{\"" D_JSON_AP "\":%d,\"" D_JSON_SSID "\":\"%s\",\"" D_JSON_RSSI "\":%d,\"" D_JSON_APMAC_ADDRESS "\":\"%s\"}}"), mqtt_data, Settings.sta_active +1, Settings.sta_ssid[Settings.sta_active], WifiGetRssiAsQuality(WiFi.RSSI()), WiFi.BSSIDstr().c_str()); } @@ -1846,6 +1908,86 @@ void StateLoop() } } +#ifdef USE_ARDUINO_OTA +/*********************************************************************************************\ + * Allow updating via the Arduino OTA-protocol. + * + * - Once started disables current wifi clients and udp + * - Perform restart when done to re-init wifi clients +\*********************************************************************************************/ + +bool arduino_ota_triggered = false; +uint16_t arduino_ota_progress_dot_count = 0; + +void ArduinoOTAInit() +{ + ArduinoOTA.setPort(8266); + ArduinoOTA.setHostname(Settings.hostname); + if (Settings.web_password[0] !=0) ArduinoOTA.setPassword(Settings.web_password); + + ArduinoOTA.onStart([]() + { + SettingsSave(1); // Free flash for OTA update +#ifdef USE_WEBSERVER + if (Settings.webserver) StopWebserver(); +#endif // USE_WEBSERVER +#ifdef USE_ARILUX_RF + AriluxRfDisable(); // Prevent restart exception on Arilux Interrupt routine +#endif // USE_ARILUX_RF + if (Settings.flag.mqtt_enabled) MqttDisconnect(); + snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_UPLOAD "Arduino OTA " D_UPLOAD_STARTED)); + AddLog(LOG_LEVEL_INFO); + arduino_ota_triggered = true; + arduino_ota_progress_dot_count = 0; + delay(100); // Allow time for message xfer + }); + + ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) + { + if ((LOG_LEVEL_DEBUG <= seriallog_level)) { + arduino_ota_progress_dot_count++; + Serial.printf("."); + if (!(arduino_ota_progress_dot_count % 80)) Serial.println(); + } + }); + + ArduinoOTA.onError([](ota_error_t error) + { + /* + From ArduinoOTA.h: + typedef enum { OTA_AUTH_ERROR, OTA_BEGIN_ERROR, OTA_CONNECT_ERROR, OTA_RECEIVE_ERROR, OTA_END_ERROR } ota_error_t; + */ + char error_str[100]; + + if ((LOG_LEVEL_DEBUG <= seriallog_level) && arduino_ota_progress_dot_count) Serial.println(); + switch (error) { + case OTA_BEGIN_ERROR: strncpy_P(error_str, PSTR(D_UPLOAD_ERR_2), sizeof(error_str)); break; + case OTA_RECEIVE_ERROR: strncpy_P(error_str, PSTR(D_UPLOAD_ERR_5), sizeof(error_str)); break; + case OTA_END_ERROR: strncpy_P(error_str, PSTR(D_UPLOAD_ERR_7), sizeof(error_str)); break; + default: + snprintf_P(error_str, sizeof(error_str), PSTR(D_UPLOAD_ERROR_CODE " %d"), error); + } + snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_UPLOAD "Arduino OTA %s. " D_RESTARTING), error_str); + AddLog(LOG_LEVEL_INFO); + delay(100); // Allow time for message xfer + ESP.restart(); + }); + + ArduinoOTA.onEnd([]() + { + if ((LOG_LEVEL_DEBUG <= seriallog_level)) Serial.println(); + snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_UPLOAD "Arduino OTA " D_SUCCESSFUL ". " D_RESTARTING)); + AddLog(LOG_LEVEL_INFO); + delay(100); // Allow time for message xfer + ESP.restart(); + }); + + ArduinoOTA.begin(); + snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_UPLOAD "Arduino OTA " D_ENABLED " " D_PORT " 8266")); + AddLog(LOG_LEVEL_INFO); +} +#endif // USE_ARDUINO_OTA + /********************************************************************************************/ void SerialInput() @@ -1905,38 +2047,60 @@ void SerialInput() Serial.flush(); return; } - if (isprint(serial_in_byte)) { - if (serial_in_byte_counter < INPUT_BUFFER_SIZE) { // add char to string if it still fits - serial_in_buffer[serial_in_byte_counter++] = serial_in_byte; - } else { - serial_in_byte_counter = 0; + if (!Settings.flag.mqtt_serial) { + if (isprint(serial_in_byte)) { + if (serial_in_byte_counter < INPUT_BUFFER_SIZE -1) { // add char to string if it still fits + serial_in_buffer[serial_in_byte_counter++] = serial_in_byte; + } else { + serial_in_byte_counter = 0; + } + } + } else { + if (serial_in_byte) { + if ((serial_in_byte_counter < INPUT_BUFFER_SIZE -1) && (serial_in_byte != Settings.serial_delimiter)) { // add char to string if it still fits + serial_in_buffer[serial_in_byte_counter++] = serial_in_byte; + serial_polling_window = millis(); + } else { + serial_polling_window = 0; + break; + } } } /*-------------------------------------------------------------------------------------------*\ * Sonoff SC 19200 baud serial interface \*-------------------------------------------------------------------------------------------*/ - if (serial_in_byte == '\x1B') { // Sonoff SC status from ATMEGA328P - serial_in_buffer[serial_in_byte_counter] = 0; // serial data completed - SonoffScSerialInput(serial_in_buffer); - serial_in_byte_counter = 0; - Serial.flush(); - return; + if (SONOFF_SC == Settings.module) { + if (serial_in_byte == '\x1B') { // Sonoff SC status from ATMEGA328P + serial_in_buffer[serial_in_byte_counter] = 0; // serial data completed + SonoffScSerialInput(serial_in_buffer); + serial_in_byte_counter = 0; + Serial.flush(); + return; + } } /*-------------------------------------------------------------------------------------------*/ - else if (serial_in_byte == '\n') { + else if (!Settings.flag.mqtt_serial && (serial_in_byte == '\n')) { serial_in_buffer[serial_in_byte_counter] = 0; // serial data completed seriallog_level = (Settings.seriallog_level < LOG_LEVEL_INFO) ? (byte)LOG_LEVEL_INFO : Settings.seriallog_level; snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_COMMAND "%s"), serial_in_buffer); AddLog(LOG_LEVEL_INFO); ExecuteCommand(serial_in_buffer); serial_in_byte_counter = 0; + serial_polling_window = 0; Serial.flush(); return; } } + + if (Settings.flag.mqtt_serial && serial_in_byte_counter && (millis() > (serial_polling_window + SERIAL_POLLING))) { + serial_in_buffer[serial_in_byte_counter] = 0; // serial data completed + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_JSON_SERIALRECEIVED "\":\"%s\"}"), serial_in_buffer); + MqttPublishPrefixTopic_P(RESULT_OR_TELE, PSTR(D_JSON_SERIALRECEIVED)); + serial_in_byte_counter = 0; + } } /********************************************************************************************/ @@ -2033,18 +2197,22 @@ void GpioInit() } if (SONOFF_BRIDGE == Settings.module) { + Settings.flag.mqtt_serial = 0; baudrate = 19200; } if (SONOFF_DUAL == Settings.module) { + Settings.flag.mqtt_serial = 0; devices_present = 2; baudrate = 19200; } else if (CH4 == Settings.module) { + Settings.flag.mqtt_serial = 0; devices_present = 4; baudrate = 19200; } else if (SONOFF_SC == Settings.module) { + Settings.flag.mqtt_serial = 0; devices_present = 0; baudrate = 19200; } @@ -2141,6 +2309,7 @@ void setup() OsWatchInit(); + baudrate = Settings.baudrate * 1200; seriallog_level = Settings.seriallog_level; seriallog_timer = SERIALLOG_TIMER; #ifndef USE_EMULATION @@ -2227,6 +2396,11 @@ void setup() #endif // BE_MINIMAL RtcInit(); + +#ifdef USE_ARDUINO_OTA + ArduinoOTAInit(); +#endif // USE_ARDUINO_OTA + XsnsCall(FUNC_INIT); } @@ -2246,7 +2420,13 @@ void loop() if (millis() >= state_loop_timer) StateLoop(); - if (Serial.available()) SerialInput(); + SerialInput(); + +#ifdef USE_ARDUINO_OTA + ArduinoOTA.handle(); + // Once OTA is triggered, only handle that and dont do other stuff. (otherwise it fails) + while (arduino_ota_triggered) ArduinoOTA.handle(); +#endif // USE_ARDUINO_OTA // yield(); // yield == delay(0), delay contains yield, auto yield in loop delay(sleep); // https://github.com/esp8266/Arduino/issues/2021 diff --git a/sonoff/sonoff_post.h b/sonoff/sonoff_post.h index 0a023ea6f..09b4836ba 100644 --- a/sonoff/sonoff_post.h +++ b/sonoff/sonoff_post.h @@ -63,12 +63,13 @@ void WifiWpsStatusCallback(wps_cb_status status); #define USE_PMS5003 // Add support for PMS5003 and PMS7003 particle concentration sensor (+1k3 code) #define USE_NOVA_SDS // Add support for SDS011 and SDS021 particle concentration sensor (+0k7 code) #define USE_PZEM004T // Add support for PZEM004T Energy monitor (+2k code) +#define USE_SERIAL_BRIDGE // Add support for software Serial Bridge (+0k8 code) #define USE_IR_REMOTE // Send IR remote commands using library IRremoteESP8266 and ArduinoJson (+4k code, 0k3 mem, 48 iram) #define USE_IR_HVAC // Support for HVAC system using IR (+2k code) #define USE_IR_RECEIVE // Support for IR receiver (+5k5 code, 264 iram) #define USE_WS2812 // WS2812 Led string using library NeoPixelBus (+5k code, +1k mem, 232 iram) - Disable by // #ifndef USE_WS2812_CTYPE - #define USE_WS2812_CTYPE 1 // WS2812 Color type (0 - RGB, 1 - GRB, 2 - RGBW, 3 - GRBW) + #define USE_WS2812_CTYPE NEO_GRB // WS2812 Color type (NEO_RGB, NEO_GRB, NEO_BRG, NEO_RBG, NEO_RGBW, NEO_GRBW) #endif // #define USE_WS2812_DMA // DMA supports only GPIO03 (= Serial RXD) (+1k mem). When USE_WS2812_DMA is enabled expect Exceptions on Pow #define USE_ARILUX_RF // Add support for Arilux RF remote controller (+0k8 code, 252 iram (non 2.3.0)) @@ -145,8 +146,12 @@ void WifiWpsStatusCallback(wps_cb_status status); #define SWITCH_MODE TOGGLE // TOGGLE, FOLLOW or FOLLOW_INV (the wall switch state) #endif -#ifndef MQTT_FINGERPRINT -#define MQTT_FINGERPRINT "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07" +#ifndef MQTT_FINGERPRINT1 +#define MQTT_FINGERPRINT1 "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07" +#endif + +#ifndef MQTT_FINGERPRINT2 +#define MQTT_FINGERPRINT2 "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07" #endif #ifndef WS2812_LEDS diff --git a/sonoff/sonoff_template.h b/sonoff/sonoff_template.h index 6a0e2cd97..2fba23102 100644 --- a/sonoff/sonoff_template.h +++ b/sonoff/sonoff_template.h @@ -89,6 +89,8 @@ enum UserSelectablePins { GPIO_BACKLIGHT, // Display backlight control GPIO_PMS5003, // Plantower PMS5003 Serial interface GPIO_SDS0X1, // Nova Fitness SDS011 Serial interface + GPIO_SBR_TX, // Serial Bridge Serial interface + GPIO_SBR_RX, // Serial Bridge Serial interface GPIO_SENSOR_END }; // Programmer selectable GPIO functionality offset by user selectable GPIOs @@ -130,7 +132,8 @@ const char kSensorNames[] PROGMEM = D_SENSOR_PZEM_TX "|" D_SENSOR_PZEM_RX "|" D_SENSOR_SAIR_TX "|" D_SENSOR_SAIR_RX "|" D_SENSOR_SPI_CS "|" D_SENSOR_SPI_DC "|" D_SENSOR_BACKLIGHT "|" - D_SENSOR_PMS5003 "|" D_SENSOR_SDS0X1; + D_SENSOR_PMS5003 "|" D_SENSOR_SDS0X1 "|" + D_SENSOR_SBR_TX "|" D_SENSOR_SBR_RX; /********************************************************************************************/ @@ -177,6 +180,7 @@ enum SupportedModules { SONOFF_DUAL_R2, ARILUX_LC06, SONOFF_S31, + ZENGGE_ZF_WF017, MAXMODULE }; /********************************************************************************************/ @@ -231,6 +235,7 @@ const uint8_t kNiceList[MAXMODULE] PROGMEM = { ARILUX_LC01, ARILUX_LC06, ARILUX_LC11, + ZENGGE_ZF_WF017, HUAFAN_SS, KMC_70011, AILIGHT, @@ -786,6 +791,19 @@ const mytmplt kModules[MAXMODULE] PROGMEM = { GPIO_REL1, // GPIO12 Red Led and Relay (0 = Off, 1 = On) GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) 0, 0, 0, 0 + }, + { "Zengge WF017", // Zenggee ZJ-WF017-A (ESP12S)) - https://www.ebay.com/p/Smartphone-Android-IOS-WiFi-Music-Controller-for-RGB-5050-3528-LED-Strip-Light/534446632?_trksid=p2047675.l2644 + GPIO_KEY1, // GPIO00 Optional Button + 0, + GPIO_USER, // GPIO02 Empty pad + 0, + GPIO_USER, // GPIO04 W2 - PWM5 + 0, + 0, 0, 0, 0, 0, 0, // Flash connection + GPIO_PWM2, // GPIO12 RGB LED Green + GPIO_PWM1, // GPIO13 RGB LED Red + GPIO_PWM3, // GPIO14 RGB LED Blue + 0, 0, 0 } }; @@ -816,20 +834,6 @@ const mytmplt kModules[MAXMODULE] PROGMEM = { 0, 0 } - { "Zengge WF017", // Zenggee ZJ-WF017-A (ESP12S)) - https://www.ebay.com/p/Smartphone-Android-IOS-WiFi-Music-Controller-for-RGB-5050-3528-LED-Strip-Light/534446632?_trksid=p2047675.l2644 - GPIO_KEY1, // GPIO00 Optional Button - 0, - GPIO_USER, // GPIO02 Empty pad - 0, - GPIO_USER, // GPIO04 W2 - PWM5 - 0, - 0, 0, 0, 0, 0, 0, // Flash connection - GPIO_PWM2, // GPIO12 RGB LED Green - GPIO_PWM1, // GPIO13 RGB LED Red - GPIO_PWM3, // GPIO14 RGB LED Blue - 0, 0, 0 - } - { "SMPW701E", // SM-PW701E WLAN Socket (#1190) 0, 0, 0, 0, GPIO_LED1_INV, // GPIO04 Blue Led (0 = On, 1 = Off) diff --git a/sonoff/support.ino b/sonoff/support.ino index bca8532be..d0250690a 100644 --- a/sonoff/support.ino +++ b/sonoff/support.ino @@ -119,7 +119,7 @@ Decoding 14 results 0x4021ffb4: snprintf_P(char*, unsigned int, char const*, ...) at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/pgmspace.cpp line 146 0x40201118: atol at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/core_esp8266_noniso.c line 45 0x40201128: atoi at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/core_esp8266_noniso.c line 45 -0x4020fafb: MqttDataCallback(char*, unsigned char*, unsigned int) at R:\Arduino\Work-ESP8266\Theo\sonoff\sonoff-4\sonoff/sonoff.ino line 679 (discriminator 1) +0x4020fafb: MqttDataHandler(char*, unsigned char*, unsigned int) at R:\Arduino\Work-ESP8266\Theo\sonoff\sonoff-4\sonoff/sonoff.ino line 679 (discriminator 1) 0x4022321b: pp_attach at ?? line ? 00:00:08 MQTT: tele/sonoff/INFO3 = {"Started":"Fatal exception:28 flag:2 (EXCEPTION) epc1:0x4000bf64 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000007 depc:0x00000000"} @@ -197,6 +197,76 @@ char* dtostrfd(double number, unsigned char prec, char *s) return dtostrf(number, 1, prec, s); } +char* Unescape(char* buffer, uint16_t* size) +{ + uint8_t* read = (uint8_t*)buffer; + uint8_t* write = (uint8_t*)buffer; + uint16_t start_size = *size; + uint16_t end_size = *size; + uint8_t che = 0; + + while (start_size > 0) { + uint8_t ch = *read++; + start_size--; + if (ch != '\\') { + *write++ = ch; + } else { + if (start_size > 0) { + uint8_t chi = *read++; + start_size--; + end_size--; + switch (chi) { + case '\\': che = '\\'; break; // 5C Backslash + case 'a': che = '\a'; break; // 07 Bell (Alert) + case 'b': che = '\b'; break; // 08 Backspace + case 'e': che = '\e'; break; // 1B Escape + case 'f': che = '\f'; break; // 0C Formfeed + case 'n': che = '\n'; break; // 0A Linefeed (Newline) + case 'r': che = '\r'; break; // 0D Carriage return + case 's': che = ' '; break; // 20 Space + case 't': che = '\t'; break; // 09 Horizontal tab + case 'v': che = '\v'; break; // 0B Vertical tab +// case '?': che = '\?'; break; // 3F Question mark + default : { + che = chi; + *write++ = ch; + end_size++; + } + } + *write++ = che; + } + } + } + *size = end_size; + return buffer; +} + +char* UpperCase(char* dest, const char* source) +{ + char* write = dest; + const char* read = source; + char ch = '.'; + + while (ch != '\0') { + ch = *read++; + *write++ = toupper(ch); + } + return dest; +} + +char* UpperCase_P(char* dest, const char* source) +{ + char* write = dest; + const char* read = source; + char ch = '.'; + + while (ch != '\0') { + ch = pgm_read_byte(read++); + *write++ = toupper(ch); + } + return dest; +} + boolean ParseIp(uint32_t* addr, const char* str) { uint8_t *part = (uint8_t*)addr; @@ -401,6 +471,7 @@ int GetCommandCode(char* destination, size_t destination_size, const char* needl void SetSerialBaudrate(int baudrate) { + Settings.baudrate = baudrate / 1200; if (Serial.baudRate() != baudrate) { if (seriallog_level) { snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_APPLICATION D_SET_BAUDRATE_TO " %d"), baudrate); @@ -427,11 +498,12 @@ uint32_t GetHash(const char *buffer, size_t size) * Wifi \*********************************************************************************************/ -#define WIFI_CONFIG_SEC 180 // seconds before restart -#define WIFI_CHECK_SEC 20 // seconds -#define WIFI_RETRY_SEC 30 // seconds +#define WIFI_CONFIG_SEC 180 // seconds before restart +#define WIFI_CHECK_SEC 20 // seconds +#define WIFI_RETRY_OFFSET_SEC 20 // seconds uint8_t wifi_counter; +uint8_t wifi_retry_init; uint8_t wifi_retry; uint8_t wifi_status; uint8_t wps_result; @@ -599,7 +671,7 @@ void WifiCheckIp() { if ((WL_CONNECTED == WiFi.status()) && (static_cast(WiFi.localIP()) != 0)) { wifi_counter = WIFI_CHECK_SEC; - wifi_retry = WIFI_RETRY_SEC; + wifi_retry = wifi_retry_init; AddLog_P((wifi_status != WL_CONNECTED) ? LOG_LEVEL_INFO : LOG_LEVEL_DEBUG_MORE, S_LOG_WIFI, PSTR(D_CONNECTED)); if (wifi_status != WL_CONNECTED) { // AddLog_P(LOG_LEVEL_INFO, PSTR("Wifi: Set IP addresses")); @@ -614,15 +686,15 @@ void WifiCheckIp() case WL_CONNECTED: AddLog_P(LOG_LEVEL_INFO, S_LOG_WIFI, PSTR(D_CONNECT_FAILED_NO_IP_ADDRESS)); wifi_status = 0; - wifi_retry = WIFI_RETRY_SEC; + wifi_retry = wifi_retry_init; break; case WL_NO_SSID_AVAIL: AddLog_P(LOG_LEVEL_INFO, S_LOG_WIFI, PSTR(D_CONNECT_FAILED_AP_NOT_REACHED)); if (WIFI_WAIT == Settings.sta_config) { - wifi_retry = WIFI_RETRY_SEC; + wifi_retry = wifi_retry_init; } else { - if (wifi_retry > (WIFI_RETRY_SEC / 2)) { - wifi_retry = WIFI_RETRY_SEC / 2; + if (wifi_retry > (wifi_retry_init / 2)) { + wifi_retry = wifi_retry_init / 2; } else if (wifi_retry) { wifi_retry = 0; @@ -631,25 +703,25 @@ void WifiCheckIp() break; case WL_CONNECT_FAILED: AddLog_P(LOG_LEVEL_INFO, S_LOG_WIFI, PSTR(D_CONNECT_FAILED_WRONG_PASSWORD)); - if (wifi_retry > (WIFI_RETRY_SEC / 2)) { - wifi_retry = WIFI_RETRY_SEC / 2; + if (wifi_retry > (wifi_retry_init / 2)) { + wifi_retry = wifi_retry_init / 2; } else if (wifi_retry) { wifi_retry = 0; } break; default: // WL_IDLE_STATUS and WL_DISCONNECTED - if (!wifi_retry || ((WIFI_RETRY_SEC / 2) == wifi_retry)) { + if (!wifi_retry || ((wifi_retry_init / 2) == wifi_retry)) { AddLog_P(LOG_LEVEL_INFO, S_LOG_WIFI, PSTR(D_CONNECT_FAILED_AP_TIMEOUT)); } else { AddLog_P(LOG_LEVEL_DEBUG, S_LOG_WIFI, PSTR(D_ATTEMPTING_CONNECTION)); } } if (wifi_retry) { - if (WIFI_RETRY_SEC == wifi_retry) { + if (wifi_retry_init == wifi_retry) { WifiBegin(3); // Select default SSID } - if ((Settings.sta_config != WIFI_WAIT) && ((WIFI_RETRY_SEC / 2) == wifi_retry)) { + if ((Settings.sta_config != WIFI_WAIT) && ((wifi_retry_init / 2) == wifi_retry)) { WifiBegin(2); // Select alternate SSID } wifi_counter = 1; @@ -657,7 +729,7 @@ void WifiCheckIp() } else { WifiConfig(Settings.sta_config); wifi_counter = 1; - wifi_retry = WIFI_RETRY_SEC; + wifi_retry = wifi_retry_init; } } } @@ -765,7 +837,8 @@ void WifiConnect() { WiFi.persistent(false); // Solve possible wifi init errors wifi_status = 0; - wifi_retry = WIFI_RETRY_SEC; + wifi_retry_init = WIFI_RETRY_OFFSET_SEC + ((ESP.getChipId() & 0xF) * 2); + wifi_retry = wifi_retry_init; wifi_counter = 1; } @@ -1376,6 +1449,13 @@ boolean Xsns02(byte function) * \*********************************************************************************************/ +void SetSeriallog(byte loglevel) +{ + Settings.seriallog_level = loglevel; + seriallog_level = loglevel; + seriallog_timer = 0; +} + #ifdef USE_WEBSERVER void GetLog(byte idx, char** entry_pp, size_t* len_p) { diff --git a/sonoff/user_config.h b/sonoff/user_config.h index f5f7acdc7..5de54309a 100644 --- a/sonoff/user_config.h +++ b/sonoff/user_config.h @@ -29,6 +29,7 @@ \*********************************************************************************************/ // -- Localization -------------------------------- +//#define MY_LANGUAGE cs-CZ // Czech in Czech //#define MY_LANGUAGE de-DE // German in Germany //#define MY_LANGUAGE en-GB // English in Great Britain. Enabled by Default //#define MY_LANGUAGE es-AR // Spanish in Argentina @@ -40,6 +41,7 @@ //#define MY_LANGUAGE pt-PT // Portuguese in Portugal //#define MY_LANGUAGE ru-RU // Russian in Russia //#define MY_LANGUAGE zh-CN // Chinese (Simplified) in China +//#define MY_LANGUAGE zh-TW // Chinese (Traditional) in Taiwan // -- Project ------------------------------------- #define PROJECT "sonoff" // PROJECT is used as the default topic delimiter and OTA file name @@ -71,16 +73,17 @@ // -- Ota ----------------------------------------- #define OTA_URL "http://sonoff.maddox.co.uk/tasmota/sonoff.ino.bin" // [OtaUrl] +//#define USE_ARDUINO_OTA // Add optional support for Arduino OTA (+4k5 code) /*********************************************************************************************\ * Select ONE of possible MQTT library types below \*********************************************************************************************/ // Default MQTT driver for both non-TLS and TLS connections. Blocks network if MQTT server is unavailable. -#define MQTT_LIBRARY_TYPE 1 // Use PubSubClient library +#define MQTT_LIBRARY_TYPE MQTT_PUBSUBCLIENT // Use PubSubClient library // Alternative MQTT driver does not block network when MQTT server is unavailable. No TLS support -//#define MQTT_LIBRARY_TYPE 2 // Use TasmotaMqtt library (+4k4 code, +4k mem) - non-TLS only +//#define MQTT_LIBRARY_TYPE MQTT_TASMOTAMQTT // Use TasmotaMqtt library (+4k4 code, +4k mem) - non-TLS only // Alternative MQTT driver does not block network when MQTT server is unavailable. No TLS support -//#define MQTT_LIBRARY_TYPE 3 // Use (patched) esp-mqtt-arduino library (+4k8 code, +4k mem) - non-TLS only +//#define MQTT_LIBRARY_TYPE MQTT_ESPMQTTARDUINO // Use (patched) esp-mqtt-arduino library (+4k8 code, +4k mem) - non-TLS only // -- MQTT ---------------------------------------- #define MQTT_USE 1 // [SetOption3] Select default MQTT use (0 = Off, 1 = On) @@ -90,7 +93,8 @@ // Needs Fingerprint, TLS Port, UserId and Password #ifdef USE_MQTT_TLS #define MQTT_HOST "" // [MqttHost] - #define MQTT_FINGERPRINT "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07" // [MqttFingerprint] + #define MQTT_FINGERPRINT1 "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07" // [MqttFingerprint1] + #define MQTT_FINGERPRINT2 "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07" // [MqttFingerprint2] #define MQTT_PORT 20123 // [MqttPort] MQTT TLS port #define MQTT_USER "cloudmqttuser" // [MqttUser] Mandatory user #define MQTT_PASS "cloudmqttpassword" // [MqttPassword] Mandatory password @@ -158,6 +162,8 @@ #define NTP_SERVER2 "nl.pool.ntp.org" // [NtpServer2] Select second NTP server by name or IP address (5.39.184.5) #define NTP_SERVER3 "0.nl.pool.ntp.org" // [NtpServer3] Select third NTP server by name or IP address (93.94.224.67) +#define USE_TIMERS // Add support for up to 16 timers (+2k2 code) + // -- Time - Start Daylight Saving Time and timezone offset from UTC in minutes #define TIME_DST North, Last, Sun, Mar, 2, +120 // Northern Hemisphere, Last sunday in march at 02:00 +120 minutes @@ -217,6 +223,7 @@ #define USE_PMS5003 // Add support for PMS5003 and PMS7003 particle concentration sensor (+1k3 code) #define USE_NOVA_SDS // Add support for SDS011 and SDS021 particle concentration sensor (+0k7 code) #define USE_PZEM004T // Add support for PZEM004T Energy monitor (+2k code) +#define USE_SERIAL_BRIDGE // Add support for software Serial Bridge (+0k8 code) // -- Low level interface devices ----------------- #define USE_IR_REMOTE // Send IR remote commands using library IRremoteESP8266 and ArduinoJson (+4k code, 0k3 mem, 48 iram) @@ -224,7 +231,7 @@ #define USE_IR_RECEIVE // Support for IR receiver (+5k5 code, 264 iram) #define USE_WS2812 // WS2812 Led string using library NeoPixelBus (+5k code, +1k mem, 232 iram) - Disable by // - #define USE_WS2812_CTYPE 1 // WS2812 Color type (0 - RGB, 1 - GRB, 2 - RGBW, 3 - GRBW) + #define USE_WS2812_CTYPE NEO_GRB // WS2812 Color type (NEO_RGB, NEO_GRB, NEO_BRG, NEO_RBG, NEO_RGBW, NEO_GRBW) // #define USE_WS2812_DMA // DMA supports only GPIO03 (= Serial RXD) (+1k mem). When USE_WS2812_DMA is enabled expect Exceptions on Pow #define USE_ARILUX_RF // Add support for Arilux RF remote controller (+0k8 code, 252 iram (non 2.3.0)) diff --git a/sonoff/webserver.ino b/sonoff/webserver.ino index fb248a2a7..cc843748f 100644 --- a/sonoff/webserver.ino +++ b/sonoff/webserver.ino @@ -29,7 +29,7 @@ #define STR(x) STR_HELPER(x) const char HTTP_HEAD[] PROGMEM = - "" + "" "" "" "" diff --git a/sonoff/xdrv_00_mqtt.ino b/sonoff/xdrv_00_mqtt.ino index b8e76ca7e..6a87f1f25 100644 --- a/sonoff/xdrv_00_mqtt.ino +++ b/sonoff/xdrv_00_mqtt.ino @@ -18,23 +18,23 @@ */ /*********************************************************************************************\ - * Select ONE of possible MQTT libraries below + * Select ONE of possible MQTT library types below \*********************************************************************************************/ // Default MQTT driver for both non-TLS and TLS connections. Blocks network if MQTT server is unavailable. -//#define MQTT_LIBRARY_TYPE 1 // Use PubSubClient library +//#define MQTT_LIBRARY_TYPE MQTT_PUBSUBCLIENT // Use PubSubClient library // Alternative MQTT driver does not block network when MQTT server is unavailable. No TLS support -//#define MQTT_LIBRARY_TYPE 2 // Use TasmotaMqtt library (+4k4 code, +4k mem) - non-TLS only +//#define MQTT_LIBRARY_TYPE MQTT_TASMOTAMQTT // Use TasmotaMqtt library (+4k4 code, +4k mem) - non-TLS only // Alternative MQTT driver does not block network when MQTT server is unavailable. No TLS support -//#define MQTT_LIBRARY_TYPE 3 // Use (patched) esp-mqtt-arduino library (+4k8 code, +4k mem) - non-TLS only +//#define MQTT_LIBRARY_TYPE MQTT_ESPMQTTARDUINO // Use (patched) esp-mqtt-arduino library (+4k8 code, +4k mem) - non-TLS only #ifdef USE_MQTT_TLS #ifdef MQTT_LIBRARY_TYPE #undef MQTT_LIBRARY_TYPE #endif -#define MQTT_LIBRARY_TYPE 1 // Use PubSubClient library as it only supports TLS +#define MQTT_LIBRARY_TYPE MQTT_PUBSUBCLIENT // Use PubSubClient library as it only supports TLS #else #ifndef MQTT_LIBRARY_TYPE -#define MQTT_LIBRARY_TYPE 1 // Use PubSubClient library as default +#define MQTT_LIBRARY_TYPE MQTT_PUBSUBCLIENT // Use PubSubClient library as default #endif #endif @@ -63,7 +63,7 @@ bool mqtt_connected = false; // MQTT virtual connection status * void MqttLoop() \*********************************************************************************************/ -#if (1 == MQTT_LIBRARY_TYPE) /*****************************************************************/ +#if (MQTT_LIBRARY_TYPE == MQTT_PUBSUBCLIENT) /***********************************************/ #include @@ -100,7 +100,7 @@ void MqttLoop() MqttClient.loop(); } -#elif (2 == MQTT_LIBRARY_TYPE) /*****************************************************************/ +#elif (MQTT_LIBRARY_TYPE == MQTT_TASMOTAMQTT) /**********************************************/ #include TasmotaMqtt MqttClient; @@ -134,7 +134,7 @@ void MqttLoop() { } -#elif (3 == MQTT_LIBRARY_TYPE) /***************************************************************/ +#elif (MQTT_LIBRARY_TYPE == MQTT_ESPMQTTARDUINO) /*******************************************/ #include MQTT *MqttClient = NULL; @@ -376,19 +376,33 @@ void MqttConnected() #ifdef USE_MQTT_TLS boolean MqttCheckTls() { + char fingerprint1[60]; + char fingerprint2[60]; boolean result = false; + fingerprint1[0] = '\0'; + fingerprint2[0] = '\0'; + for (byte i = 0; i < sizeof(Settings.mqtt_fingerprint[0]); i++) { + snprintf_P(fingerprint1, sizeof(fingerprint1), PSTR("%s%s%02X"), fingerprint1, (i) ? " " : "", Settings.mqtt_fingerprint[0][i]); + snprintf_P(fingerprint2, sizeof(fingerprint2), PSTR("%s%s%02X"), fingerprint2, (i) ? " " : "", Settings.mqtt_fingerprint[1][i]); + } + AddLog_P(LOG_LEVEL_INFO, S_LOG_MQTT, PSTR(D_FINGERPRINT)); if (!EspClient.connect(Settings.mqtt_host, Settings.mqtt_port)) { snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_MQTT D_TLS_CONNECT_FAILED_TO " %s:%d. " D_RETRY_IN " %d " D_UNIT_SECOND), Settings.mqtt_host, Settings.mqtt_port, mqtt_retry_counter); AddLog(LOG_LEVEL_DEBUG); - } else if (!EspClient.verify(Settings.mqtt_fingerprint, Settings.mqtt_host)) { - AddLog_P(LOG_LEVEL_INFO, S_LOG_MQTT, PSTR(D_INSECURE)); } else { - AddLog_P(LOG_LEVEL_INFO, S_LOG_MQTT, PSTR(D_VERIFIED)); - result = true; + if (EspClient.verify(fingerprint1, Settings.mqtt_host)) { + AddLog_P(LOG_LEVEL_INFO, S_LOG_MQTT, PSTR(D_VERIFIED "1")); + result = true; + } + else if (EspClient.verify(fingerprint2, Settings.mqtt_host)) { + AddLog_P(LOG_LEVEL_INFO, S_LOG_MQTT, PSTR(D_VERIFIED "2")); + result = true; + } } + if (!result) AddLog_P(LOG_LEVEL_INFO, S_LOG_MQTT, PSTR(D_FAILED)); EspClient.stop(); yield(); return result; @@ -436,14 +450,14 @@ void MqttReconnect() if (!MqttCheckTls()) return; #endif // USE_MQTT_TLS -#if (2 == MQTT_LIBRARY_TYPE) +#if (MQTT_LIBRARY_TYPE == MQTT_TASMOTAMQTT) MqttClient.InitConnection(Settings.mqtt_host, Settings.mqtt_port); MqttClient.InitClient(mqtt_client, mqtt_user, mqtt_pwd, MQTT_KEEPALIVE); MqttClient.InitLWT(stopic, mqtt_data, 1, true); MqttClient.OnConnected(MqttConnected); MqttClient.OnDisconnected(MqttDisconnectedCb); MqttClient.OnData(MqttDataHandler); -#elif (3 == MQTT_LIBRARY_TYPE) +#elif (MQTT_LIBRARY_TYPE == MQTT_ESPMQTTARDUINO) MqttClient = new MQTT(mqtt_client, Settings.mqtt_host, Settings.mqtt_port, stopic, 1, true, mqtt_data); MqttClient->setUserPwd(mqtt_user, mqtt_pwd); MqttClient->onConnected(MqttConnected); @@ -454,7 +468,7 @@ void MqttReconnect() mqtt_initial_connection_state = 1; } -#if (1 == MQTT_LIBRARY_TYPE) +#if (MQTT_LIBRARY_TYPE == MQTT_PUBSUBCLIENT) MqttClient.setCallback(MqttDataHandler); MqttClient.setServer(Settings.mqtt_host, Settings.mqtt_port); if (MqttClient.connect(mqtt_client, mqtt_user, mqtt_pwd, stopic, 1, true, mqtt_data)) { @@ -462,9 +476,9 @@ void MqttReconnect() } else { MqttDisconnected(MqttClient.state()); // status codes are documented here http://pubsubclient.knolleary.net/api.html#state } -#elif (2 == MQTT_LIBRARY_TYPE) +#elif (MQTT_LIBRARY_TYPE == MQTT_TASMOTAMQTT) MqttClient.Connect(); -#elif (3 == MQTT_LIBRARY_TYPE) +#elif (MQTT_LIBRARY_TYPE == MQTT_ESPMQTTARDUINO) MqttClient->connect(); #endif // MQTT_LIBRARY_TYPE } @@ -534,12 +548,22 @@ bool MqttCommand() snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_INDEX_SVALUE, command, index, GetStateText(index -1)); } #ifdef USE_MQTT_TLS - else if (CMND_MQTTFINGERPRINT == command_code) { - if ((data_len > 0) && (data_len < sizeof(Settings.mqtt_fingerprint))) { - strlcpy(Settings.mqtt_fingerprint, (!strcmp(dataBuf,"0")) ? "" : (1 == payload) ? MQTT_FINGERPRINT : dataBuf, sizeof(Settings.mqtt_fingerprint)); + else if ((CMND_MQTTFINGERPRINT == command_code) && (index > 0) && (index <= 2)) { + char fingerprint[60]; + if ((data_len > 0) && (data_len < sizeof(fingerprint))) { + strlcpy(fingerprint, (!strcmp(dataBuf,"0")) ? "" : (1 == payload) ? (1 == index) ? MQTT_FINGERPRINT1 : MQTT_FINGERPRINT2 : dataBuf, sizeof(fingerprint)); + char *p = fingerprint; + for (byte i = 0; i < 20; i++) { + Settings.mqtt_fingerprint[index -1][i] = strtol(p, &p, 16); + } restart_flag = 2; } - snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, Settings.mqtt_fingerprint); + + fingerprint[0] = '\0'; + for (byte i = 0; i < sizeof(Settings.mqtt_fingerprint[index -1]); i++) { + snprintf_P(fingerprint, sizeof(fingerprint), PSTR("%s%s%02X"), fingerprint, (i) ? " " : "", Settings.mqtt_fingerprint[index -1][i]); + } + snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_INDEX_SVALUE, command, index, fingerprint); } #endif else if ((CMND_MQTTCLIENT == command_code) && !grpflg) { diff --git a/sonoff/xdrv_01_light.ino b/sonoff/xdrv_01_light.ino index 432788878..54c7cebc9 100644 --- a/sonoff/xdrv_01_light.ino +++ b/sonoff/xdrv_01_light.ino @@ -55,10 +55,12 @@ enum LightCommands { CMND_COLOR, CMND_COLORTEMPERATURE, CMND_DIMMER, CMND_LED, CMND_LEDTABLE, CMND_FADE, - CMND_PIXELS, CMND_SCHEME, CMND_SPEED, CMND_WAKEUP, CMND_WAKEUPDURATION, CMND_WIDTH, CMND_UNDOCA }; + CMND_PIXELS, CMND_ROTATION, CMND_SCHEME, CMND_SPEED, CMND_WAKEUP, CMND_WAKEUPDURATION, + CMND_WIDTH, CMND_CHANNEL, CMND_HSBCOLOR, CMND_UNDOCA }; const char kLightCommands[] PROGMEM = D_CMND_COLOR "|" D_CMND_COLORTEMPERATURE "|" D_CMND_DIMMER "|" D_CMND_LED "|" D_CMND_LEDTABLE "|" D_CMND_FADE "|" - D_CMND_PIXELS "|" D_CMND_SCHEME "|" D_CMND_SPEED "|" D_CMND_WAKEUP "|" D_CMND_WAKEUPDURATION "|" D_CMND_WIDTH "|UNDOCA" ; + D_CMND_PIXELS "|" D_CMND_ROTATION "|" D_CMND_SCHEME "|" D_CMND_SPEED "|" D_CMND_WAKEUP "|" D_CMND_WAKEUPDURATION "|" + D_CMND_WIDTH "|" D_CMND_CHANNEL "|" D_CMND_HSBCOLOR "|UNDOCA" ; struct LRgbColor { uint8_t R, G, B; @@ -376,7 +378,7 @@ void LightInit() } #ifdef USE_WS2812 // ************************************************************************ else if (LT_WS2812 == light_type) { -#if (USE_WS2812_CTYPE > 1) +#if (USE_WS2812_CTYPE > NEO_3LED) light_subtype++; // from RGB to RGBW #endif Ws2812Init(); @@ -535,6 +537,8 @@ void LightState(uint8_t append) { char scolor[25]; char scommand[33]; + float hsb[3]; + int16_t h,s,b; if (append) { snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,"), mqtt_data); @@ -546,6 +550,19 @@ void LightState(uint8_t append) mqtt_data, scommand, GetStateText(light_power), Settings.light_dimmer); if (light_subtype > LST_SINGLE) { snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"" D_CMND_COLOR "\":\"%s\""), mqtt_data, LightGetColor(0, scolor)); + // Add status for HSB + LightGetHsb(&hsb[0],&hsb[1],&hsb[2]); + // Scale these percentages up to the numbers expected byt he client + h = round(hsb[0] * 360); + s = round(hsb[1] * 100); + b = round(hsb[2] * 100); + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"" D_CMND_HSBCOLOR "\":\"%d,%d,%d\""), mqtt_data, h,s,b); + // Add status for each channel + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"" D_CMND_CHANNEL "\":[" ), mqtt_data); + for (byte i = 0; i < light_subtype; i++) { + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s%s%d" ), mqtt_data, (i > 0 ? "," : ""), round(light_current_color[i]/2.55)); + } + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s]" ), mqtt_data); } if ((LST_COLDWARM == light_subtype) || (LST_RGBWC == light_subtype)) { snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"" D_CMND_COLORTEMPERATURE "\":%d"), mqtt_data, LightGetColorTemp()); @@ -1018,7 +1035,7 @@ boolean LightCommand() char option = (1 == XdrvMailbox.data_len) ? XdrvMailbox.data[0] : '\0'; int command_code = GetCommandCode(command, sizeof(command), XdrvMailbox.topic, kLightCommands); - if ((CMND_COLOR == command_code) && (light_subtype > LST_SINGLE) && (XdrvMailbox.index > 0) && (XdrvMailbox.index <= 5)) { + if ((CMND_COLOR == command_code) && (light_subtype > LST_SINGLE) && (XdrvMailbox.index > 0) && (XdrvMailbox.index <= 6)) { if (XdrvMailbox.data_len > 0) { valid_entry = LightColorEntry(XdrvMailbox.data, XdrvMailbox.data_len); if (valid_entry) { @@ -1031,7 +1048,7 @@ boolean LightCommand() } Settings.light_scheme = 0; coldim = true; - } else { // Color3, 4 and 5 + } else { // Color3, 4, 5 and 6 for (byte i = 0; i < LST_RGB; i++) { Settings.ws_color[XdrvMailbox.index -3][i] = light_entry_color[i]; } @@ -1053,6 +1070,47 @@ boolean LightCommand() snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_INDEX_SVALUE, command, XdrvMailbox.index, scolor); } } + else if ((CMND_CHANNEL == command_code) && (XdrvMailbox.index > 0) && (XdrvMailbox.index <= light_subtype ) ) { + // Set "Channel" directly - this allows Color and Direct PWM control to coexist + if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 100)) { + uint8_t level = XdrvMailbox.payload; + light_current_color[XdrvMailbox.index-1] = round(level * 2.55); + LightSetColor(); + coldim = true; + } + snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_INDEX_NVALUE, command, XdrvMailbox.index, round(light_current_color[XdrvMailbox.index -1] / 2.55)); + } + else if ((CMND_HSBCOLOR == command_code) && ( light_subtype >= LST_RGB)) { + // Implement method to "direct set" color by HSB (HSB is passed comma separated, 0360) ? (HSB[0] % 360) : HSB[0] ) /360.0, + ( (HSB[1]>100) ? (HSB[1] % 100) : HSB[1] ) /100.0, + ( (HSB[2]>100) ? (HSB[2] % 100) : HSB[2] ) /100.0, + 0); + } else { + LightState(0); + } + } #ifdef USE_WS2812 // *********************************************************************** else if ((CMND_LED == command_code) && (LT_WS2812 == light_type) && (XdrvMailbox.index > 0) && (XdrvMailbox.index <= Settings.light_pixels)) { if (XdrvMailbox.data_len > 0) { @@ -1065,11 +1123,18 @@ boolean LightCommand() else if ((CMND_PIXELS == command_code) && (LT_WS2812 == light_type)) { if ((XdrvMailbox.payload > 0) && (XdrvMailbox.payload <= WS2812_MAX_LEDS)) { Settings.light_pixels = XdrvMailbox.payload; + Settings.light_rotation = 0; Ws2812Clear(); light_update = 1; } snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.light_pixels); } + else if ((CMND_ROTATION == command_code) && (LT_WS2812 == light_type)) { + if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < Settings.light_pixels)) { + Settings.light_rotation = XdrvMailbox.payload; + } + snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.light_rotation); + } else if ((CMND_WIDTH == command_code) && (LT_WS2812 == light_type) && (XdrvMailbox.index > 0) && (XdrvMailbox.index <= 4)) { if (1 == XdrvMailbox.index) { if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 4)) { diff --git a/sonoff/xdrv_03_energy.ino b/sonoff/xdrv_03_energy.ino index bf29ed6be..8867ed298 100644 --- a/sonoff/xdrv_03_energy.ino +++ b/sonoff/xdrv_03_energy.ino @@ -29,12 +29,14 @@ enum EnergyHardware { ENERGY_NONE, ENERGY_HLW8012, ENERGY_CSE7766, ENERGY_PZEM004T }; enum EnergyCommands { + CMND_POWERDELTA, CMND_POWERLOW, CMND_POWERHIGH, CMND_VOLTAGELOW, CMND_VOLTAGEHIGH, CMND_CURRENTLOW, CMND_CURRENTHIGH, CMND_POWERCAL, CMND_POWERSET, CMND_VOLTAGECAL, CMND_VOLTAGESET, CMND_CURRENTCAL, CMND_CURRENTSET, CMND_ENERGYRESET, CMND_MAXENERGY, CMND_MAXENERGYSTART, CMND_MAXPOWER, CMND_MAXPOWERHOLD, CMND_MAXPOWERWINDOW, CMND_SAFEPOWER, CMND_SAFEPOWERHOLD, CMND_SAFEPOWERWINDOW }; const char kEnergyCommands[] PROGMEM = + D_CMND_POWERDELTA "|" D_CMND_POWERLOW "|" D_CMND_POWERHIGH "|" D_CMND_VOLTAGELOW "|" D_CMND_VOLTAGEHIGH "|" D_CMND_CURRENTLOW "|" D_CMND_CURRENTHIGH "|" D_CMND_POWERCAL "|" D_CMND_POWERSET "|" D_CMND_VOLTAGECAL "|" D_CMND_VOLTAGESET "|" D_CMND_CURRENTCAL "|" D_CMND_CURRENTSET "|" D_CMND_ENERGYRESET "|" D_CMND_MAXENERGY "|" D_CMND_MAXENERGYSTART "|" @@ -51,6 +53,9 @@ float energy_start = 0; // 12345.12345 kWh total previous unsigned long energy_kWhtoday; // 1212312345 Wh * 10^-5 (deca micro Watt hours) - 5763924 = 0.05763924 kWh = 0.058 kWh = energy_daily unsigned long energy_period = 0; // 1212312345 Wh * 10^-5 (deca micro Watt hours) - 5763924 = 0.05763924 kWh = 0.058 kWh = energy_daily +float energy_power_last[3] = { 0 }; +uint8_t energy_power_delta = 0; + bool energy_power_on = true; byte energy_min_power_flag = 0; @@ -264,6 +269,7 @@ uint8_t cse_receive_flag = 0; long voltage_cycle = 0; long current_cycle = 0; long power_cycle = 0; +unsigned long power_cycle_first = 0; long cf_pulses = 0; long cf_pulses_last_time = CSE_PULSES_NOT_INITIALIZED; @@ -314,9 +320,6 @@ void CseReceived() power_cycle = serial_in_buffer[17] << 16 | serial_in_buffer[18] << 8 | serial_in_buffer[19]; cf_pulses = serial_in_buffer[21] << 8 | serial_in_buffer[22]; -// if (adjustement & 0x80) { // CF overflow -// cf_pulses += 0x10000; -// } if (energy_power_on) { // Powered on if (adjustement & 0x40) { // Voltage valid energy_voltage = (float)(Settings.energy_voltage_calibration * CSE_UREF) / (float)voltage_cycle; @@ -325,9 +328,16 @@ void CseReceived() if ((header & 0xF2) == 0xF2) { // Power cycle exceeds range energy_power = 0; } else { - energy_power = (float)(Settings.energy_power_calibration * CSE_PREF) / (float)power_cycle; + if (0 == power_cycle_first) power_cycle_first = power_cycle; // Skip first incomplete power_cycle + if (power_cycle_first != power_cycle) { + power_cycle_first = -1; + energy_power = (float)(Settings.energy_power_calibration * CSE_PREF) / (float)power_cycle; + } else { + energy_power = 0; + } } } else { + power_cycle_first = 0; energy_power = 0; // Powered on but no load } if (adjustement & 0x20) { // Current valid @@ -338,6 +348,7 @@ void CseReceived() } } } else { // Powered off + power_cycle_first = 0; energy_voltage = 0; energy_power = 0; energy_current = 0; @@ -638,6 +649,20 @@ void EnergyMarginCheck() return; } + if (Settings.energy_power_delta) { + float delta = abs(energy_power_last[0] - energy_power); + // Any delta compared to minimal delta + float min_power = (energy_power_last[0] > energy_power) ? energy_power : energy_power_last[0]; + if (((delta / min_power) * 100) > Settings.energy_power_delta) { + energy_power_delta = 1; + energy_power_last[1] = energy_power; // We only want one report so reset history + energy_power_last[2] = energy_power; + } + } + energy_power_last[0] = energy_power_last[1]; // Shift in history every second allowing power changes to settle for up to three seconds + energy_power_last[1] = energy_power_last[2]; + energy_power_last[2] = energy_power; + if (energy_power_on && (Settings.energy_min_power || Settings.energy_max_power || Settings.energy_min_voltage || Settings.energy_max_voltage || Settings.energy_min_current || Settings.energy_max_current)) { energy_power_u = (uint16_t)(energy_power); energy_voltage_u = (uint16_t)(energy_voltage); @@ -743,6 +768,8 @@ void EnergyMarginCheck() } } #endif // FEATURE_POWER_LIMIT + + if (energy_power_delta) EnergyMqttShow(); } void EnergyMqttShow() @@ -752,6 +779,7 @@ void EnergyMqttShow() EnergyShow(1); snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s}"), mqtt_data); MqttPublishPrefixTopic_P(TELE, PSTR(D_RSLT_ENERGY), Settings.flag.mqtt_sensor_retain); + energy_power_delta = 0; } /*********************************************************************************************\ @@ -768,7 +796,14 @@ boolean EnergyCommand() unsigned long nvalue = 0; int command_code = GetCommandCode(command, sizeof(command), XdrvMailbox.topic, kEnergyCommands); - if (CMND_POWERLOW == command_code) { + if (CMND_POWERDELTA == command_code) { + if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 101)) { + Settings.energy_power_delta = (1 == XdrvMailbox.payload) ? DEFAULT_POWER_DELTA : XdrvMailbox.payload; + } + nvalue = Settings.energy_power_delta; + unit = UNIT_PERCENTAGE; + } + else if (CMND_POWERLOW == command_code) { if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 3601)) { Settings.energy_min_power = XdrvMailbox.payload; } diff --git a/sonoff/xdrv_07_home_assistant.ino b/sonoff/xdrv_07_home_assistant.ino index d377fe535..eaec8686e 100644 --- a/sonoff/xdrv_07_home_assistant.ino +++ b/sonoff/xdrv_07_home_assistant.ino @@ -53,24 +53,7 @@ const char HASS_DISCOVER_LIGHT_SCHEME[] PROGMEM = "%s,\"effect_command_topic\":\"%s\"," // cmnd/led2/Scheme "\"effect_state_topic\":\"%s\"," // stat/led2/RESULT "\"effect_value_template\":\"{{value_json." D_CMND_SCHEME "}}\"," - "\"effect_list\":\"[0, 1, 2, 3, 4]\""; // Needs to be a Python string list providing Scheme parameter values (Unable to get this functional) -*/ -/* -#1690 - investigate -effect_list: -- 0 -- 1 -- 2 -- 3 -- 4 -- 5 -- 6 -- 7 -- 8 -- 9 -- 10 -- 11 -- 12 + "\"effect_list\":[\"0\",\"1\",\"2\",\"3\",\"4\"]"; // string list with reference to scheme parameter. Currently only supports numbers 0 to 11 as it make the mqtt string too long */ void HAssDiscovery() { @@ -93,9 +76,9 @@ void HAssDiscovery() snprintf_P(sidx, sizeof(sidx), PSTR("_%d"), i); // Clear "other" topic first in case the device has been reconfigured - snprintf_P(stopic, sizeof(stopic), PSTR(HOME_ASSISTANT_DISCOVERY_PREFIX "/%s/%s%s/config"), (is_light) ? "switch" : "light", mqtt_topic, (1 == devices_present) ? "" : sidx); + snprintf_P(stopic, sizeof(stopic), PSTR(HOME_ASSISTANT_DISCOVERY_PREFIX "/%s/%s%s/config"), (is_light) ? "switch" : "light", mqtt_topic, sidx); MqttPublish(stopic, true); - snprintf_P(stopic, sizeof(stopic), PSTR(HOME_ASSISTANT_DISCOVERY_PREFIX "/%s/%s%s/config"), (is_light) ? "light" : "switch", mqtt_topic, (1 == devices_present) ? "" : sidx); + snprintf_P(stopic, sizeof(stopic), PSTR(HOME_ASSISTANT_DISCOVERY_PREFIX "/%s/%s%s/config"), (is_light) ? "light" : "switch", mqtt_topic, sidx); if (Settings.flag.hass_discovery) { char name[33]; diff --git a/sonoff/xdrv_08_serial_bridge.ino b/sonoff/xdrv_08_serial_bridge.ino new file mode 100644 index 000000000..428dc5e35 --- /dev/null +++ b/sonoff/xdrv_08_serial_bridge.ino @@ -0,0 +1,149 @@ +/* + xdrv_08_serial_bridge.ino - serial bridge support for Sonoff-Tasmota + + Copyright (C) 2018 Theo Arends and Dániel Zoltán Tolnai + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifdef USE_SERIAL_BRIDGE +/*********************************************************************************************\ + * Serial Bridge using Software Serial library (TasmotaSerial) +\*********************************************************************************************/ +#define SERIAL_BRIDGE_BUFFER_SIZE 130 + +#include + +enum SerialBridgeCommands { CMND_SSERIALSEND, CMND_SBAUDRATE }; +const char kSerialBridgeCommands[] PROGMEM = D_CMND_SSERIALSEND "|" D_CMND_SBAUDRATE; + +TasmotaSerial *SerialBridgeSerial; + +uint8_t serial_bridge_active = 1; +uint8_t serial_bridge_in_byte_counter = 0; +unsigned long serial_bridge_polling_window = 0; +char serial_bridge_buffer[SERIAL_BRIDGE_BUFFER_SIZE]; + +void SerialBridgeInput() +{ + while (SerialBridgeSerial->available()) { + yield(); + uint8_t serial_in_byte = SerialBridgeSerial->read(); + + if (serial_in_byte > 127) { // binary data... + serial_bridge_in_byte_counter = 0; + SerialBridgeSerial->flush(); + return; + } + if (serial_in_byte) { + if ((serial_in_byte_counter < sizeof(serial_bridge_buffer) -1) && (serial_in_byte != Settings.serial_delimiter)) { // add char to string if it still fits + serial_bridge_buffer[serial_bridge_in_byte_counter++] = serial_in_byte; + serial_bridge_polling_window = millis(); // Wait for more data + } else { + serial_bridge_polling_window = 0; // Publish now + break; + } + } + } + + if (serial_bridge_in_byte_counter && (millis() > (serial_bridge_polling_window + SERIAL_POLLING))) { + serial_bridge_buffer[serial_bridge_in_byte_counter] = 0; // serial data completed + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_JSON_SSERIALRECEIVED "\":\"%s\"}"), serial_bridge_buffer); + MqttPublishPrefixTopic_P(RESULT_OR_TELE, PSTR(D_JSON_SSERIALRECEIVED)); + serial_bridge_in_byte_counter = 0; + } +} + +/********************************************************************************************/ + +void SerialBridgeInit(void) +{ + serial_bridge_active = 0; + if ((pin[GPIO_SBR_RX] < 99) && (pin[GPIO_SBR_TX] < 99)) { + SerialBridgeSerial = new TasmotaSerial(pin[GPIO_SBR_RX], pin[GPIO_SBR_TX]); + if (SerialBridgeSerial->begin(Settings.sbaudrate * 1200)) { // Baud rate is stored div 1200 so it fits into one byte + serial_bridge_active = 1; + SerialBridgeSerial->flush(); + } + } +} + +/*********************************************************************************************\ + * Commands +\*********************************************************************************************/ + +boolean SerialBridgeCommand() +{ + char command [CMDSZ]; + boolean serviced = true; + + int command_code = GetCommandCode(command, sizeof(command), XdrvMailbox.topic, kSerialBridgeCommands); + if ((CMND_SSERIALSEND == command_code) && (XdrvMailbox.index > 0) && (XdrvMailbox.index <= 3)) { + if (XdrvMailbox.data_len > 0) { + if (1 == XdrvMailbox.index) { + SerialBridgeSerial->write(XdrvMailbox.data, XdrvMailbox.data_len); + SerialBridgeSerial->write("\n"); + } + else if (2 == XdrvMailbox.index) { + SerialBridgeSerial->write(XdrvMailbox.data, XdrvMailbox.data_len); + } + else if (3 == XdrvMailbox.index) { + SerialBridgeSerial->write(Unescape(XdrvMailbox.data, &XdrvMailbox.data_len), XdrvMailbox.data_len); + } + snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, D_JSON_DONE); + } + } + else if (CMND_SBAUDRATE == command_code) { + char *p; + int baud = strtol(XdrvMailbox.data, &p, 10); + if (baud > 0) { + baud /= 1200; // Make it a valid baudrate + Settings.sbaudrate = (1 == XdrvMailbox.payload) ? SOFT_BAUDRATE / 1200 : baud; + SerialBridgeSerial->begin(Settings.sbaudrate * 1200); // Reinitialize serial port with new baud rate + } + snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_LVALUE, command, Settings.sbaudrate * 1200); + } + else { + serviced = false; // Unknown command + } + return serviced; +} + +/*********************************************************************************************\ + * Interface +\*********************************************************************************************/ + +#define XDRV_08 + +boolean Xdrv08(byte function) +{ + boolean result = false; + + if (serial_bridge_active) { + switch (function) { + case FUNC_INIT: + SerialBridgeInit(); + break; + case FUNC_LOOP: + SerialBridgeInput(); + break; + case FUNC_COMMAND: + result = SerialBridgeCommand(); + break; + } + } + return result; +} + +#endif // USE_SERIAL_BRIDGE diff --git a/sonoff/xdrv_09_timers.ino b/sonoff/xdrv_09_timers.ino new file mode 100644 index 000000000..350f49dfd --- /dev/null +++ b/sonoff/xdrv_09_timers.ino @@ -0,0 +1,205 @@ +/* + xdrv_09_timers.ino - timer support for Sonoff-Tasmota + + Copyright (C) 2018 Theo Arends + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifdef USE_TIMERS +/*********************************************************************************************\ + * Timers + * + * Arm a timer using one or all of the following JSON values: + * {"Arm":1,"Time":"09:23","Days":"--TW--S","Repeat":1,"Device":1,"Power":1} + * + * Arm 0 = Off, 1 = On + * Time hours:minutes + * Days 7 day character mask starting with Sunday (SMTWTFS). 0 or - = Off, any other value = On + * Repeat 0 = Execute once, 1 = Execute again + * Device 1..16 + * Power 0 = Off, 1 = On, 2 = Toggle, 3 = Blink + * +\*********************************************************************************************/ + +enum TimerCommands { CMND_TIMER, CMND_TIMERS }; +const char kTimerCommands[] PROGMEM = D_CMND_TIMER "|" D_CMND_TIMERS ; + +power_t fired = 0; + +void TimerEverySecond() +{ + if (RtcTime.valid) { + uint16_t time = (RtcTime.hour * 60) + RtcTime.minute; + uint8_t days = 1 << (RtcTime.day_of_week -1); + + for (byte i = 0; i < MAX_TIMERS; i++) { + if (Settings.timer[i].arm) { + if (time == Settings.timer[i].time) { + if (!bitRead(fired, i) && (Settings.timer[i].days & days)) { + bitSet(fired, i); + Settings.timer[i].arm = Settings.timer[i].repeat; + ExecuteCommandPower(Settings.timer[i].device +1, Settings.timer[i].power); + } + } else { + bitClear(fired, i); + } + } + } + } +} + +void PrepShowTimer(uint8_t index) +{ + char days[8] = { 0 }; + + index--; + for (byte i = 0; i < 7; i++) { + uint8_t mask = 1 << i; + snprintf(days, sizeof(days), "%s%d", days, ((Settings.timer[index].days & mask) > 0)); + } + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s\"" D_CMND_TIMER "%d\":{\"" D_JSON_TIMER_ARM "\":%d,\"" D_JSON_TIMER_TIME "\":\"%02d:%02d\",\"" D_JSON_TIMER_DAYS "\":\"%s\",\"" D_JSON_TIMER_REPEAT "\":%d,\"" D_JSON_TIMER_DEVICE "\":%d,\"" D_JSON_TIMER_POWER "\":%d}"), + mqtt_data, index +1, Settings.timer[index].arm, Settings.timer[index].time / 60, Settings.timer[index].time % 60, days, Settings.timer[index].repeat, Settings.timer[index].device +1, Settings.timer[index].power); +} + +/*********************************************************************************************\ + * Commands +\*********************************************************************************************/ + +boolean TimerCommand() +{ + char command [CMDSZ]; + char dataBufUc[XdrvMailbox.data_len]; + boolean serviced = true; + uint8_t index = XdrvMailbox.index; + + UpperCase(dataBufUc, XdrvMailbox.data); + int command_code = GetCommandCode(command, sizeof(command), XdrvMailbox.topic, kTimerCommands); + if ((CMND_TIMER == command_code) && (index > 0) && (index <= MAX_TIMERS)) { + uint8_t error = 0; + + if (XdrvMailbox.data_len) { + StaticJsonBuffer<128> jsonBuffer; + JsonObject& root = jsonBuffer.parseObject(dataBufUc); + if (!root.success()) { + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_TIMER "%d\":\"" D_JSON_INVALID_JSON "\"}"), index); // JSON decode failed + error = 1; + } + else { + char parm_uc[10]; + + index--; + if (root[UpperCase_P(parm_uc, PSTR(D_JSON_TIMER_ARM))].success()) { + Settings.timer[index].arm = (root[parm_uc] != 0); + } + if (root[UpperCase_P(parm_uc, PSTR(D_JSON_TIMER_TIME))].success()) { + uint16_t itime = 0; + uint8_t value = 0; + char time_str[10]; + + snprintf(time_str, sizeof(time_str), root[parm_uc]); + const char *substr = strtok(time_str, ":"); + if (substr != NULL) { + value = atoi(substr); + if (value > 23) value = 23; + itime = value * 60; + substr = strtok(NULL, ":"); + if (substr != NULL) { + value = atoi(substr); + if (value > 59) value = 59; + itime += value; + } + } + Settings.timer[index].time = itime; + } + if (root[UpperCase_P(parm_uc, PSTR(D_JSON_TIMER_DAYS))].success()) { + // SMTWTFS = 1234567 = 0011001 = 00TW00S = --TW--S + Settings.timer[index].days = 0; + const char *tday = root[parm_uc]; + char ch = '.'; + + uint8_t i = 0; + while ((ch != '\0') && (i < 7)) { + ch = *tday++; + if (ch == '-') ch = '0'; + uint8_t mask = 1 << i++; + Settings.timer[index].days |= (ch == '0') ? 0 : mask; + } + } + if (root[UpperCase_P(parm_uc, PSTR(D_JSON_TIMER_REPEAT))].success()) { + Settings.timer[index].repeat = (root[parm_uc] != 0); + } + if (root[UpperCase_P(parm_uc, PSTR(D_JSON_TIMER_DEVICE))].success()) { + Settings.timer[index].device = ((uint8_t)root[parm_uc] -1) & 0x0F; + } + if (root[UpperCase_P(parm_uc, PSTR(D_JSON_TIMER_POWER))].success()) { + Settings.timer[index].power = (uint8_t)root[parm_uc] & 0x03; + } + if (Settings.timer[index].arm) bitClear(fired, index); + + index++; + } + } + if (!error) { + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{")); + PrepShowTimer(index); + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s}"), mqtt_data); + } + } + else if (CMND_TIMERS == command_code) { + byte jsflg = 0; + byte lines = 1; + for (byte i = 0; i < MAX_TIMERS; i++) { + if (!jsflg) { + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_TIMERS "%d\":{"), lines++); + } else { + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,"), mqtt_data); + } + jsflg = 1; + PrepShowTimer(i +1); + if ((strlen(mqtt_data) > (LOGSZ - TOPSZ)) || (i == MAX_TIMERS -1)) { + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s}}"), mqtt_data); + MqttPublishPrefixTopic_P(RESULT_OR_STAT, PSTR(D_CMND_TIMERS)); + jsflg = 0; + } + } + mqtt_data[0] = '\0'; + } + else serviced = false; + + return serviced; +} + +/*********************************************************************************************\ + * Interface +\*********************************************************************************************/ + +#define XDRV_09 + +boolean Xdrv09(byte function) +{ + boolean result = false; + + switch (function) { + case FUNC_EVERY_SECOND: + TimerEverySecond(); + break; + case FUNC_COMMAND: + result = TimerCommand(); + break; + } + return result; +} + +#endif // USE_TIMERS \ No newline at end of file diff --git a/sonoff/xplg_ws2812.ino b/sonoff/xplg_ws2812.ino index d8d085085..4d6410f90 100644 --- a/sonoff/xplg_ws2812.ino +++ b/sonoff/xplg_ws2812.ino @@ -25,21 +25,29 @@ #include #ifdef USE_WS2812_DMA -#if (USE_WS2812_CTYPE == 1) +#if (USE_WS2812_CTYPE == NEO_GRB) NeoPixelBus *strip = NULL; -#elif (USE_WS2812_CTYPE == 2) +#elif (USE_WS2812_CTYPE == NEO_BRG) + NeoPixelBus *strip = NULL; +#elif (USE_WS2812_CTYPE == NEO_RBG) + NeoPixelBus *strip = NULL; +#elif (USE_WS2812_CTYPE == NEO_RGBW) NeoPixelBus *strip = NULL; -#elif (USE_WS2812_CTYPE == 3) +#elif (USE_WS2812_CTYPE == NEO_GRBW) NeoPixelBus *strip = NULL; #else // USE_WS2812_CTYPE NeoPixelBus *strip = NULL; #endif // USE_WS2812_CTYPE #else // USE_WS2812_DMA -#if (USE_WS2812_CTYPE == 1) +#if (USE_WS2812_CTYPE == NEO_GRB) NeoPixelBus *strip = NULL; -#elif (USE_WS2812_CTYPE == 2) +#elif (USE_WS2812_CTYPE == NEO_BRG) + NeoPixelBus *strip = NULL; +#elif (USE_WS2812_CTYPE == NEO_RBG) + NeoPixelBus *strip = NULL; +#elif (USE_WS2812_CTYPE == NEO_RGBW) NeoPixelBus *strip = NULL; -#elif (USE_WS2812_CTYPE == 3) +#elif (USE_WS2812_CTYPE == NEO_GRBW) NeoPixelBus *strip = NULL; #else // USE_WS2812_CTYPE NeoPixelBus *strip = NULL; @@ -90,7 +98,7 @@ uint8_t ws_show_next = 1; void Ws2812StripShow() { -#if (USE_WS2812_CTYPE > 1) +#if (USE_WS2812_CTYPE > NEO_3LED) RgbwColor c; #else RgbColor c; @@ -102,7 +110,7 @@ void Ws2812StripShow() c.R = ledTable[c.R]; c.G = ledTable[c.G]; c.B = ledTable[c.B]; -#if (USE_WS2812_CTYPE > 1) +#if (USE_WS2812_CTYPE > NEO_3LED) c.W = ledTable[c.W]; #endif strip->SetPixelColor(i, c); @@ -114,9 +122,7 @@ void Ws2812StripShow() int mod(int a, int b) { int ret = a % b; - if (ret < 0) { - ret += b; - } + if (ret < 0) ret += b; return ret; } @@ -124,7 +130,7 @@ int mod(int a, int b) void Ws2812UpdatePixelColor(int position, struct WsColor hand_color, float offset) { -#if (USE_WS2812_CTYPE > 1) +#if (USE_WS2812_CTYPE > NEO_3LED) RgbwColor color; #else RgbColor color; @@ -142,13 +148,15 @@ void Ws2812UpdatePixelColor(int position, struct WsColor hand_color, float offse void Ws2812UpdateHand(int position, uint8_t index) { - if (Settings.flag.ws_clock_reverse) { - position = Settings.light_pixels -position; - } + position = (position + Settings.light_rotation) % Settings.light_pixels; + + if (Settings.flag.ws_clock_reverse) position = Settings.light_pixels -position; WsColor hand_color = { Settings.ws_color[index][WS_RED], Settings.ws_color[index][WS_GREEN], Settings.ws_color[index][WS_BLUE] }; Ws2812UpdatePixelColor(position, hand_color, 1); - uint8_t range = ((Settings.ws_width[index] -1) / 2) +1; + + uint8_t range = 1; + if (index < WS_MARKER) range = ((Settings.ws_width[index] -1) / 2) +1; for (uint8_t h = 1; h < range; h++) { float offset = (float)(range - h) / (float)range; Ws2812UpdatePixelColor(position -h, hand_color, offset); @@ -160,9 +168,15 @@ void Ws2812Clock() { strip->ClearTo(0); // Reset strip int clksize = 60000 / (int)Settings.light_pixels; + Ws2812UpdateHand((RtcTime.second * 1000) / clksize, WS_SECOND); Ws2812UpdateHand((RtcTime.minute * 1000) / clksize, WS_MINUTE); Ws2812UpdateHand(((RtcTime.hour % 12) * (5000 / clksize)) + ((RtcTime.minute * 1000) / (12 * clksize)), WS_HOUR); + if (Settings.ws_color[WS_MARKER][WS_RED] + Settings.ws_color[WS_MARKER][WS_GREEN] + Settings.ws_color[WS_MARKER][WS_BLUE]) { + for (byte i = 0; i < 12; i++) { + Ws2812UpdateHand((i * 5000) / clksize, WS_MARKER); + } + } Ws2812StripShow(); } @@ -199,7 +213,7 @@ void Ws2812Gradient(uint8_t schemenr) * Display a gradient of colors for the current color scheme. * Repeat is the number of repetitions of the gradient (pick a multiple of 2 for smooth looping of the gradient). */ -#if (USE_WS2812_CTYPE > 1) +#if (USE_WS2812_CTYPE > NEO_3LED) RgbwColor c; c.W = 0; #else @@ -207,9 +221,7 @@ void Ws2812Gradient(uint8_t schemenr) #endif ColorScheme scheme = kSchemes[schemenr]; - if (scheme.count < 2) { - return; - } + if (scheme.count < 2) return; uint8_t repeat = kRepeat[Settings.light_width]; // number of scheme.count per ledcount uint16_t range = (uint16_t)ceil((float)Settings.light_pixels / (float)repeat); @@ -249,7 +261,7 @@ void Ws2812Bars(uint8_t schemenr) * Display solid bars of color for the current color scheme. * Width is the width of each bar in pixels/lights. */ -#if (USE_WS2812_CTYPE > 1) +#if (USE_WS2812_CTYPE > NEO_3LED) RgbwColor c; c.W = 0; #else @@ -260,9 +272,7 @@ void Ws2812Bars(uint8_t schemenr) ColorScheme scheme = kSchemes[schemenr]; uint16_t maxSize = Settings.light_pixels / scheme.count; - if (kWidth[Settings.light_width] > maxSize) { - maxSize = 0; - } + if (kWidth[Settings.light_width] > maxSize) maxSize = 0; uint16_t speed = ((Settings.light_speed * 2) -1) * (STATES / 10); uint8_t offset = speed > 0 ? strip_timer_counter / speed : 0; @@ -280,9 +290,7 @@ void Ws2812Bars(uint8_t schemenr) } uint8_t colorIndex = offset % scheme.count; for (i = 0; i < Settings.light_pixels; i++) { - if (maxSize) { - colorIndex = ((i + offset) % (scheme.count * kWidth[Settings.light_width])) / kWidth[Settings.light_width]; - } + if (maxSize) colorIndex = ((i + offset) % (scheme.count * kWidth[Settings.light_width])) / kWidth[Settings.light_width]; c.R = mcolor[colorIndex].red; c.G = mcolor[colorIndex].green; c.B = mcolor[colorIndex].blue; @@ -298,21 +306,29 @@ void Ws2812Bars(uint8_t schemenr) void Ws2812Init() { #ifdef USE_WS2812_DMA -#if (USE_WS2812_CTYPE == 1) +#if (USE_WS2812_CTYPE == NEO_GRB) strip = new NeoPixelBus(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use. -#elif (USE_WS2812_CTYPE == 2) +#elif (USE_WS2812_CTYPE == NEO_BRG) + strip = new NeoPixelBus(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use. +#elif (USE_WS2812_CTYPE == NEO_RBG) + strip = new NeoPixelBus(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use. +#elif (USE_WS2812_CTYPE == NEO_RGBW) strip = new NeoPixelBus(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use. -#elif (USE_WS2812_CTYPE == 3) +#elif (USE_WS2812_CTYPE == NEO_GRBW) strip = new NeoPixelBus(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use. #else // USE_WS2812_CTYPE strip = new NeoPixelBus(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use. #endif // USE_WS2812_CTYPE #else // USE_WS2812_DMA -#if (USE_WS2812_CTYPE == 1) +#if (USE_WS2812_CTYPE == NEO_GRB) strip = new NeoPixelBus(WS2812_MAX_LEDS, pin[GPIO_WS2812]); -#elif (USE_WS2812_CTYPE == 2) +#elif (USE_WS2812_CTYPE == NEO_BRG) + strip = new NeoPixelBus(WS2812_MAX_LEDS, pin[GPIO_WS2812]); +#elif (USE_WS2812_CTYPE == NEO_RBG) + strip = new NeoPixelBus(WS2812_MAX_LEDS, pin[GPIO_WS2812]); +#elif (USE_WS2812_CTYPE == NEO_RGBW) strip = new NeoPixelBus(WS2812_MAX_LEDS, pin[GPIO_WS2812]); -#elif (USE_WS2812_CTYPE == 3) +#elif (USE_WS2812_CTYPE == NEO_GRBW) strip = new NeoPixelBus(WS2812_MAX_LEDS, pin[GPIO_WS2812]); #else // USE_WS2812_CTYPE strip = new NeoPixelBus(WS2812_MAX_LEDS, pin[GPIO_WS2812]); @@ -331,7 +347,7 @@ void Ws2812Clear() void Ws2812SetColor(uint16_t led, uint8_t red, uint8_t green, uint8_t blue, uint8_t white) { -#if (USE_WS2812_CTYPE > 1) +#if (USE_WS2812_CTYPE > NEO_3LED) RgbwColor lcolor; lcolor.W = white; #else @@ -357,7 +373,7 @@ char* Ws2812GetColor(uint16_t led, char* scolor) { uint8_t sl_ledcolor[4]; - #if (USE_WS2812_CTYPE > 1) + #if (USE_WS2812_CTYPE > NEO_3LED) RgbwColor lcolor = strip->GetPixelColor(led -1); sl_ledcolor[3] = lcolor.W; #else diff --git a/sonoff/xsns_04_snfsc.ino b/sonoff/xsns_04_snfsc.ino index 51e3e1b3a..944dff985 100644 --- a/sonoff/xsns_04_snfsc.ino +++ b/sonoff/xsns_04_snfsc.ino @@ -125,6 +125,8 @@ void SonoffScShow(boolean json) #ifdef USE_DOMOTICZ DomoticzTempHumSensor(temperature, humidity); DomoticzSensor(DZ_ILLUMINANCE, sc_value[2]); + DomoticzSensor(DZ_COUNT, sc_value[3]); + DomoticzSensor(DZ_AIRQUALITY, 500 + ((100 - sc_value[4]) * 20)); #endif // USE_DOMOTICZ #ifdef USE_WEBSERVER } else { diff --git a/sonoff/xsns_05_ds18x20.ino b/sonoff/xsns_05_ds18x20.ino index fa525da36..23dc4482e 100644 --- a/sonoff/xsns_05_ds18x20.ino +++ b/sonoff/xsns_05_ds18x20.ino @@ -287,6 +287,8 @@ boolean Ds18x20Read(uint8_t sensor, float &t) { uint8_t data[9]; int8_t sign = 1; + uint16_t temp12 = 0; + int16_t temp14 = 0; float temp9 = 0.0; t = NAN; @@ -315,23 +317,26 @@ boolean Ds18x20Read(uint8_t sensor, float &t) case DS1822_CHIPID: case DS18B20_CHIPID: if (data[4] != 0x7F) { - data[4] = 0x7F; // Set resolution to 12-bit + data[4] = 0x7F; // Set resolution to 12-bit OneWireReset(); OneWireSelect(ds18x20_address[ds18x20_index[sensor]]); OneWireWrite(W1_WRITE_SCRATCHPAD); - OneWireWrite(data[2]); // Th Register - OneWireWrite(data[3]); // Tl Register - OneWireWrite(data[4]); // Configuration Register + OneWireWrite(data[2]); // Th Register + OneWireWrite(data[3]); // Tl Register + OneWireWrite(data[4]); // Configuration Register OneWireSelect(ds18x20_address[ds18x20_index[sensor]]); - OneWireWrite(W1_WRITE_EEPROM); // Save scratchpad to EEPROM + OneWireWrite(W1_WRITE_EEPROM); // Save scratchpad to EEPROM } - case MAX31850_CHIPID: - uint16_t temp12 = (data[1] << 8) + data[0]; + temp12 = (data[1] << 8) + data[0]; if (temp12 > 2047) { temp12 = (~temp12) +1; sign = -1; } - t = ConvertTemp(sign * temp12 * 0.0625); + t = ConvertTemp(sign * temp12 * 0.0625); // Divide by 16 + break; + case MAX31850_CHIPID: + temp14 = (data[1] << 8) + (data[0] & 0xFC); + t = ConvertTemp(temp14 * 0.0625); // Divide by 16 break; } } @@ -404,8 +409,13 @@ boolean Xsns05(byte function) case FUNC_INIT: Ds18x20Init(); break; +// case FUNC_EVERY_SECOND: +// if ((Settings.tele_period - tele_period) &3 == 3) { +// Ds18x20Convert(); // Start conversion every four seconds, takes up to one second +// } +// break; case FUNC_PREP_BEFORE_TELEPERIOD: - Ds18x20Convert(); // Start conversion, takes up to one second + Ds18x20Convert(); // Start conversion, takes up to one second break; case FUNC_JSON_APPEND: Ds18x20Show(1); @@ -413,7 +423,7 @@ boolean Xsns05(byte function) #ifdef USE_WEBSERVER case FUNC_WEB_APPEND: Ds18x20Show(0); - Ds18x20Convert(); // Start conversion, takes up to one second + Ds18x20Convert(); // Start conversion, takes up to one second break; #endif // USE_WEBSERVER } diff --git a/sonoff/xsns_05_ds18x20_legacy.ino b/sonoff/xsns_05_ds18x20_legacy.ino index cf083d766..085280ece 100644 --- a/sonoff/xsns_05_ds18x20_legacy.ino +++ b/sonoff/xsns_05_ds18x20_legacy.ino @@ -103,6 +103,8 @@ boolean Ds18x20Read(uint8_t sensor, float &t) { byte data[12]; int8_t sign = 1; + uint16_t temp12 = 0; + int16_t temp14 = 0; float temp9 = 0.0; uint8_t present = 0; @@ -117,7 +119,7 @@ boolean Ds18x20Read(uint8_t sensor, float &t) } if (OneWire::crc8(data, 8) == data[8]) { switch(ds18x20_address[ds18x20_index[sensor]][0]) { - case DS18S20_CHIPID: // DS18S20 + case DS18S20_CHIPID: if (data[1] > 0x80) { data[0] = (~data[0]) +1; sign = -1; // App-Note fix possible sign error @@ -129,14 +131,17 @@ boolean Ds18x20Read(uint8_t sensor, float &t) } t = ConvertTemp((temp9 - 0.25) + ((16.0 - data[6]) / 16.0)); break; - case DS18B20_CHIPID: // DS18B20 - case MAX31850_CHIPID: // MAX31850 - uint16_t temp12 = (data[1] << 8) + data[0]; + case DS18B20_CHIPID: + temp12 = (data[1] << 8) + data[0]; if (temp12 > 2047) { temp12 = (~temp12) +1; sign = -1; } - t = ConvertTemp(sign * temp12 * 0.0625); + t = ConvertTemp(sign * temp12 * 0.0625); // Divide by 16 + break; + case MAX31850_CHIPID: + temp14 = (data[1] << 8) + (data[0] & 0xFC); + t = ConvertTemp(temp14 * 0.0625); // Divide by 16 break; } } diff --git a/sonoff/xsns_14_sht3x.ino b/sonoff/xsns_14_sht3x.ino index 381e2d204..afedf31fc 100644 --- a/sonoff/xsns_14_sht3x.ino +++ b/sonoff/xsns_14_sht3x.ino @@ -20,7 +20,7 @@ #ifdef USE_I2C #ifdef USE_SHT3X /*********************************************************************************************\ - * SHT3X and SHTC3 - Temperature and Humidy + * SHT3X and SHTC3 - Temperature and Humidity * * I2C Address: 0x44, 0x45 or 0x70 (SHTC3) \*********************************************************************************************/ @@ -29,14 +29,18 @@ #define SHT3X_ADDR_VDD 0x45 // address pin high (VDD) #define SHTC3_ADDR 0x70 // address for shtc3 sensor +#define SHT3X_MAX_SENSORS 3 + const char kShtTypes[] PROGMEM = "SHT3X|SHT3X|SHTC3"; - -uint8_t sht3x_type = 0; -uint8_t sht3x_address; uint8_t sht3x_addresses[] = { SHT3X_ADDR_GND, SHT3X_ADDR_VDD, SHTC3_ADDR }; -char sht3x_types[6]; -bool Sht3xRead(float &t, float &h) +uint8_t sht3x_count = 0; +struct SHT3XSTRUCT { + uint8_t address; // I2C bus address + char types[6]; // Sensor type name and address - "SHT3X-0xXX" +} sht3x_sensors[SHT3X_MAX_SENSORS]; + +bool Sht3xRead(float &t, float &h, uint8_t sht3x_address) { unsigned int data[6]; @@ -49,7 +53,7 @@ bool Sht3xRead(float &t, float &h) Wire.write(0x17); // sleep Wire.endTransmission(); Wire.beginTransmission(sht3x_address); - Wire.write(0x78); // Dissable clock stretching ( I don't think that wire library support clock stretching ) + Wire.write(0x78); // Disable clock stretching ( I don't think that wire library support clock stretching ) Wire.write(0x66); // High resolution } else { Wire.write(0x2C); // Enable clock stretching @@ -72,46 +76,47 @@ bool Sht3xRead(float &t, float &h) void Sht3xDetect() { - if (sht3x_type) { - return; - } + if (sht3x_count) return; float t; float h; - sht3x_type = 1; - for (byte i = 0; i < sizeof(sht3x_addresses); i++) { - sht3x_address = sht3x_addresses[i]; - if (Sht3xRead(t, h)) { - GetTextIndexed(sht3x_types, sizeof(sht3x_types), i, kShtTypes); - snprintf_P(log_data, sizeof(log_data), S_LOG_I2C_FOUND_AT, sht3x_types, htu_address); + for (byte i = 0; i < SHT3X_MAX_SENSORS; i++) { + if (Sht3xRead(t, h, sht3x_addresses[i])) { + sht3x_sensors[sht3x_count].address = sht3x_addresses[i]; + GetTextIndexed(sht3x_sensors[sht3x_count].types, sizeof(sht3x_sensors[sht3x_count].types), i, kShtTypes); + snprintf_P(log_data, sizeof(log_data), S_LOG_I2C_FOUND_AT, sht3x_sensors[sht3x_count].types, sht3x_sensors[sht3x_count].address); AddLog(LOG_LEVEL_DEBUG); - return; + sht3x_count++; } } - sht3x_type = 0; } void Sht3xShow(boolean json) { - if (sht3x_type) { + if (sht3x_count) { float t; float h; - if (Sht3xRead(t, h)) { - char temperature[10]; - char humidity[10]; - dtostrfd(t, Settings.flag2.temperature_resolution, temperature); - dtostrfd(h, Settings.flag2.humidity_resolution, humidity); - - if (json) { - snprintf_P(mqtt_data, sizeof(mqtt_data), JSON_SNS_TEMPHUM, mqtt_data, sht3x_types, temperature, humidity); + char temperature[10]; + char humidity[10]; + char types[11]; + for (byte i = 0; i < sht3x_count; i++) { + if (Sht3xRead(t, h, sht3x_sensors[i].address)) { + dtostrfd(t, Settings.flag2.temperature_resolution, temperature); + dtostrfd(h, Settings.flag2.humidity_resolution, humidity); + snprintf_P(types, sizeof(types), PSTR("%s-0x%02X"), sht3x_sensors[i].types, sht3x_sensors[i].address); // "SHT3X-0xXX" + if (json) { + snprintf_P(mqtt_data, sizeof(mqtt_data), JSON_SNS_TEMPHUM, mqtt_data, types, temperature, humidity); #ifdef USE_DOMOTICZ - DomoticzTempHumSensor(temperature, humidity); + if (0 == i) { // We want the same first sensor to report to Domoticz in case a read is missed + DomoticzTempHumSensor(temperature, humidity); + } #endif // USE_DOMOTICZ #ifdef USE_WEBSERVER - } else { - snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, sht3x_types, temperature, TempUnit()); - snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, sht3x_types, humidity); + } else { + snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, types, temperature, TempUnit()); + snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, types, humidity); #endif // USE_WEBSERVER + } } } } diff --git a/sonoff/xsns_18_pms5003.ino b/sonoff/xsns_18_pms5003.ino index 217b63674..18b26263e 100644 --- a/sonoff/xsns_18_pms5003.ino +++ b/sonoff/xsns_18_pms5003.ino @@ -130,6 +130,11 @@ void PmsShow(boolean json) pms_data.pm10_standard, pms_data.pm25_standard, pms_data.pm100_standard, pms_data.pm10_env, pms_data.pm25_env, pms_data.pm100_env, pms_data.particles_03um, pms_data.particles_05um, pms_data.particles_10um, pms_data.particles_25um, pms_data.particles_50um, pms_data.particles_100um); +#ifdef USE_DOMOTICZ + DomoticzSensor(DZ_COUNT, pms_data.pm10_env); // PM1 + DomoticzSensor(DZ_VOLTAGE, pms_data.pm25_env); // PM2.5 + DomoticzSensor(DZ_CURRENT, pms_data.pm100_env); // PM10 +#endif // USE_DOMOTICZ #ifdef USE_WEBSERVER } else { snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_PMS5003_SNS, mqtt_data, diff --git a/sonoff/xsns_20_novasds.ino b/sonoff/xsns_20_novasds.ino index ed877fd2f..8f6b591da 100644 --- a/sonoff/xsns_20_novasds.ino +++ b/sonoff/xsns_20_novasds.ino @@ -92,18 +92,28 @@ void NovaSdsInit() #ifdef USE_WEBSERVER const char HTTP_SDS0X1_SNS[] PROGMEM = "%s" - "{s}SDS0X1 " D_ENVIRONMENTAL_CONCENTRATION " 2.5 " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}" - "{s}SDS0X1 " D_ENVIRONMENTAL_CONCENTRATION " 10 " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"; // {s} = , {m} = , {e} = + "{s}SDS0X1 " D_ENVIRONMENTAL_CONCENTRATION " 2.5 " D_UNIT_MICROMETER "{m}%s " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}" + "{s}SDS0X1 " D_ENVIRONMENTAL_CONCENTRATION " 10 " D_UNIT_MICROMETER "{m}%s " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"; // {s} = , {m} = , {e} = #endif // USE_WEBSERVER void NovaSdsShow(boolean json) { if (novasds_valid) { + char pm10[10]; + char pm2_5[10]; + float pm10f = (float)(novasds_data.pm100) / 10.0f; + float pm2_5f = (float)(novasds_data.pm25) / 10.0f; + dtostrfd(pm10f, 1, pm10); + dtostrfd(pm2_5f, 1, pm2_5); if (json) { - snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"SDS0X1\":{\"PM2.5\":%d,\"PM10\":%d}"), mqtt_data, novasds_data.pm25, novasds_data.pm100); + snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"SDS0X1\":{\"PM2.5\":%s,\"PM10\":%s}"), mqtt_data, pm2_5, pm10); +#ifdef USE_DOMOTICZ + DomoticzSensor(DZ_VOLTAGE, pm2_5); // PM2.5 + DomoticzSensor(DZ_CURRENT, pm10); // PM10 +#endif // USE_DOMOTICZ #ifdef USE_WEBSERVER } else { - snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SDS0X1_SNS, mqtt_data, novasds_data.pm25/10, novasds_data.pm100/10); + snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SDS0X1_SNS, mqtt_data, pm2_5, pm10); #endif // USE_WEBSERVER } }