OTA update needs PSRAM?
Posted: Tue Nov 05, 2024 7:35 pm
I am having unreliable OTA updates on an otherwise reliable link, immediately after system reset.
Specifically I get
which indicates that the largest free block (lfb) is 0x4000 (16,384 bytes), but the system needs 0x416D (16749 bytes), which is slightly larger than this largest free block.
My custom board has no PSRAM, could this be a problem? Or is there some way to reduce the OTA allocation?
Here is a bigger dump for context
Specifically I get
Code: Select all
I (34524) heap_metrics: free:0xca64 lfb:0x4000 min_free_ever:0x2718
I (34525) heap: alloc_fail size:0x416d func:heap_caps_calloc
E (34525) Dynamic Impl: alloc(16749 bytes) failed
My custom board has no PSRAM, could this be a problem? Or is there some way to reduce the OTA allocation?
Here is a bigger dump for context
Code: Select all
I (13772) esp_rmaker_ota: Reporting in-progress: Downloading Firmware Image
I (13773) esp_rmaker_ota_using_topics: {"ota_job_id":"kqKXujTfoibymxGFXeAMDk","status":"in-progress","additional_info":"Downloading Firmware Image"}
I (13777) app_main: OTA is in progress.
I (13946) app_main: MQTT Published. Msg id: 20606.
I (14795) esp_rmaker_ota: Image bytes read: 51200
I (16116) esp_rmaker_ota: Image bytes read: 102400
I (17434) esp_rmaker_ota: Image bytes read: 153600
I (18826) esp_rmaker_ota: Image bytes read: 204800
I (20194) esp_rmaker_ota: Image bytes read: 256000
I (21534) esp_rmaker_ota: Image bytes read: 307200
I (22919) esp_rmaker_ota: Image bytes read: 358400
I (24340) esp_rmaker_ota: Image bytes read: 409600
I (25654) esp_rmaker_ota: Image bytes read: 460800
I (27000) esp_rmaker_ota: Image bytes read: 512000
I (28396) esp_rmaker_ota: Image bytes read: 563200
I (29798) esp_rmaker_ota: Image bytes read: 614400
I (31166) esp_rmaker_ota: Image bytes read: 665600
I (32494) esp_rmaker_ota: Image bytes read: 716800
I (33912) esp_rmaker_ota: Image bytes read: 768000
I (34524) heap_metrics: free:0xca64 lfb:0x4000 min_free_ever:0x2718
I (34525) heap: alloc_fail size:0x416d func:heap_caps_calloc
E (34525) Dynamic Impl: alloc(16749 bytes) failed
E (34525) esp-tls-mbedtls: read error :-0x7F00:
E (34526) transport_base: esp_tls_conn_read error, errno=Success
E (34526) HTTP_CLIENT: transport_read: error - -1 | ESP_FAIL
E (34529) esp-tls-mbedtls: read error :-0x7200:
E (34530) transport_base: esp_tls_conn_read error, errno=Success
E (34531) HTTP_CLIENT: transport_read: error - -1 | ESP_FAIL
E (34531) esp_https_ota: data read -1, errno 0
E (34531) esp_rmaker_ota: ESP_HTTPS_OTA upgrade failed ESP_FAIL
I (34532) esp_rmaker_ota: Reporting failed: OTA failed: Error ESP_FAIL