I'm trying to understand how the selection mechanism of Bluetooth LE controller (SoftDevice vs Zephyr) works in nRF Connect SDK samples.
The documentation clearly states that by default, SoftDevice is used for the samples (except special cases) : https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_ble_controller.html#usage-in-samples
Because I'm using nRF5340, the controller is handled as a child image for the network core. When I look into samples/CMakeList.txt
, I can see that if CONFIG_NCS_INCLUDE_RPMSG_CHILD_IMAGE
and CONFIG_NCS_SAMPLE_HCI_RPMSG_CHILD_IMAGE
are enabled, child image name is set to "hci_rpmsg"
and child image path to "${ZEPHYR_BASE}/samples/bluetooth/hci_rpmsg"
. These two configs are enabled for the majority of the samples, so hci_rpmsg
from Zephyr samples seems to be used in the majority of cases. But isn't hci_rpmsg
the controller from Zephyr (i.e. not SoftDevice)?
I assume that the documentation is correct, so is my understanding of the above mentioned part of samples/CMakeList.txt
wrong? Could you please clarify?
Thanks!