cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB55 BLE_Ota bootloader issue

F F
Associate II

Hi,

I'm running into an issue with the provided OTA bootloader getting the device "bricked" after a firmware update.

Details about my setup

MCU: STM32WB55CG

WB package: STM32Cube_FW_WBV1.14.1

BLE Stack: stm32wb5x_BLE_Stack_full_fw

Bootloader example: STM32Cube_FW_WB_V1.14.1\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_Ota

Documentation: AN5247

What have I tried?

I used the above mentioned ST bootloader example as a base for my project with minor modifications. Next to that modified my projects firmware to make some OTA test applications (by adding the reboot charasteristics etc). When I update the firmware via the ST BLE Sensor app, everything works perfect, but when I use another resource (Linux based IoT device) to update the firmware over OTA I'm able to brick the firmware:

  • Transferring the raw data packages (200 bytes each) with an interval of 150ms everything works fine and I'm able to successfully transfer all data and boot to the dedicated firmware version.
  • Trying to speed things up the interval was set from 150ms to 100ms and 75ms. In both cases the raw data transfer was completed, the upload complete write was given, followed by an indication message from the device. After that the device get's "bricked", nor showing the bootloader application, nor showing the firmware application.
  • Recovery cannot be done by a power down, nor a new bootloader flash. Erasing the full memory and reflash the ble stack and bootloader.
  • I modified the characteristic to WRITE instead of WRITE_WITHOUT_RESP to check if any packages were missed, but this is not the case. All raw datapackages are correctly received on the device side.

The bootloader cannot be build as a debug target because of size restrictions (should fit in region between 0x8000000-0x8006000) which makes it very hard to debug this issue.

Questions:

  • Are there any timing restrictions on transferring the raw data packages?
  • Might there be an issue in the validation process of the downloaded firmware application? Or any other suggestions what might be the issue?

Thanks in advance,

 Frank

1 REPLY 1
Remy ISSALYS
ST Employee

Hello,

From the behavior you observe, it seems some packet are lost. How have you check that all raw datapackages are correctly received on the device side ?

Which modification have you perform in BLE_Ota project ?

Best Regards