Skip to main content
DLid.1
Associate II
September 2, 2023
Question

STM32WB5MMG Ble connection problem

  • September 2, 2023
  • 4 replies
  • 4560 views

Hello!

I have an STM32WB5MMG with a breakout board (more specifically Sparkfun ATP breakout
SparkFun MicroMod ATP Carrier Board - DEV-16885 - SparkFun Electronics

with the STM32WB5MMG module 

SparkFun MicroMod STM32WB5MMG Processor - DEV-21438 - SparkFun Electronics

)

So, it is not in a nucleo version. I am trying to see if I can just see the BLE device on my phone with the 

"ST BLE Sensor" app (or "ST BLE Toolbox") app.

I downloaded the STM32WB packages on github

STMicroelectronics/STM32CubeWB: Full Firmware Package for the STM32WB series: HAL+LL drivers, CMSIS, BSP, MW, plus a set of Projects (examples and demos) running on all boards provided by ST (Nucleo, Evaluation and Discovery Kits). (github.com)

The STM32WB5MM-DK is basically what I have but just in a different format, so I try and follow the examples for that board.

In the github download, I opened this example project:
STM32CubeWB-master\Projects\STM32WB5MM-DK\Applications\BLE\BLE_p2pServer\

And then started to follow the readme.txt file.

DLid1_0-1693668323949.png

As stated, I do not have a nucleo which means that the BLE stack is not already flashed.

And when I went to CubeProgrammer and did "Read Fus infos", this is what I saw:

DLid1_1-1693668411009.png

As you can see, the STACK version is v0.0.0.0, so I have to get the stack bin onto the chip.

In the first image, on row 76 I am referred to a page, I go there and go to the "How to flash the Wireless Coprocessor Binary via SWD/JTAG ny ST-LINK (STM32CubeProgrammerGUI)"- section.

DLid1_2-1693668604268.png

I went to 

STM32CubeWB-master\Projects\STM32WB_Copro_Wireless_Binaries\STM32WB5x

and chose the stm32wb5x_BLE_Stack_full_fw.bin as said in the readme.txt in the project CubeIDE.

According to the guide, I need to check what Start address I should have, scrolling down I see thi s table:

address.png

I have an STM32WB5MMG and with the said .bin file, the start address I assume is

0x080CE000

What I do next is in the "Firmware Upgrade Services" part of CubeProgrammer (that was shown in the second image), I choose the correct .bin file and put the 0x080CE000 address as start, then pressed "Firmware Upgrade", it was successful and when I then again press "Read FUS infos", this is the result:

after_fus.png

As you can see, the STACK version is now v1.17.2.1, so I think I did it successfully.

If I then continue to read the readme file:

DLid1_3-1693669169492.png

I see that I should now just be able to compile everything, upload and run. And from what I understand I should now see the device.

I compile and upload:

DLid1_4-1693670009332.png

Now I check the apps (both BLE Sensor and BLE Toolbox), but I cannot see the device come up.

There must be some thing/things that I have missed, can anyone spot the error?

 

 

 

4 replies

Issamos
Lead III
September 2, 2023

Hello @DLid.1 

I think this wiki may help you.

Best regards.

II

DLid.1
DLid.1Author
Associate II
September 2, 2023

Hi Issamos!

Thanks for your answer!

I looked through the guide and notice in this part:

DLid1_0-1693674772274.png

They say to use the FUS_fw bin file. But from the readme.txt I was pointed to Stack_full_fw.

Which file should I have in the "Firmware Upgrade" file path, and at which start address.

list.png

Or maybe I am mixing up things here and I should flash the STACK somewhere, and the FUS at another place.

Could you clarify what I am supposed to do? 

Thanks in advance

Issamos
Lead III
September 2, 2023

Hello again

Maybe the videos in the wiki ressources can help you in this.

Best regards.

II

DLid.1
DLid.1Author
Associate II
September 2, 2023

Just to add to the overall information, when I look at the serial output, this is what I see:

DLid1_0-1693673595655.png

So from the terminal output, it looks like the EnableCPU2 function does never happen, I.e. this is not true:

if (p_sys_ready_event->sysevt_ready_rsp == WIRELESS_FW_RUNNING)

Instead the code goes into this:

else if (p_sys_ready_event->sysevt_ready_rsp == FUS_FW_RUNNING)

I am not sure if this is the behavior I am expecting. I just want to add as much information as possible so that someone maybe can spot something wrong. 

DLid1_1-1693674053147.png

 

Visitor II
April 2, 2024

Can u send me this function 

void PeriphCommonClock_Config(void)
 
or pic of your clock configuration in cubemx or cubeide.

below is my clock configuration so try this because in my case now ble working and i can see in app.

Visitor II
April 2, 2024

i have same issue that this below condition not true

 if (p_sys_ready_event->sysevt_ready_rsp == WIRELESS_FW_RUNNING)

i already follow this instructions
https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_BLE_Hardware_Setup#How_to_update_the_FUS
https://wiki.stmicroelectronics.cn/stm32mcu/wiki/Connectivity:STM32WB_BLE_STM32CubeMX#Pinout_and_IP_configuration

But still i am not able to see the ble device on app.

if you find solution then please suggest me.

NOTE: i am using STM32WB5MMGH6TR custom board.

Associate II
August 25, 2025

hello @DLid.1 ,

This forum post helped me debug this same issue. 

You may need to press the "start wireless stack" button in stm32cubeprogrammer after updating the FUS and BLE Stack firmware.