Questions about the distance measurement mesh model

Hello

My application is based on the Distance measurement sample which uses a BLE  scan response callback to trigger the measurement synchronization sequence in reflector mode and scan callback to trigger synchronization sequence in  initiator mode. With the Distance mesh model the measurement sequence is started with the bt_mesh_dm_cli_measurement_start API

It seems that simply calling this API every time a scan packet arrives is going to overwhelm the mesh network. On the other hand it would be great to receive more than one measurement so averaging can be applied. What's your recommendation on how frequently should  bt_mesh_dm_cli_measurement_start API be called?
Also

There is an API bt_mesh_dm_cli_results_get() which returns the measurement results.

However the results are available in the bt_mesh_dm_cli_measurement_start() callback. 
Can you clarify when this function should be called?

Do you plan to add a sample how the DM model should be used? That would very helpful

Thank you

Andy

Parents
  • One other  thing
    There are 2 API's in the DM library 

    nrf_dm_calc() and 
    nrf_dm_high_precision_calc()
    It would be great to  have a parameter to  control which one is used
  • Hi,

    I will ask the Mesh developers about your questions and if we've planned a sample, so I'll get back to you when I hear from them

    Kind regards,
    Andreas

  • Hi,

    Here is the result of the conversation I had with the Mesh developers.

    Do you plan to add a sample how the DM model should be used? That would very helpful

    Currently we don't have any official samples planned. I will look into it and see if I can create an unofficial sample, but I can not guarantee anything w.r.t. time horizon and/or if it ever will be done.

    It seems that simply calling this API every time a scan packet arrives is going to overwhelm the mesh network. On the other hand it would be great to receive more than one measurement so averaging can be applied. What's your recommendation on how frequently should  bt_mesh_dm_cli_measurement_start API be called?

    We imagine distance measurement to be used not so often. Since, mesh nodes (such as lights) are often static, this feature could be useful during initial deployment of the network to find out topology of the network. At that time feature can be used to map-out the whole network and relative positions of the devices. You need to be aware that when distance measurement is being done the node cannot participate in mesh network operation as distance measurement library takes control of the radio to do the measurement. After network is deployed, distance measurement can be done say once in a day, or only where there is change in the network (like replacing devices). If the devices move around, DM can be triggered when, for example, accelerometer detects the movement. It really depends on the use case and imagination.

    It is up to you as a developer to decide how to use the function calls to suit your applications/designs needs, but as mentioned there are limitations such as the operation node cannot participate in the mesh communication during DM ranging. 

    There is an API bt_mesh_dm_cli_results_get() which returns the measurement results.

    However the results are available in the bt_mesh_dm_cli_measurement_start() callback. 
    Can you clarify when this function should be called?

    bt_mesh_dm_cli_results_get() allows client to fetch several past measurements from the server at later point.

    bt_mesh_dm_cli_measurement_start() will start the measurement and provide results for 'that' measurement.

    Let me know if this answers your questions!

    Kind regards,
    Andreas

Reply
  • Hi,

    Here is the result of the conversation I had with the Mesh developers.

    Do you plan to add a sample how the DM model should be used? That would very helpful

    Currently we don't have any official samples planned. I will look into it and see if I can create an unofficial sample, but I can not guarantee anything w.r.t. time horizon and/or if it ever will be done.

    It seems that simply calling this API every time a scan packet arrives is going to overwhelm the mesh network. On the other hand it would be great to receive more than one measurement so averaging can be applied. What's your recommendation on how frequently should  bt_mesh_dm_cli_measurement_start API be called?

    We imagine distance measurement to be used not so often. Since, mesh nodes (such as lights) are often static, this feature could be useful during initial deployment of the network to find out topology of the network. At that time feature can be used to map-out the whole network and relative positions of the devices. You need to be aware that when distance measurement is being done the node cannot participate in mesh network operation as distance measurement library takes control of the radio to do the measurement. After network is deployed, distance measurement can be done say once in a day, or only where there is change in the network (like replacing devices). If the devices move around, DM can be triggered when, for example, accelerometer detects the movement. It really depends on the use case and imagination.

    It is up to you as a developer to decide how to use the function calls to suit your applications/designs needs, but as mentioned there are limitations such as the operation node cannot participate in the mesh communication during DM ranging. 

    There is an API bt_mesh_dm_cli_results_get() which returns the measurement results.

    However the results are available in the bt_mesh_dm_cli_measurement_start() callback. 
    Can you clarify when this function should be called?

    bt_mesh_dm_cli_results_get() allows client to fetch several past measurements from the server at later point.

    bt_mesh_dm_cli_measurement_start() will start the measurement and provide results for 'that' measurement.

    Let me know if this answers your questions!

    Kind regards,
    Andreas

Children
Related