[1MB OTA] Add small build to allow for 1MB OTA

Using 128k SPIFFS and 2-step OTA image, it is possible to perform an OTA update on 1 MB nodes.
This 2-step image does not have the ArduinoOTA service running, but does allow for manual upload using web interface.
ArduinoOTA needs 8 kB more, which will not work at the moment.
This commit is contained in:
TD-er
2018-11-02 09:57:00 +01:00
parent 9eb2ebe210
commit cec830fe83
4 changed files with 69 additions and 5 deletions
Binary file not shown.
+28
View File
@@ -135,6 +135,10 @@ monitor_speed = 115200
platform = ${common.platform}
build_flags =
[normal_ota]
platform = ${common.platform}
build_flags = -DPLUGIN_BUILD_MINIMAL_OTA
[testing]
platform = ${core_2_4_2.platform}
build_flags = -DPLUGIN_BUILD_TESTING
@@ -154,6 +158,13 @@ board_upload.maximum_size = 786432
build_unflags = ${common.build_unflags}
build_flags = ${common.build_flags} -Wl,-Tesp8266.flash.1m128.ld
[esp8266_1M_OTA]
board_build.flash_mode = dout
board_build.f_cpu = ${common.board_build.f_cpu}
board_upload.maximum_size = 616448
build_unflags = ${common.build_unflags}
build_flags = ${common.build_flags} -Wl,-Tesp8266.flash.1m128.ld
[esp8285_1M]
board = esp8285
board_upload.maximum_size = ${esp8266_1M.board_upload.maximum_size}
@@ -285,6 +296,23 @@ board_build.flash_mode = ${esp8266_1M.board_build.flash_mode}
build_unflags = ${esp8266_1M.build_unflags}
build_flags = ${esp8266_1M.build_flags} ${normal.build_flags}
[env:minimal_ESP8266_1024_OTA]
platform = ${common.platform}
lib_deps = ${common.lib_deps}
lib_ignore = ${common.lib_ignore}
lib_ldf_mode = ${common.lib_ldf_mode}
lib_archive = ${common.lib_archive}
framework = ${common.framework}
upload_speed = ${common.upload_speed}
monitor_speed = ${common.monitor_speed}
board = ${common.board}
board_upload.maximum_size = ${esp8266_1M_OTA.board_upload.maximum_size}
board_build.f_cpu = ${esp8266_1M_OTA.board_build.f_cpu}
board_build.flash_mode = ${esp8266_1M_OTA.board_build.flash_mode}
build_unflags = ${esp8266_1M_OTA.build_unflags}
build_flags = ${esp8266_1M_OTA.build_flags} ${normal_ota.build_flags}
[env:normal_core_241_ESP8266_1024]
platform = ${core_2_4_1.platform}
lib_deps = ${common.lib_deps}
+1 -1
View File
@@ -519,7 +519,7 @@ bool showSettingsFileLayout = false;
#ifdef FEATURE_MDNS
#include <ESP8266mDNS.h>
#endif
#define SMALLEST_OTA_IMAGE 272*1024 // smallest known 2-step OTA image
#define SMALLEST_OTA_IMAGE 276848 // smallest known 2-step OTA image
#define MAX_SKETCH_SIZE 1044464
#ifdef FEATURE_ARDUINO_OTA
#include <ArduinoOTA.h>
+40 -4
View File
@@ -44,7 +44,6 @@ To create/register a plugin, you have to :
#define PLUGIN_BUILD_IR
#endif
#ifdef PLUGIN_BUILD_DEV
#define PLUGIN_SET_EXPERIMENTAL
#define CONTROLLER_SET_EXPERIMENTAL
@@ -71,6 +70,46 @@ To create/register a plugin, you have to :
#define NOTIFIER_SET_STABLE
#endif
#ifdef PLUGIN_BUILD_MINIMAL_OTA
#define PLUGIN_DESCR "Minimal 1M OTA"
#define CONTROLLER_SET_NONE
#define USES_C001 // Domoticz HTTP
#define USES_C002 // Domoticz MQTT
#define USES_C005 // OpenHAB MQTT
// #define USES_C006 // PiDome MQTT
#define USES_C008 // Generic HTTP
#define USES_C009 // FHEM HTTP
// #define USES_C010 // Generic UDP
#define USES_C013 // ESPEasy P2P network
#define NOTIFIER_SET_STABLE
#define PLUGIN_SET_NONE
#ifndef USES_P001
#define USES_P001 // switch
#endif
#ifndef USES_P026
#define USES_P026 // SysInfo
#endif
#ifndef USES_P033
#define USES_P033 // Dummy
#endif
#ifndef USES_P037
// #define USES_P037 // MQTTImport
#endif
#ifndef USES_P004
// #define USES_P004 // Dallas
#endif
#ifndef USES_P005
// #define USES_P005 // DHT
#endif
#endif
/******************************************************************************\
* IR plugins *****************************************************************
@@ -333,9 +372,6 @@ To create/register a plugin, you have to :
#ifndef USES_P028
#define USES_P028 // BME280
#endif
#ifndef USES_P030
#define USES_P030 // BMP280
#endif
#endif
#ifdef PLUGIN_SET_ONLY_LEDSTRIP