5 years, 3 months ago.

Firmware update campaign error

I follow the guide available on https://cloud.mbed.com/guides/pelion-firmware-update/1 , but the update fails. /media/uploads/bigdata/schermata_2019-01-08_alle_12.10.15_pm.png

The board return this error:

[SMCC] Error occurred : MbedCloudClient::UpdateWarningCertificateNotFound [SMCC] Error code : 1025 [SMCC] Error details : Update has failed, check MbedCloudClient::Error

but I'm sure that the certificate exist and is present.

Can someone tell me what I'm doing wrong? My device is a STM32 DISCO L475E-IOT01A2 (DISCO L475VG-IOT01A), and the compiler is the online compiler (the mbed cli compiler compile, but the device doesn't connect itself).

1 Answer

5 years, 3 months ago.

Hi Simone I've exactly the same issue / I did it with the FRDM-64F board and online compiler that's my console output: [SMCC] Error occurred : MbedCloudClient::UpdateWarningCertificateNotFound [SMCC] Error code : 1025 [SMCC] Error details : Update has failed, check MbedCloudClient::Error

looks for me as a general problem, because the registration process works fine but not the firmware update If you have any news let me know thx.

I have solved partially this problem in the following way:

1) import the pelion project into the onlune compiler; 2) import the mbed_cloud_dev_credentials.c from pelion (as explained from the online guide); 3) export the project in a toolchain you want; 4) extract the archeive you downloaded; 5) import the mbed-os from the CLI typing "mbed import mbed-os"; 6) copy the "tools" forder from mbed-os folder imported by the CLI to the mbed-os folder in your project; 7) in the CLI, go to the project folder and type "manifest-tool init -S https://api.us-east-1.mbedcloud.com -a <your api key generated by pelion> -d <company domain name> -m <model of your board> force" (To make an api key go to pelion, Access management > API keys) 8) copy all file content "update_default_resources.c" generated by point 7 to the file with the same name on the online compiler project; 9) compile from the online compiler and flash the .bin file into your board; 10) make some modify on the offline project, and compile this one with the CLI; 11) go in pelion and in Firmware update > Images and then upload the images ended with update.bin (a file compiler which end with _update.bin); 12) copy the url, and on the .manifest_tool.json (offline project) add the line "payloadUri": "<paste here>"; now this file looks like this one: { "classId": "<class-id>", "default-certificates": [ { "file": ".update-certificates/default.der" } ], "deviceURNs": [], "modelName": "<model name>", "private-key": ".update-certificates/default.key.pem", "vendorDomain": "<vendor domain>", "vendorId": "<vendor id>", "payloadUri": "<how you paste>" } 13) go to the CLI on the project folder, and type "manifest-tool create -i .manifest_tool.json -k .update-certificates/default.key.pem -p <*_update.bin file> -o manifest.bin". It will create the manifest. 14) on the pelion Firmware update > manifests, upload the manifest generated by point 13. 15) on pelion Firmware update > update champaign create a new campaign as explain on the update guide.

In my case, this procedure works only once. In my opinion there is something of different in the online compiler and in the mbed CLI compiler.

I hope this procedure will e useful to you.

posted by Simone Rizzo 24 Jan 2019