- Newest
- Most votes
- Most comments
Hi Andrew. Please check the value of OTA_MAX_BLOCK_BITMAP_SIZE
in your project. I suspect it's 128. That means 128 bytes, or 1024 bits, to track the blocks. If so, you will need to increase this value to have enough bits for your number of blocks.
- https://github.com/FreeRTOS/FreeRTOS/blob/391c79958f635ee5476dcf2774dab59e2b151eff/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/DemoTasks/OtaOverMqttDemoExample.c#L494
- https://github.com/aws/aws-iot-device-sdk-embedded-C/blob/c70269486b3fdcb6d6e85e999059d0bd35e732cd/demos/ota/ota_demo_core_mqtt/ota_demo_core_mqtt.c#L330
You should review all of these settings and tailor to your needs: https://github.com/aws/ota-for-aws-iot-embedded-sdk/blob/fb4aece8c7ee4211b17ee48196222c04795b7a51/source/include/ota_private.h#L62-L70
More information here (although it doesn't cover the bitmap setting): https://www.freertos.org/Documentation/api-ref/ota-for-aws-iot-embedded-sdk/docs/doxygen/output/html/ota_config.html
As a side point, does your device include a HTTP client? With such a large file, your MQTT messaging costs will likely rival your job action costs. You may find HTTP file transfer to be more cost effective.
Relevant content
- asked 7 months ago
- asked a year ago
- asked 3 years ago
- AWS OFFICIALUpdated 9 months ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 9 months ago
Ahhh OTA_MAX_BLOCK_BITMAP_SIZE was indeed the problem. There are so many config files tucked away in the library, which I had been avoiding because they are inside a git submodule. I see now there are many configuration settings within the library to adjust, thank you so much for your great answer! Re:HTTP no we do not have an HTTP client currently, and since we are using an external secure element for TLS, which is working well for MQTT, we have been leaning on MQTT to fulfill this download, as it is all implemented and working well. The AWS costs arn't a big concern.