2020-11-26 11:26 PM
I am using the Nucleo STM32WB55 Nucleo Pack to develop BLE applications on the Nucleo board. Every once in a while I have the problem, that the application does not properly start and hangs during BLE Init of the co-processor. This is no problem of my code but also happens on the provided examples of STM!
The hang occurs in app_ble.c in the calls to SHCI_C2_BLE_Init( &ble_init_cmd_packet ) or Ble_Hci_Gap_Gatt_Init() (see e.g. https://github.com/STMicroelectronics/STM32CubeWB/blob/master/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.c line 313 and 318).
The call simply hangs and does not return. A push of the reset button restarts the board, but it hangs again at the same spot.
I already reflashed the firmware, recompiled, etc. etc. Normally, after 2-3x powertoggling the board (removing USB cable, refitting it), it suddenly works.
Maybe related: When I open STM Cube Programmer to access the copro in DFU mode via USB direct connect (after the proper prep with jumpers and jumperwires on the header), the readout of the FUS firmware version doesn't always work and errors out.
After clicking "Start wireless stack" and retrying a couple of times it usually works. What exactly happens when I click "Start wireless stack"? This is surely not something that survives a power reset? So once I disconnected the board it probably is not "started" anymore? Or does "start" suggest "initialize" (structures like physical address, etc.)? Anyway it usually works after power toggling the board and resetting the jumpers into their default position.
What could be the reason for the hangs during BLE init? As said - it happens with the default vanilla examples out-of-the-box not in my code!
Installed FUS/Stack v1.1.0
Latest STM32WB55 FW Pack v1.10.0
Installed stack: stm32wb5x_BLE_Stack_Full_Firmware.bin
2020-11-27 12:50 AM
Is the problem possibly related to this? https://community.st.com/s/question/0D50X0000C7cRcvSQE/problems-using-usb-mass-storage-middleware-with-ble-stack-on-stm32wb55 -> I did not explicitly mention it, but I am ofc connected using USB and STLink when running/debugging - thats how I found out it IS freezing at that particular call. The LEDs of the board blink fast as an indication of I/O with the STLink