FreeRTOS AWS Device Tester- OTACore Failure

Hello,

I’m having FreeRTOS code:-V201912.00, which is being built over STM32WB55 MCU, we modifed our Apllication code as per our need.
Now I’m trying to test authentication of code using AWS IoT Device Tester Version: 1.6.2

1.We have passed the AWS FreeRTOS IDT Test for BLE.

========== Test Summary ==========
Execution Time: 2m0s
Tests Completed: 51
Tests Passed: 51
Tests Failed: 0
Tests Skipped: 0

Test Groups:
Optional Test Groups:
FullBLE: PASSED

2.Now trying to pass OTACore
3.Following are the steps done OTACore Test.
-Check the Prerequisites for OTA updates using MQTT
-Create an Amazon S3 bucket to store your update
-Create an OTA Update service role
-Create an OTA user policy
-Create a code-signing certificate
-Grant access to code signing for AWS IoT

-vendors\st\boards\p_nucleo_wb55\aws_demos\config_files\aws_demo_config.h):
#define CONFIG_OTA_UPDATE_DEMO_ENABLED
And all the other CONFIG_*_ENABLED flags are commented.

-To do an OTA update, a new version of the application must be compiled in a .sfb file
and uploaded on AWS S3 file server.
-Flash the current version of the application to the P-NUCLEO-WB55 Nucleo board. Then
increase the Amazon FreeRTOS application version in
demos/include/aws_application_version.h and build a new binary with STM32CubeIDE.
-The installable .sfb firmware is under build\ directory (build\aws_demos.sfb file). It must be
copied to the AWS S3 bucket created in 2.3.2.

  • The aws_demos project must be running on P-NUCLEO-WB55.Nucleo board and be
    connected to the mobile application (see 2.6.3).
  • On AWS web console, create a FreeRTOS OTA update job (IoT Core / Manage / Jobs /
    Create): select:
  • the ‘thing’ to update. Ex: STWB55
  • the MQTT protocol for image transfer, (HTTP is not supported)
  • “Sign a new firmware for me”,
  • your code signing profile,
  • your .sfb firmware file, referenced from the S3 bucket where you have uploaded it,
  • the destination pathname can be any non-empty file name (ex: firmware.bin)
  • the OtaUpdateServiceRole,
    and finally choose a unique job ID.

4.After doing all these I’m setting configuration of AWS IoT Device Tester Configs provided in attachmentAWS_IDT_OTA_Configs.zip (2.5 KB)

–Running Test
./devicetester_linux_x86-64 run-suite -g OTACore --userdata userdata.json

========== Test Summary ==========
Execution Time: 6s
Tests Completed: 2
Tests Passed: 0
Tests Failed: 2
Tests Skipped: 0

Test Groups:
Optional Test Groups:
OTACore: FAILED

Failed Tests:
Group Name: OTACore
Test Name: Full_OTA_AGENT
Reason: failed to setup environment with error: encoding/hex: invalid byte: U+0059 ‘Y’ Please refer to /home/kaushendra/IDT_TEST/STM_Release_Nov/devicetester_afreertos_linux_1.6.2/devicetester_afreertos_linux/results/1d011ba8-8d4e-11eb-a9e5-c03eba6cbb6a/logs/OTACore__Full_OTA_AGENT.log for more information.
Test Name: Full_OTA_PAL
Reason: failed to setup environment with error: encoding/hex: invalid byte: U+0059 ‘Y’ Please refer to /home/kaushendra/IDT_TEST/STM_Release_Nov/devicetester_afreertos_linux_1.6.2/devicetester_afreertos_linux/results/1d011ba8-8d4e-11eb-a9e5-c03eba6cbb6a/logs/OTACore__Full_OTA_PAL.log for more information.

Please find the attached logs zipped Ota_failure_logs.zip (5.8 KB)

kindly help me understand , If i’m missing something as part of OTA setup.
Also kindly let me know the importance usage of Rasberry Pi in OTA Test case.
waiting for quick feedback.

Regards,
Arjun Salariya

Hi Arjun,

The error that you have reported:

Reason: failed to setup environment with error: encoding/hex: invalid byte: U+0059 ‘Y’

is due to an incorrect filetype in your device.json file while specifying the publicKeyAsciiHexFilePath. IDT is expecting a .txt file while your current configuration has specified a .bin.

During the demo provisioning process, once you have generated the public key, copy it to a .txt file in the format as shown. IDT will automate the rest of the steps on your behalf.

Thanks and please keep us updated if this doesn’t resolve the error!

Hi Arjun,

To verify OTA over BLE you need a companion smartphone application setup using one of our Android or IOS SDKs. As of today, this verification is not supported via IDT. The document below explains how to setup and perform OTA demo over BLE:
https://docs.aws.amazon.com/freertos/latest/portingguide/ota-updates-ble.html

Also kindly let me know the importance usage of Rasberry Pi in OTA Test case.

Raspberry PI is only used to verify the low level BLE tests and the porting layer of BLE works. Its not used today for performing OTA updates over BLE.