Help migrating from NRF5 SDK to NRF Connect SDK

Hi, I have a fully functional software running on a NRF module. The application is built on a nrf5 sdk. I would like to migrate the entire application to NRF Connect SDK. Is there a document or anything from where i can get help to understand how this is done ? Can someone help me ?

  • We have a statement that we made comparing nRF5SDK and nRF Connect SDK. This gives a bird eye view of the difference you can see in these two SDKs. It is not possible to give you a 1-1 mapping of API of all functionalities as these SDK work on different fundamental concepts of one being baremetal and the other being RTOS based. You still have the nrfxlib in nRF Connect SDK which is comparable to what we had in the nRF5SDK apart from that most of the API is completely different and the amount of time you need to invest in it varies a lot on application to application and the experience of the team you have.

  • Okay. I understand. But is there any chance that any  of the old APIs or examples that was available in nrf5 was removed completely in NCS ?
    I used a the buttonless dfu in nrf5 (ble_app_buttonless_dfu )but I cannot find a similar example in NCS. Can you tell me is it stll available in a different name or if it is completely removed ? If it is available in NCS, could you tell me where I can get the code ?

  • Some of the examples we had in nRF5SDK are also supported in NCS inside ncs\vx.x.x\nrf\samples. Not all the examples are ported and I am not sure if it is in the roadmap even to port all available examples in nRF5SDK to NCS.

    Midhunjac said:
    But is there any chance that any  of the old APIs or examples that was available in nrf5 was removed completely in NCS ?

    A lot of libraries all of drivers (except nrfxlib) and many examples from nRF5 SDK are not available in the NCS. the buttonless_dfu example does not exist in NCS since Zephyr works with MCUBoot and it has its own native support of DFU and samples that are provided around it.

  • So, in a nutshell, I might have to destroy my existing code developed around nrf5 SDK and develop it all from scratch if I am migrating to NCS to achieve the same functionality. Right ?


  • Not all of your current application based on nRF5SDK needs to be discarded. BLE API is different, but you will be able to find a close cousin API in nRF Connect SDK BLE API to the one in the Softdevice API. 

    There is no fstorage or fds in nRF Connect SDK, so you need to port that to settings. You need to change the way you initiated the peripherals and use Zephyr device drivers instead.

    • All you application logic and state machine can still be re-used.
    • All the logic inside the device driver callbacks can be reused. 
    • The way you communicate to the sensors connected to your product, pre and post processiing of data logic can still be re-used.
Related