2024-01-11 10:22 AM
I have a problem with my wireless stack which was fixed by unplugging and pluggin back in my NUCLEO-WB55. Everything was working well for many months, but I recently tried downloading the ST example project BLE_DataThroughput (from the STM32Cube_FW_WB_V1.18 package via the dialog in STM32CubeIDE). Since then, the program would get stuck because the Wireless stack was not started, then I tried starting the stack manually in STM32CubeProgrammer and it would start but then get stuck at getting a response from the Wireless stack.
Wireless Firmware version 1.16.0
Wireless Firmware build 4
FUS version 1.2.0
>>== SHCI_SUB_EVT_CODE_READY
>>== SHCI_SUB_EVT_CODE_READY - FUS_FW_RUNNING
This is the output of BLE_DataThroughput first, where the FUS is running but the Wireless stack is not.
Wireless Firmware version 1.16.0
Wireless Firmware build 4
FUS version 1.2.0
>>== SHCI_SUB_EVT_CODE_READY
>>== WIRELESS_FW_RUNNING
>>== DBGMCU_GetRevisionID= 2001
>>== DBGMCU_GetDeviceID= 495
This is the output of the same program after manually pressing Start Wireless Stack in STM32CubeProgrammer. From debugging I found that it gets stuck because SHCI_C2_BLE_Init() calls shci_send which calls
shci_cmd_resp_wait() which waits forever for a response from the Wireless Stack.
I also tested this with
- stm32wb5x_BLE_Stack_full_fw.bin 1.16
- stm32wb5x_BLE_Stack_full_fw.bin 1.17
- stm32wb5x_BLE_Stack_full_fw.bin 1.18
- stm32wb5x_BLE_Stack_light_fw.bin 1.18
and it made no difference. I also tried programming different test programs, like BLE_p2pServer_reference.hex and my program which worked yesterday, and that also made no difference.
I did actually manage to somehow fix it by some random combination of pressing Start FUS, Start Wireless Stack, Firmware Upgrade, and Full chip erase in STM32CubeProgrammer, but I don't remember what it was. What really did it was unplugging and plugging back in. I am also using STM32CubeIDE 1.13.2 because the new one had an issue with gdb.