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

Is multiple advertising sets still not supported? (SDK 16, s132 soft device 7.0.1)

There are lots of questions in the community related to use of multiple advertising sets. Common answer has been that it is "not support at the moment", see e.g.

https://devzone.nordicsemi.com/f/nordic-q-a/60659/multiple-advertising---nrf-connect-sdk

Is it really so that still to this date this feature is not implemented? I know this can be handled at application level with reasonable effort, but it amazes me if Nordic requires each customer to reinvent the wheel as it is such a basic and commonly requested feature.

Parents
  • Assuming the multiple advertisement sets is unavailable, I am now planning to implement my secondary advertisements using the timeslot API. There's a nice tutorial available at:

    https://devzone.nordicsemi.com/nordic/short-range-guides/b/software-development-kit/posts/setting-up-the-timeslot-api

    However, that article is about 6 years and several SDK generations old. Is there a more up to date version available? And the article contains a bunch of dead links, would be nice to have those fixed. 

  • Still looking for some pointers to get started with multiple interleaved advertisements...

    I was able to get the timeslot example working (see link above) with my application that is originally based on the FreeRTOS heart rate sensor example from the SDK (v16). Now the next step was to try to send some advertising packets from the timeslots that I am granted. For that, I used this code as starting point:
    https://github.com/NordicPlayground/solar_sensor_beacon

    Is there a better example available for sending advertisements directly, without using the softdevice? The code compiles and runs, but can't see any advertisements when I scan with the nRF connect mobile app.

    The task should be really simple: basically I'm just trying to add a second non-connectable advertisement to the FreeRTOS HRS example, using timeslot API. Stitching this together from some example codes that have not been updated in many years seems to be a real pain in the butt.

    Nordic folks, there must be some easy way out of here?

  • Hello,

    Thank you for your patience with this.

    Is it really so that still to this date this feature is not implemented?

    Production support for multiple advertising sets were added in the v1.6.0 release for the NCS SDK, but I notice in your original ticket that you are referencing a ticket regarding nRF Connect SDK, while you in your title and comments refer to the nRF5 SDK.

    If you are using nRF5 SDK you could take a look at this blogpost which explains how you may update your advertising data without stopping and restarting the advertising.
    If you would like the advertising data to change with each advertising you could use Radio Notifications to trigger the update of the advertising data.
    This should work well with the application you have outlined in your previous comment as well. What do you think about this?

    TylerD said:
    However, that article is about 6 years and several SDK generations old. Is there a more up to date version available?

    I am glad to hear that you found the blogpost useful! While the tutorial is old the theory of 
    timeslots and their usage remains pretty much the same. I suspect the main difference to be updated API's for the different functions in the tutorial.

    TylerD said:
    the article contains a bunch of dead links, would be nice to have those fixed. 

    I have created an internal ticket on updating the broken links, thanks for letting us know.

    TylerD said:
    Is there a better example available for sending advertisements directly, without using the softdevice?

    If you intend to send advertisements without using the SoftDevice you will have to use the radio peripheral directly and implement the advertising routines and timings yourself.
    This needs to conform to the Bluetooth Low Energy specification if you intend to have your device certified. I can not recommend that you do this yourself, and I highly recommend that you make use of the SoftDevice for this, since all this work will be done for you then.

    Best regards,
    Karl

  • Hi Karl,

    thanks for the reply. So it seems the multiple advertising sets is supported, but not in the older nRF5 SDK series that I'm using. I'm stuck with the 16.0.0 version from the nRF5 series which is one of the last ones before the NCS SDK was taken into use.

    Updating the advertising data on the fly as described in the article you linked is not what I'm looking for. In my case, I need to have two advertisements interleaved and these two advertisements can have different interval, power settings etc. 

    I was able to get the timeslot based advertisements working after some trial and error. So basically problem solved at least for now.

    Transition to the new NCS SDK could be an option, but I'm working on a product that is already shipped around the world. One thing that worries me is the migration from nRF5 SDK to the new NCS SDK; is there lots of changes in the APIs, or should my old application work with little or no changes with the new SDK? 

    And the most critical part is the field upgrades: is there some special considerations to be taken into account when upgrading from nRF5 SDK 16.0.0 to NCS SDK based application? Or is the OTA / UART DFU mechanism same as before? 

  • Hello again,

    TylerD said:
    thanks for the reply.

    No problem at all, I am happy to help! 

    TylerD said:
    Updating the advertising data on the fly as described in the article you linked is not what I'm looking for. In my case, I need to have two advertisements interleaved and these two advertisements can have different interval, power settings etc. 

    I see, thank you for clarifying.

    TylerD said:
    So it seems the multiple advertising sets is supported, but not in the older nRF5 SDK series that I'm using.

    Yes, this is unfortunately the case.

    TylerD said:
    I was able to get the timeslot based advertisements working after some trial and error. So basically problem solved at least for now.

    Great, I am happy to hear that you've got it working with the timeslots already!

    TylerD said:
    Transition to the new NCS SDK could be an option, but I'm working on a product that is already shipped around the world. One thing that worries me is the migration from nRF5 SDK to the new NCS SDK; is there lots of changes in the APIs, or should my old application work with little or no changes with the new SDK? 

    Migrating an application from the nRF5 SDK to the nRF Connect SDK is unfortunately non-trivial, and will require some work since the nRF Connect SDK is based on the Zephyr RTOS, compared to the task-event foundation of the nRF5 SDK. It is definitely do-able, but I would not recommend that undertaking if the primary driving force for the migration is the multiset advertising feature.
    I would however recommend that any new applications being developed from here on out is built with the nRF Connect SDK from the beginning, to benefit from all the new features and functionality currently in, and coming to, the nRF Connect SDK.

    TylerD said:
    And the most critical part is the field upgrades: is there some special considerations to be taken into account when upgrading from nRF5 SDK 16.0.0 to NCS SDK based application? Or is the OTA / UART DFU mechanism same as before? 

    The OTA / UART DFU mechanism already in place can be used to upgrade a nRF5 SDK based application to a nRF Connect SDK based application, yes. This will however require some tweaking of the first nRF Connect application firmware, so that it matches the expectations of the bootloader already in place on the device.

    In this case, I would not recommend migrating your deployed devices to an application based on the nRF Connect SDK, simply because the work required to do so will outweigh the gain from migrating to the nRF Connect SDK - especially so when you have already got your multiset advertising to work as intended with the nRF5 SDK.

    Please do not hesitate to ask if any part of my explanation should be unclear, or if you should have any other questions about this.

    Best regards,
    Karl

Reply
  • Hello again,

    TylerD said:
    thanks for the reply.

    No problem at all, I am happy to help! 

    TylerD said:
    Updating the advertising data on the fly as described in the article you linked is not what I'm looking for. In my case, I need to have two advertisements interleaved and these two advertisements can have different interval, power settings etc. 

    I see, thank you for clarifying.

    TylerD said:
    So it seems the multiple advertising sets is supported, but not in the older nRF5 SDK series that I'm using.

    Yes, this is unfortunately the case.

    TylerD said:
    I was able to get the timeslot based advertisements working after some trial and error. So basically problem solved at least for now.

    Great, I am happy to hear that you've got it working with the timeslots already!

    TylerD said:
    Transition to the new NCS SDK could be an option, but I'm working on a product that is already shipped around the world. One thing that worries me is the migration from nRF5 SDK to the new NCS SDK; is there lots of changes in the APIs, or should my old application work with little or no changes with the new SDK? 

    Migrating an application from the nRF5 SDK to the nRF Connect SDK is unfortunately non-trivial, and will require some work since the nRF Connect SDK is based on the Zephyr RTOS, compared to the task-event foundation of the nRF5 SDK. It is definitely do-able, but I would not recommend that undertaking if the primary driving force for the migration is the multiset advertising feature.
    I would however recommend that any new applications being developed from here on out is built with the nRF Connect SDK from the beginning, to benefit from all the new features and functionality currently in, and coming to, the nRF Connect SDK.

    TylerD said:
    And the most critical part is the field upgrades: is there some special considerations to be taken into account when upgrading from nRF5 SDK 16.0.0 to NCS SDK based application? Or is the OTA / UART DFU mechanism same as before? 

    The OTA / UART DFU mechanism already in place can be used to upgrade a nRF5 SDK based application to a nRF Connect SDK based application, yes. This will however require some tweaking of the first nRF Connect application firmware, so that it matches the expectations of the bootloader already in place on the device.

    In this case, I would not recommend migrating your deployed devices to an application based on the nRF Connect SDK, simply because the work required to do so will outweigh the gain from migrating to the nRF Connect SDK - especially so when you have already got your multiset advertising to work as intended with the nRF5 SDK.

    Please do not hesitate to ask if any part of my explanation should be unclear, or if you should have any other questions about this.

    Best regards,
    Karl

Children
No Data
Related