cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB5MMG Ble connection problem

DLid.1
Associate II

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?

 

 

 

6 REPLIES 6
Issamos
Lead II

Hello @DLid.1 

I think this wiki may help you.

Best regards.

II

DLid.1
Associate II

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

 

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

Hello again

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

Best regards.

II

busadhruv
Associate

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.

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.