Showing results for 
Search instead for 
Did you mean: 

STM32WB10 BLE advertising not visible on other devices

Associate II


I have a custom PCB with STM32WB10 with full BLE stack configured with server profile and a custom template in Cube IDE. The problem is that other devices don't see its advertising packets (or maybe are ignoring them), I tried BlueSee on a Macbook, ST BLE Toolbox on an iPhone, and the hcitool on Linux, but the STM32WB10 is not on the list of found device. I also tried other templates available in the IDE with no success.

However, when I use the NUCLEO-WB55 in transparent mode with the STM32CubeMonitor-RF to scan BLE devices, I can see my WB10 in the list, I can connect to it and I can also read, write, and notify characteristics, so everything seems to be working.

Any ideas would be welcome, thanks

ST Employee

It could be that your board fails to start advertising. That would explain why you don't see it advertised.

Do you have logs that tell you whether or not advertising has started?
BR, Joé

Associate II


yes based on the logs it seems that the advertising started correctly, please see the log from the heart rate sensor example. Also, the NUCELO-WB55 in transparent mode can see it advertising. But all non-ST devices, like iPhone or Macbook, seem to ignore it.

[app_entry.c][APPE_SysUserEvtRx][344] Wireless Firmware version 1.15.0
[app_entry.c][APPE_SysUserEvtRx][345] Wireless Firmware build 3
[app_entry.c][APPE_SysUserEvtRx][346] FUS version 1.2.2
[app_entry.c][APPE_SysUserEvtRx][348] >>== SHCI_SUB_EVT_CODE_READY

[app_entry.c][APPE_SysEvtReadyProcessing][434] >>== WIRELESS_FW_RUNNING
[app_entry.c][APPE_SysEvtReadyProcessing][458] >>== DBGMCU_GetRevisionID= 2000

[app_entry.c][APPE_SysEvtReadyProcessing][463] >>== DBGMCU_GetDeviceID= 494

[app_ble.c][APP_BLE_Init][334] Success: SHCI_C2_BLE_Init command

[app_ble.c][Ble_Hci_Gap_Gatt_Init][645] ==>> Start Ble_Hci_Gap_Gatt_Init function
[app_ble.c][Ble_Hci_Gap_Gatt_Init][658] Success: hci_reset command
[app_ble.c][Ble_Hci_Gap_Gatt_Init][672] Success: aci_hal_write_config_data command - CONFIG_DATA_PUBADDR_OFFSET
[app_ble.c][Ble_Hci_Gap_Gatt_Init][673] Public Bluetooth Address: 00:80:e1:21:b4:d1
[app_ble.c][Ble_Hci_Gap_Gatt_Init][760] Success: aci_hal_write_config_data command - CONFIG_DATA_IR_OFFSET
[app_ble.c][Ble_Hci_Gap_Gatt_Init][773] Success: aci_hal_write_config_data command - CONFIG_DATA_ER_OFFSET
[app_ble.c][Ble_Hci_Gap_Gatt_Init][786] Success: aci_hal_set_tx_power_level command
[app_ble.c][Ble_Hci_Gap_Gatt_Init][799] Success: aci_gatt_init command
[app_ble.c][Ble_Hci_Gap_Gatt_Init][835] Success: aci_gap_init command
[app_ble.c][Ble_Hci_Gap_Gatt_Init][873] Success: hci_le_set_default_phy command
[app_ble.c][Ble_Hci_Gap_Gatt_Init][887] Success: aci_gap_set_io_capability command
[app_ble.c][Ble_Hci_Gap_Gatt_Init][918] Success: aci_gap_set_authentication_requirement command
[app_ble.c][Ble_Hci_Gap_Gatt_Init][933] Success: aci_gap_configure_whitelist command
[app_ble.c][Ble_Hci_Gap_Gatt_Init][936] ==>> End Ble_Hci_Gap_Gatt_Init function

[hrs.c][HRS_Init][433] Heart Rate Service (HRS) is added Successfully 000F
[hrs.c][HRS_Init][466] Heart Rate Measurement Characteristic Added Successfully 0010
[hrs.c][HRS_Init][493] Sensor Location Characteristic Added Successfully 0013
[hrs.c][HRS_Init][519] Control Point Characteristic Added Successfully 0015
[app_ble.c][Adv_Request][996] ==>> aci_gap_set_discoverable - Success
[app_ble.c][Adv_Request][1016] ==>> Success: Start Fast Advertising

This may be a silly question, but aren't there filters activated according to the ADV data that could hide your board on the apps you scan with?

All filters are off. When I run the heart rate sensor example on the WB55, I can see it advertising in all apps. But not when using the WB10. The IDE-generated code for WB10 wasn't working out of the box, I had to modify the BLE_NUM_GATT_SERVICES and BLE_NUM_GATT_ATTRIBUTES parameters to make it work (based on the examples for WB15), also I had to change the linker file to place MB_MEM2 in SRAM2. So I was wondering if there is anything else that needs to be changed for correct functionality.