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.
* 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 ?
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.
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)
if (ws_upgrade_info.Version_Major < WsUpgradeAppInfo.Version_Major)
You may try to incorporate the above into your non-secure version and give it a try.