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

Multi-peripheral demo explanation?

I'm new to Nordic, I just got an nRF 52 DK. Refreshingly simple to get working with Segger Embedded Studio on Mac.
I'm particularly interested in the BLE multiperipheral application: infocenter.nordicsemi.com/index.jsp
I can't find any notes on how this is implemented. What differs from the same project without multi-peripheral support? Is it just because it starts advertising again after connection?

  • Hello,

    The Bond Management Service examples show you how to use the Bond Management Service. You can read about the example here. The point of this service is to manage all the stored bonds on the device, and you can clear the bonds without pressing any buttons on the device.

    Check out the example description in the link, and let me know if it is still unclear.

    Best regards,

    Edvin

  • Hi, I was asking about the multiperipheral example, not bond management?

  • Sorry. The link that you gave is pointing to the bond management service. Probably where you started when clicking a link in infocenter. Note that infocenter does not update the link when you click links in it. To get the updated link, you must open the latest link in a new tab. That is kind of an annoying "feature" Slight smile

    Anyway,

    The multiperipheral example is just what you say, yes. It shows how you can configure an application to support several peripheral links (connections where the device acts as a peripheral).

    I assume the link you were referring to was this one: http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v14.2.0%2Fble_sdk_app_multiperipheral.html ?

    So you can connect to it e.g. using on or more devices programmed with the ble_app_blinky_c application.

    As you see in the multiperipheral example, that in the function on_connect(), it will start advertising again if the periph_link_count has not reached NRF_SDH_BLE_PERIPHERAL_LINK_COUNT.

    Best regards,

    Edvin

  • Great, sorry the link was incorrect, yes I probably did what you said as I was also looking at the bond management service.

    That's great, so I don't need to do anything else to support multiple peripheral connections except advertise again after connection?

    Also, what is the limit on the number of peripheral connections?

    Why is the example marked as experimental, is this functionality not ready for production? If not, what are the known issues? When will it be?

  • The only difference is that it advertises again, as you said, and it has to keep track of the connection handles (conn_handle). You will see how it is done in the example.

    There is a limit of 20 connectinos, as stated here. Note that this takes up a lot of memory, so you might not be able to maintain all 20 of them, but at least no more than 20.

    New projects are marked as experimental. This means that it is a relatively new addition in the SDK. They are often set as experimental for a few SDK versions, because we tend to get some reports back (from among other you here on DevZone), which reveal bugs. It has been tested quite good already, to make it into the SDK. Note that the SDK is not something that is "production ready". It is mostly examples on how to implement things, but it is often used in production.

    Best regards,

    Edvin

Related