What's the advantage/disadvantage of using the nRF5 SDK for Mesh to the nRF Connect SDK?

Dear BT Mesh experts,

What's the advantage/disadvantage of using the nRF5 SDK for Mesh compared to the nRF Connect SDK?
 
Consider a rather simple BT Mesh device that provides the following functionalities:

  1. A proprietary server model to write/read data to/from flash and processes it over time.
  2. Firmware update over BT GATT.
  3. Ability to change the name with which the MESH device advertises itself.
  4. A few of the standard Mesh functions like: Provisioning, resetting (de-provisioning), en-/disabling proxy server and subscribing to groups. 

All fairly simple stuff, and because of it's name, the obvious choice seems to be to use the nRF5 SDK for Mesh. However, the softdevice consumes quite some space in flash. Hence the questions:
 
What advantages or disadvantages would I gain (or lose) by using nRF Connect SDK instead of the nRF5 SDK for Mesh?
Which of the two SDKs is the more lightweight (in terms of flash, memory and CPU consumption)?
Which one is more matured?

In general, which of the two SDKs would your recommend?


 

Parents
  • Hey Blue Mike!

    Both the nRF5 Mesh SDK and NCS should be able to handle what you've mentioned in that list.

    What's the advantage/disadvantage of using the nRF5 SDK for Mesh compared to the nRF Connect SDK?

    The main disadvantage with nRF5 SDK for Mesh is that it isn't a future proof option. There will be bug fixes and maintenance, but nothing more than that. nRF Connect SDK (NCS) on the other hand will be fully supported and worked on going forward. For more info on this, see this recent blog post about it.

    I'm not completely sure which of the two is the most lightweight or mature, though for someone starting development NCS seems to be the better choice.

    Best regards,

    Elfving

Reply
  • Hey Blue Mike!

    Both the nRF5 Mesh SDK and NCS should be able to handle what you've mentioned in that list.

    What's the advantage/disadvantage of using the nRF5 SDK for Mesh compared to the nRF Connect SDK?

    The main disadvantage with nRF5 SDK for Mesh is that it isn't a future proof option. There will be bug fixes and maintenance, but nothing more than that. nRF Connect SDK (NCS) on the other hand will be fully supported and worked on going forward. For more info on this, see this recent blog post about it.

    I'm not completely sure which of the two is the most lightweight or mature, though for someone starting development NCS seems to be the better choice.

    Best regards,

    Elfving

Children
  • Hi Elfving,

    Thank you very much for the clarification. Time to move over to NCS then. Only problem is, how am I going to explain to my client that I'd like to restart the firmware application from scratch?!? They just shipped the first few thousand devices.

    One technical question though:

    The current firmware application supports DFU over GATT, which requires a secure bootloader, settings page, softdevice and firmware application to be programmed. Is it technically possible to upgrade this firmware with an NCS based firmware? Wouldn't the secure bootloader cause problems when trying to DFU an application that all out of a sudden doesn't want a softdevice anymore?
    What's the recommended approach here?

    Again thanks for your help,
    Michael.

  • Another question from the blog post:

    What are the main differences between the Zephyr Bluetooth LE Controller and the SoftDevice Controller? In which situations would you choose one over the other?

  • Hey again Michael!

    BlueMike said:
    how am I going to explain to my client that I'd like to restart the firmware application from scratch?

    Ah, so they already have something working using Mesh SDK, that changes things. I wouldn't say that that everyone needs to restart the development of their applications from scratch on NCS, but if you are starting something new, then NCS would be the future proof option. 

    If you still want a good reason in order to convince the client, then you can say that this will make the product able to support new Bluetooth features a lot faster, as support for new features will only be released on NCS. I would completely understand it if you want to stick to nRF5 Mesh SDK if you have invested a lot of time into it. 

    BlueMike said:
    What are the main differences between the Zephyr Bluetooth LE Controller and the SoftDevice Controller?

    The SoftDevice Controller is more optimized for Nordic HW, and the Zephyr controller is open source, and in some cases might support things the SD controller doesn't. I would recommend you to use the SD controller, unless you find out that you need something that it doesn't support. 

    BlueMike said:
    The current firmware application supports DFU over GATT, which requires a secure bootloader, settings page, softdevice and firmware application to be programmed. Is it technically possible to upgrade this firmware with an NCS based firmware? Wouldn't the secure bootloader cause problems when trying to DFU an application that all out of a sudden doesn't want a softdevice anymore?

    Updating to NCS from nrf5 SDK is a bit complicated, but possible, given that you have enough room in the bootloader to move MCUBoot in there. Let me know if this is something you want to know more about.

    Best regards,

    Elfving

Related