Nrf distance Measurement sample Queries(Multi Scanner, Multi Advertiser roles)

Hi Nordic team,

I’ve been working with the nrf_dm sample from NCS 2.9 to perform distance measurements using multiple nRF52840 devices. The sample works well, and I've made some modifications to assign specific roles to the devices, based on this DevZone discussion:


https://devzone.nordicsemi.com/f/nordic-q-a/99676/customising-distance-measurement-using-ndt

Here’s my setup:

  • One nRF52840 DK is configured as an advertiser (reflector).

  • Two nRF52840 dongles are configured as scanners (initiators).

Both scanner devices are able to measure distance to the advertiser, but not simultaneously — when one scanner measures, the other appears idle. I would like to clarify the following:

My Questions:

  1. Is it possible to perform distance measurement with multiple scanners and multiple advertisers using the nrf_dm sample?
    If so, are there any key limitations or best practices to follow?

  2. Given that I need to statically assign roles (scanner/advertiser) to each device, what changes are required to support multiple initiators working reliably with one or more reflectors?

  3. If multiple advertisers are present, can a scanner distinguish which advertiser it is measuring distance to?
    For example, is the peer device address or identifier available in the measurement result?

I’d appreciate your guidance on whether my current approach is valid and what recommendations you have to make multi-device ranging more robust.

Thanks in advance for your support!

Here is what i have changed in the sample.

Changes to make it Advertiser only:

Changes to make it scanner only:

Best regards,

Akbar Shah

  • Hi,

    Is it possible to perform distance measurement with multiple scanners and multiple advertisers using the nrf_dm sample?
    If so, are there any key limitations or best practices to follow?

    It is not possible simultaneously, but it should be possible one after the other. The limitation is that at any one point in time, only one ranging might be in progress, for any device. Further, if there are multiple rangings in the same area, there is a chance they may interfere with each other.

    Given that I need to statically assign roles (scanner/advertiser) to each device, what changes are required to support multiple initiators working reliably with one or more reflectors?

    If your scenario is one of one-to-many (not many-to-many), then I would have a BLE scanner as the "one", and BLE advertisers as the manies. That way, the scanner could keep track of which devices it has already ranged, and which devices are yet to range. For that, you might want to use static addresses on the advertisers, or resolvable addresses which the scanner gets the keys for, or otherwise make the scanner recognize each individual advertiser.

    If multiple advertisers are present, can a scanner distinguish which advertiser it is measuring distance to?
    For example, is the peer device address or identifier available in the measurement result?

    This would better be done in advance, instead of performing ranging and then deciding afterwards whether or not the ranging was needed. There is a bt_addr field in the dm_request structure, and similarly also in the dm_result structure, both of which can be used to keep track of the measurement.

    Regards,
    Terje

    Regards,
    Terje

Related