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

Putting the SoftDevice on non-SD devices and migrating to latest SDK

Hi all,


Last year, we have successfully developed main app with bootloader without SoftDevice on a custom board using the nrf52840. The starting address of the main app is 0x1000 and the jumping from bootloader to main app works fine.

We now want to develop the Bluetooth 5 features, so we need to put the Soft Device on our devices. I want to ask how is that possible in the fastest and easiest way and do we need to change all the libraries for the bootloader and main app and use function callings from Soft Device.

How can we migrate from SDK15.0 without SoftDevice to SDK15.2 with latest SoftDevice, since with the latest releases I think all the features of BT5 are supported?

Thanks in advance.

Parents Reply Children
  • Hi,

    We are using the open bootlader from SDK15.0.

  • Hi,

    From what I can tell, you should be able to continue using the bootloader. It should only use the first flash page of the SoftDevice, which contains the Master Boot Record (MBR), which is backwards compatible and already present on your board. (Hence the application starts at 0x1000.) If you want to change to a bootloader with BLE DFU, you must change bootloader as well. You can update the open bootloader through DFU.

    You do have to update the application as well, if you introduce a SoftDevice on the board. Application must always be updated after a major SoftDevice update. Note that the start address, as well as memory settings, will change from non-SoftDevice application to an application using a SoftDevice, and between SoftDevice (major) versions. RAM settings also depend on (runtime) SoftDevice configuration and so may differ between bootloader and application.

    Bootloader, SoftDevice and Application are separate DFU updates, but they can be packed in the same update zip file and then the DFU tools will upgrade all images.

    Some access to peripherals (most notably flash operations) must be done through the SoftDevice API if the SoftDevice has been enabled. See the Hardware peripherals section of the SoftDevice Specification for details.

    For feature set I refer to the SDK release notes, the SoftDevice specification and the SoftDevice API documentation. We always recommend using the latest version of the SDK, currently nRF5 SDK v15.3.0.

    Regards,
    Terje

Related