The OTA upgrade process uses an A/B upgrade method. After rebooting into the new firmware, we need to mark the new partition as valid by calling esp32.Partition.mark_app_valid_cancel_rollback(). Unfortunately, this was missed after a couple of refactorings of the OTA code.
What?
Call OTAManager.successful_boot() at the bottom of the main function.
Refactor how the OTAManager class is instantiated and injected into the Golioth class.
Why?
The OTA upgrade process uses an A/B upgrade method. After rebooting into the new firmware, we need to mark the new partition as valid by calling
esp32.Partition.mark_app_valid_cancel_rollback()
. Unfortunately, this was missed after a couple of refactorings of the OTA code.What?
OTAManager.successful_boot()
at the bottom of the main function.OTAManager
class is instantiated and injected into theGolioth
class.Heartbeat
when running in the simulator