Non secure OTA update

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

I have implemented the OTA update on my board.

In fact, the update by HCI or OTA works fine (by Android or Windows example provided by the SDK). The functionalities of the firmware are correctly updated.

The issue is that the version returned by the firmware is false.

I explain:

* during the create function I trace the version like that :

ble_trace2("Firware version: %d.%d. Create done.", MY_APP_VERSION_MAJOR,  MY_APP_VERSION_MINOR);

* with the Android update application I check the characteristic Application Info.

Both cases display old major and minor version.

What do you think I have forgotten or wrongly done ?

0 Likes
9 Replies
BoonT_56
Employee
Employee
500 likes received 250 likes received 100 likes received

Do you still get the old version numbers after a power reset?

yrt

0 Likes
Anonymous
Not applicable

Yes, a reset or power reset does not change anything.

But it think it is not the old value, but a constant.

Regarless of the values defined in the source code, the version I get by the "application info" is major = 1 an minor = 0.

But the firmware ID is correct.

0 Likes

If you were to search "ws_upgrade_ota_handle_data" in the ws_sec_upgrade_ota.c, you will notice the following:

ble_trace3("ws_upgrade_info %04x %02x %02x\n",  ws_upgrade_info.ID, ws_upgrade_info.Version_Major, ws_upgrade_info.Version_Minor);

        if (ws_upgrade_info.ID != WsUpgradeAppInfo.ID)

        {

            return WS_UPGRADE_WRITE_STATUS_BAD_ID;

        }

        if (ws_upgrade_info.Version_Major < WsUpgradeAppInfo.Version_Major)

        {

            return WS_UPGRADE_WRITE_STATUS_BAD_MAJOR;

        }

You may try to incorporate the above into your non-secure version and give it a try.

0 Likes
Anonymous
Not applicable

The non secure OTA example state machine does not have the WS_UPGRADE_STATE_VERSION_TRANSFER state...

0 Likes
Anonymous
Not applicable

Did you update the values for MY_APP_VERSION_MAJOR and MY_APP_VERSION_MINOR in the header?

0 Likes
Anonymous
Not applicable

I updated the values of MY_APP_VERSION_MAJOR and MY_APP_VERSION_MINOR in the myApp_db.h

0 Likes

Did you also update the device ID in the gatt database as well?

0 Likes
Anonymous
Not applicable

I did not change the application ID, and the value read by the smartphone is correct.

What do you mean by device ID?

0 Likes
Anonymous
Not applicable

You many need a clean build to make sure the new version is included in the new firmware.

0 Likes