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

Send commands to 2 different groups in BLE Multi-link

Hi all,

I am extending the BLE Multi-link example from SDK 15.2.0 in order to have some characteristics as BLE Mesh. I would like to use UUID filter to scan all peripherals around for connecting and then send the different commands to 2 different groups. For example, turn on the LED 3 on the peripherals whose name are listed in the target peripheral name table and turn on LED 4 on all others connected peripherals.

But I still haven't found a solution to do from the examples in BLE SDK.  I see only the function filter scan for selective connection. So, I would like to know how I can realize it.

Could someone help me.
Many thanks in advance.

  • If you intend to use GATT then you need to create a service that fits your use case.

    Why can't you use Mesh?

  • Hi haakonsh,

    I don't want to use mesh because I need to load many functions on the peripheral devices (for example NFC BLE pairing). So, I would like a solution as simple as possible. On the other hand, it looks like that BLE Mesh will consume much more power than BLE SDK.

  • Mesh networks requires some nodes that are always in radio receive mode, so if you can't use a few devices to relay the information to leaf nodes then mesh is not suitable for you. BLE Mesh networks does use encryption through the provisioning process, where a Provisioner device decides who gets to join the network, this provisioning process can be done OOB like of NFC. 

    If mesh is not a good fit then you need to create a suitable GATT service, and base the UUID filtering on this service's UUID. A control characteristic can be used to assign a group or role to the peripherals, and one or more characteristics can be used to transfer data to the various groups or roles.

  • Hi haakonsh,

    Thank you for your answer

    Could you explain more detail about: "A control characteristic can be used to assign a group or role to the peripherals, and one or more characteristics can be used to transfer data to the various groups or roles."

    In fact, I have an idea to realize my example. I need to get the device name of the peripheral from the advertising report. I have tried some ways (for example, call "sd_ble_gap_device_name_get" or search inside "nrf_ble_scan_on_adv_report") but failed. Could you show me how to do that. Ideally, I would like to get the device name of the '_evt->conn_handle' inside "_EVT_DISCOVERY_COMPLETE".

  • If you know the names of your devices beforehand then you can add them to the Scanner modules name filter. That way you will only receive advertising reports from those devices and you can then choose to connected to those devices. See Scanning Module docs and Scanning Module API reference.

    I belive sd_ble_gap_device_name_get will only return the name of the device that is executing that function. 

Related