Skip to content

Unable to perform an ota update with custom build micropython firmware #9

@synodriver

Description

@synodriver

Thank you for making this great library! I meet some problem when performing an ota update,

using
ota.update.from_file("http://192.168.0.88:8000/ESP32_GENERIC-OTA-git-16MB-resize=vfs.bin", reboot=True)
I got

Writing new micropython image to OTA partition 'ota_1'...
Device capacity: 384 x 4096 byte blocks.
Opening firmware file http://192.168.0.88:8000/ESP32_GENERIC-OTA-git-16MB-resize=vfs.bin...
BLOCK 376 + 1376 bytes
Verifying SHA of the written data...Passed.
SHA256=fea0dab2c5f1e5c799e243e6d16a7749bb14675673442e587a724b80393be838
OTA Partition 'ota_1' updated successfully.
Micropython will boot from 'ota_1' partition on next boot.
Remember to call ota.rollback.cancel() after successful reboot.
Rebooting in  1 seconds (ctrl-C to cancel)
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:4112
load:0x40078000,len:15084
load:0x40080400,len:4
load:0x40080404,len:3332
entry 0x400805ac
E (91) esp_image: Segment 0 0x3fff0030-0x3fff1040 invalid: overlaps bootloader data
E (91) boot: OTA app partition slot 1 is not bootable

Note that Segment 0 0x3fff0030-0x3fff1040 invalid: overlaps bootloader data, after reboot, the firmware did not update.
The firmware I'm using is a custom build micropython, the build script is make BOARD=ESP32_GENERIC BOARD_VARIANT=OTA, the board I'm
using is esp32-wroom-32e with 16Mb flash, so I'm using your another tool mp-image-tool-esp32 firmware.bin -f 16M --resize vfs=0 to create a suitable firmware, and the problem occured.

Here is the board info

ota.status.status()
Micropython v1.26.0-preview.1587.df421577a1 has booted from partition 'ota_0'.
Will boot from partition 'ota_1' on next reboot.
The next OTA partition for update is 'ota_1'.
The / filesystem is mounted from partition 'vfs'.
Partition table:
# Name       Type     SubType      Offset       Size (bytes)
  nvs        data     nvs          0x9000     0x4000     16,384
  otadata    data     ota          0xd000     0x2000      8,192
  phy_init   data     phy          0xf000     0x1000      4,096
  ota_0      app      ota_0       0x10000   0x180000  1,572,864
  ota_1      app      ota_1      0x190000   0x180000  1,572,864
  vfs        data     fat        0x310000   0xcf0000 13,565,952
OTA record: state=PENDING, seq=2, crc=1442199412, valid=False
OTA record is PENDING.
OTA record: state=ABORTED, seq=2, crc=1442199412, valid=False
OTA record is ABORTED.
Next boot is 'ota_0'.

Extra info

The firmware I build is able to flash using esptool, so I don't think it's a firmware problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions