This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

The difference between the two controllers on nRF Connect SDK ?

Hi, All,

I saw the following description in the nRF Connect SDK documentation you provided:

That means there are two kinds of controllers on an NCS: Zephyr BLE controller and Nordic softdevice controller.

So I have a few questions about these two controllers:

1. What's the main difference between the two ?

2. Or what is the functional difference between the two ? What function does one have that the other does not ?

3. How different are they in terms of tailoring in order to optimize memory usage? Which has the advantage ?

These determine which controller we use.

Hope to get your reply soon, thank you !

Parents
  • Hi

    Due to the summer vacation period here in Norway we are short on staff and delayed replies must be expected. I'm sorry for any inconvenience this might cause.

    1. The main difference between the two is that the SoftDevice controller is developed, tested and supported by Nordic Semiconductor specifically, and is not open source. The Zephyr stack however, is a more "generic" BLE controller supporting most of the standard BLE features and support multiple HW platforms. It is developed by the Zephyr community and provided as open source.

    2. The Zephyr BLE controller support more platforms than just Nordic Semiconductor products, while the SoftDevice controller supports things like advertising extensions, and in general a more extensive feature set from the Bluetooth specification.

    3. The Zephyr BLE controller is in general somewhat smaller in terms of memory usage. This isn't a straight forward answer though, as for very simple applications, an app built with the Zephyr controller will be smaller. But for applications with multiple features, the difference between the two is much smaller. Size optimization of the SoftDevice controller is a continuous effort, and as it's delivered as a binary (and it having more features) makes it harder to optimize for size.

    Best regards,

    Simon

Reply
  • Hi

    Due to the summer vacation period here in Norway we are short on staff and delayed replies must be expected. I'm sorry for any inconvenience this might cause.

    1. The main difference between the two is that the SoftDevice controller is developed, tested and supported by Nordic Semiconductor specifically, and is not open source. The Zephyr stack however, is a more "generic" BLE controller supporting most of the standard BLE features and support multiple HW platforms. It is developed by the Zephyr community and provided as open source.

    2. The Zephyr BLE controller support more platforms than just Nordic Semiconductor products, while the SoftDevice controller supports things like advertising extensions, and in general a more extensive feature set from the Bluetooth specification.

    3. The Zephyr BLE controller is in general somewhat smaller in terms of memory usage. This isn't a straight forward answer though, as for very simple applications, an app built with the Zephyr controller will be smaller. But for applications with multiple features, the difference between the two is much smaller. Size optimization of the SoftDevice controller is a continuous effort, and as it's delivered as a binary (and it having more features) makes it harder to optimize for size.

    Best regards,

    Simon

Children
No Data
Related