← index #7982Issue #8659
Related · high · value 0.489
QUERY · ISSUE

esp32: No OTA images generated anymore since switch to cmake

openby mirkoopened 2021-11-10updated 2021-12-01
port-esp32

For versions using an ESP IDF SDK version using gmake I used to find binary files for (almost) each partition inside the build dir (ports/esp32/build-$$BOARD$$/):

  • bootloader.bin
  • partitions.bin
  • application.bin
  • firmware.bin

It seems, though, that at least the OTA image (formerly application.bin) is missing since switching to cmake.

Given that at least the upstream supported board SIL_WESP32 also uses OTA (CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16MiB-ota.csv in sdkconfig), I would have expected to also find an OTA binary image (or an equivalent) - however I can't find anything alike.

The only thing I can see is the file ports/esp32/build-$$BOARD$$/ota_data_initial.bin, which however is basically empty (well, 8KiB of 0xFF).

What's the supposedly correct way generating/obtaining OTA images with micropython v1.17 onwards?

CANDIDATE · ISSUE

OTA in esp32-c3

closedby robbietree8opened 2022-05-12updated 2022-05-13

hello,

It seems the port to esp32-c3 does not support OTA, but I found there is GENERIC_OTA port, the difference between them is mpconfigboard.cmake file, so I tried to add line boards/GENERIC_OTA/sdkconfig.board to mpconfigboard.cmake file in GENERIC_C3, and builds the firmware locally.

Unfortunately, when I implemented OTA via bluetooth, the partition of ota_1 is updated successfully, but it does not boot ok, following error occurs:

E (68) esp_image: Segment 0 0x3fcd6100-0x3fcd6fa0 invalid: overlaps bootloader stack
E (69) boot: OTA app partition slot 1 is not bootable

Demo project can be found in micropython-ota-example

Appreciate if anyone can take a look.

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied