Showing results for 
Search instead for 
Did you mean: 

STM32WB55: Failed read remote feature



I'm currently developing a Zephyr application and want to use the STM32WB55 chip. For evaluating I use the ST Nucleo WB55RG board. The device is configured as a Bluetooth peripheral using the Zephyr v3.6.0 host stack and the stm32wb5x_BLE_HCILayer_fw.bin firmware V1.18.0 for the controller.


Once a central connects to the device, the following warning and error messages are logged:


<wrn> bt_hci_core: opcode 0x2016 status 0x3a
<err> bt_hci_core: Failed read remote features (-16)


The opcode corresponds to the OCF defined in the Bluetooth Core Specification 5.3, Vol. 4, Part E, Chapter 7.8.21 (LE Read Remote Features command).

The controller return status indicates "controller busy". Debugging the issue, I found that a delay of 500ms between connecting and requesting the remote features in most times prevents the error.

Steps to reproduce:

  • Build and flash the peripheral example from the Zephyr sources.
  • Connect to the device
  • Error message is logged

Additional resources:

There is a Zephyr Issue#49584  describing the same problem. The workaround patch at the end of the thread repeats the call for up to 1 second until it succeeds.


Does anybody have an idea what causes the controller to be in the busy state for so long? Since the firmware is delivered as black-box its not possible for me to debug this further.

What is the best way to proceed here?  I'm afraid that introducing a delay of up to 1 second introduces other side-effects.

What are the expected consequences if the remote features are not received? The host does resolve the peripherals' remote features, it's "only" happening on the peripheral side.