- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 ?
- Labels:
-
Over The Air Upgrades - OTA
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The non secure OTA example state machine does not have the WS_UPGRADE_STATE_VERSION_TRANSFER state...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Did you update the values for MY_APP_VERSION_MAJOR and MY_APP_VERSION_MINOR in the header?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I updated the values of MY_APP_VERSION_MAJOR and MY_APP_VERSION_MINOR in the myApp_db.h
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Did you also update the device ID in the gatt database as well?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I did not change the application ID, and the value read by the smartphone is correct.
What do you mean by device ID?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You many need a clean build to make sure the new version is included in the new firmware.