cancel
Showing results for 
Search instead for 
Did you mean: 

BLE functionality discrepancy on custom board with STM32WB55CE MCU

Sjain
Associate II

Hello ST Support Team,

I am currently facing an issue with the BLE functionality on my custom board utilizing the STM32WB55CE MCU. While the code works flawlessly on the STM32WB Nucleo EVK, the BLE feature doesn't seem to function as expected on my custom board.

Upon further investigation, I observed a disparity in the wireless firmware version and build values between the two boards. When running the code on the EVK, I received wireless firmware version 1.13.2 with a build value of 2. However, on my custom board, both values indicate 0. Meanwhile, both boards display the same FUS version value, which is 1.2.0.

I have also tried to re-flashing of BLE firmware but receive the error in flashing.
I used following link for reference and follow all steps. Also used "stm32wb5x_BLE_Stack_full_extended_fw.bin" file and address "0x08051000".
https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_BLE_Hardware_Setup 

WhatsApp Image 2023-12-29 at 01.12.58.jpeg

I tried to flash the BLE stack firmware multiple times but not worked in my case. It every time throw error message of erase/write operation failed.

WhatsApp Image 2023-12-29 at 01.06.15.jpeg

It would be really helpful to me if any guidance or assistance you can provide to help me troubleshoot and rectify this issue with the BLE functionality on my custom board. Could you please advise on the necessary steps to verify and potentially resolve this discrepancy
I look forward to your valuable guidance to address this concern.

Thanks,
Sjain

1 ACCEPTED SOLUTION

Accepted Solutions
Remy ISSALYS
ST Employee

Hello,

Can you try with the latest version of STM32CubeProgrammer tool (v2.15.0) and follow these steps? 

- Connect

- Start FUS

- Read FUS to check the version 

- If a stack version is displayed, perform the firmware upgrade without first install option checked 

Best Regards

View solution in original post

7 REPLIES 7
Remy ISSALYS
ST Employee

Hello,

According to your second screenshot, you tried to flash the wireless stack at 0x0805A000 instead of 0x08051000 as mentioned in the release note. Can you retry with the right address?

Best Regards

Sjain
Associate II

Hi @Remy ISSALYS ,

I tried to flash the wireless stack at 0x08051000 as mentioned in the release note. Still receive the same error in flashing. Please suggest the steps to make BLE working on my board.

Sjain_0-1704303479332.png

Thanks,
SJain

 

Remy ISSALYS
ST Employee

Hello,

Can you try with the latest version of STM32CubeProgrammer tool (v2.15.0) and follow these steps? 

- Connect

- Start FUS

- Read FUS to check the version 

- If a stack version is displayed, perform the firmware upgrade without first install option checked 

Best Regards

@Remy ISSALYS Thank you for the steps.
Now BLE working on my custom board after flashing the firmware.

Sjain_0-1704393971712.png

Now only one issue I face that sometimes BLE advertisement not started.
when I debug the issue at that time I found that sometimes instead of WIRELESS_FW_RUNNING event I received FUS_FW_RUNNING event.
Can you please suggest method to receive the WIRELESS_FW_RUNNING state every time ?
Can we configured this states from application?

Regards,
SJain

 

 

Sjain
Associate II

Hi @Remy ISSALYS 

Any update on previously asked questions.

Can you please suggest method to receive the WIRELESS_FW_RUNNING state every time ?
Can we verify or configured this states from application?

Thanks,
SJain

You can configure the states from you main Firmware by using SHCI commands. SHCI_C2_FUS_StartWs restarts to the wireless firmware. Polling SHCI_C2_FUS_GetState two times restarts into FUS(!) 

When the wireless firmware receives that command, it responds SHCI_FUS_CMD_NOT_SUPPORTED the first time.

When the wireless firmware receives that command a second time, it reboots the full device with the FUS running on CPU2






Remy ISSALYS
ST Employee

Hello,

If you perform some action with STM32CubeProgrammer to run the FUS on CPU2 like "Start FUS", "Read FUS version", "Delete wireless stack", the FUS will run on CPU2, that's why you see FUS_FW_RUNNING in the ready event. For example, after an upgrade of the wireless stack, if you click on "Read FUS version", you should then click on "Start Wireless stack" to run on Wireless stack on CPU2.

Best Regards