2023-04-11 01:29 PM
I purchased a few NUCLEO-WB55RG boards to start testing BLE. I load Github Projects P-NUCLEO-WB55.Nucleo Applications BLE BLE_HeartRate Binary BLE_HeartRate_reference hex on the board to test.
Installed st com/en/embedded-software/stblesensor html on my phones (one ios and one android).
Connect to a device and it works, screen on the phone shows heart rate data works fine.
Unplug the power from the Nucleo board? It never advertises again. I tried all 3 Nucleo boards that I have using the pre-compiled binaries and usually they are difficult to get working, they are not discoverable. But then for some reason the phone detects them and they work. Once. After that they don't work again. Each board I have worked once.
Is there a trick to getting the BLE radio to be discoverable? I used the STM32CubeProgrammer FUS to check the FUS infos. On power up, and reading fus info I get:
FUS State: FUS_IDLE
FUS Status: FUS_NO_ERROR
FUS Version: v0.0.0
STACK Version: v11.2.2.0.29
FUS Operator: v3.1.0
If I click on Start FUS and then Read FUS Infos again I get:
FUS State: FUS_IDLE
FUS Status: FUS_NO_ERROR
FUS Version: v1.1.1.0
STACK Version: v1.9.0.2
FUS Operator: v3.1.0
Does that look right? It's not the latest. I downloaded the latest from Git and did the firmware update procedure. Loaded this: Projects STM32WB_Copro_Wireless_Binaries STM32WB5x stm32wb5x_BLE_Stack_full_fw (DOT) bin and when I get FUS Infos I get:
FUS State: FUS_IDLE
FUS Status: FUS_NO_ERROR
FUS Version: v1.2.0.0
STACK Version: v1.16.0.4
FUS Operator: v3.1.0
I think that's the newest. So I went in the same updated git repo and loaded the latest compiled hex for the heart rate sensor code (BLE_HeartRate_reference.hex)
The logs say:
16:13:50 : Time elapsed during the read operation is: 00:00:00.000
16:15:49 : Memory Programming ...
16:15:49 : Opening and parsing file: BLE_HeartRate_reference.hex
16:15:49 : File : BLE_HeartRate_reference.hex
16:15:49 : Size : 37.47 KB
16:15:49 : Address : 0x08000000
16:15:49 : Erasing memory corresponding to segment 0:
16:15:49 : Erasing internal memory sectors [0 9]
16:15:49 : Download in Progress:
16:15:50 : File download complete
16:15:50 : Time elapsed during download operation: 00:00:00.966
16:15:50 : Verifying ...
16:15:50 : Read progress:
16:15:50 : Download verified successfully
16:15:50 : RUNNING Program ...
16:15:50 : Address: : 0x08000000
16:15:50 : Application is running, Please Hold on...
16:15:50 : Start operation achieved successfully
Looks like it should work, but the phones don't find this device. It's so strange, each Nucleo board seemed to work once. For one the once was right out of the package. For the two others, the once was after the FUS process, but then never again.
I even tried rolling back to a 1.15 version from github and putting slightly older versions on there. Still nothing.
I must be missing something. Any help or pointers would be appreciated. Thanks!
2023-04-14 07:46 AM
FYI, if anyone ever has this kind of thing. You have to make sure you start the Wireless Stack. I think the surprise was that if you read FUS info, I was told that the FUS stops the wireless stack and you have to manually start it. So once you start it don't check it with the programmer software. Just use it. The once was a "red herring" and it just so happens that it was a coincidence that I got it to work once.
2023-07-10 07:56 AM
You are right.
In my experience, the Stack upgrade is not required when you are using WB55 board.
But if you are developing a board, the stack firmware upgrade is essential.