Skip to content

[Important] V3.1 OTA issue (GIT8266O-191) #489

Open
@FayeY

Description

@FayeY

ESP8266-RTOS-SDK FOTA Introduction.pdf

Note:

Since the ESP8266 RTOS SDK V3.0, we refactored the SDK to be the ESP-IDF style. And provide an FOTA example in V3.1 to support upgrading from an old SDK to the new SDK.

  • "old to new" FOTA: upgrade from an old (NonOS, or V2.x and earlier versions RTOS) SDK to a new (v3.x and later versions) RTOS SDK.
  • "new to new" FOTA: upgrade from a new (V3.x) RTOS SDK to a new (V3.x and later versions) RTOS SDK.
  • After "old to new" FOTA, the original parameters saved by the old SDK will be gone, so users need to set the configurations again with the new SDK.

Current Situation

In the V3.1 FOTA example, "old to new" FOTA and "new to new" FOTA are alternative, not compatible.

  • The firmware for the "old to new" FOTA is a combined bin of all new version binaries, including the new boot.bin, new app.bin, new partition.bin and so on. So the FOTA can make it completely upgrade to a new (ESP-IDF) style firmware.
  • The firmware for the "new to new" FOTA is just a new app.bin, since the other parts are already the new style ones.

So in this case, "old to new" FOTA and "new to new" FOTA are not compatible.

Possible Issue

  • There will be a problem if both old and new version products are using the same url for FOTA. If the old version products downloading a "new to new" firmware, or the new version products downloading an "old to new" firmware, then the system will fail to boot.

Recommended Solution

  • Use different OTA urls for the "old to new" FOTA and "new to new" FOTA respectively. To ensure the old version products upgrade to the "old to new" firmware, and the new version products upgrade to the "new to new" firmware.

Compatible Solution

  • We are working on the OTA example that can be compatible with both "old to new" and "new to new" FOTA now, it will be released soon.

So sorry for the inconvenience.

Thanks.

说明

从 ESP8266 RTOS SDK v3.0 起,我们将 RTOS SDK 重构为 ESP-IDF 架构,并在 v3.1 提供了 OTA 示例支持从旧版本升级到新版本:

  • 旧版本(NonOS 或 v2.x 及之前的 RTOS)升级到新版本(V3.x RTOS),后文将称为“旧升新”;
  • 新架构(V3.x RTOS)升级到新版本(V3.x及之后的 RTOS),后文将称为“新升新”;
  • “旧升新”之后,旧版 SDK 保存的系统参数将丢失,因此,需要在新版 SDK 对原有配置重新设置一遍。

当前现状

V3.1 的 OTA 方案不兼容 “旧升新“ 和 “新升新“,两者只能选其一。这是因为:

  • “旧升新” 时,OTA 下载的是合并后的完整新版固件(包含新版 boot.bin, 新版 app.bin, 新版 partition.bin 等),以保障更新后能完整运行新版固件;
  • “新升新” 时,OTA 下载的仅是 app.bin,只更新应用部分,其他部分使用原新版的即可;

可能导致的问题

  • 如果客户的旧版本产品和新版本产品,共用同一 OTA 升级下载链接;则会出现 “旧升新“ 和 “新升新“ 固件的混淆,难以对应下载。旧版本产品如果下载了 “新升新“ 固件,或者新版本产品下载了 “旧升新“ 固件, 将无法正常运行。

推荐解决方案

  • 在开发时,将“旧升新“和“新升新“的 OTA 下载链接进行区分,不要共用;旧产品下载 “旧升新” 固件,新产品下载 “新升新” 固件。

兼容解决办法

  • 目前我们正在开发兼容“旧升新“和“新升新“的 OTA 方案,将会在近期推出,敬请关注。

给您带来不便,深感抱歉。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions