This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Migration advice from nRF5 SDK to nRF Connect SDK

Hi,

our company is developing some different models of devices with BLE based on the nRF52840 MCU, working with the nRF5 SDK (17.0.2). The devices are in parallel using serial communication over the built-in usart, which rules out odd parity. While this is not a problem for the first model I am working on, in future models we might need odd parity urgent. Therefore we have discussed to move on to the nRF5340 which supports odd parity. But the problem is, that the nRF5 SDK does not (and will not in future, as I have understood) support the new MCU, so we would have to migrate our project to the nRF Connect SDK. My question is now, is there any support (or at least some advice) on such a migration. I have found some questions regarding this topic, and someone proposed to create a blog article, but I did not find any solid information.

As far as I see, the SDKs are quite different. The nRF5 SDK suppport for FreeRTOS is missing in nRF Connect SDK, instead it is based on Zephyr, and the peripheral drivers seem also to be incompatible. The same seems to apply to the Bluetooth bootloader code, so I have the impression we would have to start over from zero. Is this impression correct?

Regards

  Dirk

  • Dirk,

    Sorry for the late reply

    My question is now, is there any support (or at least some advice) on such a migration. I have found some questions regarding this topic, and someone proposed to create a blog article, but I did not find any solid information.

    There is no easy way to create a simple migration guide from nRF5 SDK to NCS. The former is a beast of features(libraries, drivers, protocols, examples) which in each could have their own individual migration guides in itself.

     

    As far as I see, the SDKs are quite different. The nRF5 SDK suppport for FreeRTOS is missing in nRF Connect SDK, instead it is based on Zephyr, and the peripheral drivers seem also to be incompatible. The same seems to apply to the Bluetooth bootloader code, so I have the impression we would have to start over from zero. Is this impression correct?

     Unfortunately, there two SDK's are quite different. But if you have started your project taking one of the nRF5 SDK examples as a template, then chances are that you will find that template example in the NCS as well (non freertos). Are you using FreeRTOS? if so, you might be able to find one to one mapped RTOS API that you can use to replace FreeRTOS related API with Zephyr RTOS API. The concepts for most of the RTOS remain surprisingly similar.

Related