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

How to change SDK_13.0.0.4 projects in order to use s140_nrf52840_5.0.0-3.alpha

I'm using SDK nRF5_SDK_13.0.0_04a0bfd and compiling the example ble_peripheral/ble_app_hrs/pca10056/s140/armgcc using Eclipse Mars 2.

Flashing softdevice s140_nrf52840_5.0.0-2.alpha supplied with the SDK and then loading the compiled app works fine (light blinking and device advertising), but I need to use the new s140_nrf52840_5.0.0-3.alpha softdevice in order to test the long range functionality.

I have updated my linker script memory locations in the project from the original:

FLASH (rx) : ORIGIN = 0x22000, LENGTH = 0xde000

RAM (rwx) : ORIGIN = 0x20002620, LENGTH = 0x3d9e0

to:

FLASH (rx) : ORIGIN = 0x24000, LENGTH = 0xdc000

RAM (rwx) : ORIGIN = 0x20002620, LENGTH = 0x3d9e0

I left the RAM the same since the release notes did not indicate an increase in RAM requirement.

After I flash the new softdevice using nRFGo Studio, and then the app, the app wont start up.

What else do I need to change to make this example work with the latest -3.alpha softdevice?

  • Hi,

    The S140 5.0.0-3.alpha adds support for connecting directly on Long Range / LE Coded PHY, while with 5.0.0-2.alpha the initial connection was established with regular 1Mbps mode.


    You can find a migration document,s140_nrf52840_5.0.0-3.alpha_migration-document, attached with s140_nrf52840_5.0.0-3.alpha that describes how to migrate to S140 5.0.0-3.alpha.

    One of the first thing you need to do is to copy the header files found in s140_nrf52840_5.0.0-3.alpha_API\include to your SDK folder SDK_folder\components\softdevice\s140\headers. After that you need to apply the changes described in the migration document. You can also find a patch, sdk_diff.patch, in the ble_app_att_mtu_throughput_example_connecting_on_long_range folder, that shows you the changes needed in e.g. ble_advdata.c

  • Hi Sigurd

    Thanks for the reply and info. I attempted a migrate of my project, but encountered so many problems that I just gave up and used the new example project. There were many functions in the example project that ceased to exist after replacing the header files, but there was not any reference to them in the migration doc or the sdk_diff.patch. Functions such as 'ble_advertising_init' and a few other advertising based functions. There were also a few changes to 'sdk_config.h' that was not mentioned in the migrate doc or the sdk_diff.patch.

    Regardless, the attached example works well though, so I am using that as a start point for now, thanks.

    Any timeline on when a new SDK will come out that will fully support s140 5.0.0-3 alpha (or newer) in more of the project examples?

  • Hi Tielman,

    SDK 13 was released about 4 weeks ago, so it will probably be about 2-4 months until SDK 14 is released, which will support the newest S140 version.

Related