Zephyr BLE Samples ASSERT in bt_enable() With Zephyr BLE Controller on nRF52833/nRF52840 Dev Kits.

Hello,

We are observing a crash in BLE samples provided by Zephyr/Nordic which occurs after calling bt_enable(). It is clear that the issue is in the hci_core.c when bt_init() is called. bt_init()  calls hci_init() which calls common_init() which fails in the first bt_hci_cmd_send_sync() call when the take of the sync_sem fails after HCI_CMD_TIMEOUT which is 10 seconds.

As a sanity check, we tried using the Zephyr controller on our board, an nRF52833DK, and an nRF52840DK.
We tried enabling the Zephyr controller on our application, the direct adv sample, and the HR central sample.
All fail 10s after attempting bt_init() for the same reason.
The bt samples work as expected using the Softdevice controller.


BT related KCONFIG changed in BT samples and our application to switch to Zephyr BLE controller:

CONFIG_BT_LL_SW_SPLIT=y

BT related KCONFIGs enabled in our app:

CONFIG_BT=y

CONFIG_BT_PERIPHERAL=y

CONFIG_BT_CENTRAL=y

CONFIG_BT_SCAN=y

CONFIG_BT_CTLR=y

CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y

BT related KCONFIGs enabled for samples kept the same aside from the BT_LL_SW_SPLIT

NCS Version: nrf connect SDK v2.2.0

Zephyr Version: zephyr-sdk-0.15.1

We have also attempted rolling back to NCS versions:

v2.2.0, v2.3.0, v1.9.2 and v1.5.0

Parents
  • Hi Erick,

    First of all, note that we do not qualify the Zephyr link layer on the nRF devices, so that is something you will have to do yourself, which will increase the cost of getting Bluetooth certification for your end product, compared to if you used the SoftDevice Controller. We also do not directly support or recommend the use of the Zephyr link layer.

    That said, it should work, and I have not been able to reproduce the issue. If I take the Bluetooth: Central / Heart-rate Monitor sample from nRF Connect SDK 2.3.0 and add CONFIG_BT_LL_SW_SPLIT=y that seems to work out of the box. Can you elaborate on what other changes you have done and in what way it fails?

Reply
  • Hi Erick,

    First of all, note that we do not qualify the Zephyr link layer on the nRF devices, so that is something you will have to do yourself, which will increase the cost of getting Bluetooth certification for your end product, compared to if you used the SoftDevice Controller. We also do not directly support or recommend the use of the Zephyr link layer.

    That said, it should work, and I have not been able to reproduce the issue. If I take the Bluetooth: Central / Heart-rate Monitor sample from nRF Connect SDK 2.3.0 and add CONFIG_BT_LL_SW_SPLIT=y that seems to work out of the box. Can you elaborate on what other changes you have done and in what way it fails?

Children
No Data
Related