nrf_dm question

hi support team,

i saw this ticket: Nordic Distance Measurements 

and i am evaluating about how to set measurement very accuractly, for example, i want two measurements in one second.

my questions are:

1. i don't know how to config those "CONFIG_DM_TIMESLOT_QUEUE_COUNT_SAME_PEER" "CONFIG_DM_TIMESLOT_QUEUE_LENGTH" and the start_delay_us parameter of the dm_request structure

2. as my understanding when INITIATOR call dm_request_add in data_cb function and REFLECTOR call dm_request_add adv_scanned_cb, that means sync ends, is this correct?

3. after dm_request_add send,how can i know when the ranging starts?

Regards,

William.

Parents
  • Hi William

    The first step to get "very accurate" would be to enable high precision calculations with the CONFIG_DM_HIGH_PRECISION_CALC, then do calibration as explained in the sample application

    1. These are defined as TIMESLOT_QUEUE_LENGTH and TIMESLOT_QUEUE_COUNT_SAME_PEER in the timeslot_queue.c files, and they're set in the project's KConfig file.

    2. For the measurement, there is an `nrf_dm_get_duration_us` api, that gives you the duration of the data collection for a given configuration, plus NRF_DM_PROC_EXECUTE_DURATION_OVERHEAD_US, which is the duration of the (non-high-precision) algorithms. You could probably try to run multiple rangings back-to-back and don't go via the syncing step using the advertiser/scanner, if you are interested in ranging a single device.

    3. When a ranging request arrives, the module checs if a timeslot is available and if the request fits in the "schedule" of rangings. When the request is scheduled, the module performs ranging after the time set in CONFIG_DM_RANGING_OFFSET_US option has passed. The ranging is executed within a timeslot. After ranging, a callback is called to store or process the measurement data.

    Best regards,

    Simon

  • Hi Simon,

    the module checs if a timeslot is available and if the request fits in the "schedule" of rangings.

    does this means, we have no way to know when to do ranging? or i can't predict for example the callback in 100ms after i do  dm_request_add ?

    and during this process, i still need to go via the syncing step using the advertiser/scanner for the next slot?

    which mean current is high and mcu is not go to idle.

     

    You could probably try to run multiple rangings back-to-back and don't go via the syncing step using the advertiser/scanner, if you are interested in ranging a single device.

    customer does interest in range car key for auto-unlocking the car tech, i do not understand how to "not go via sync".

    and what do you mean "run multiple rangings back-to-back", does it mean adding dm_request_add for multi times?

    Regards,

    William.

Reply
  • Hi Simon,

    the module checs if a timeslot is available and if the request fits in the "schedule" of rangings.

    does this means, we have no way to know when to do ranging? or i can't predict for example the callback in 100ms after i do  dm_request_add ?

    and during this process, i still need to go via the syncing step using the advertiser/scanner for the next slot?

    which mean current is high and mcu is not go to idle.

     

    You could probably try to run multiple rangings back-to-back and don't go via the syncing step using the advertiser/scanner, if you are interested in ranging a single device.

    customer does interest in range car key for auto-unlocking the car tech, i do not understand how to "not go via sync".

    and what do you mean "run multiple rangings back-to-back", does it mean adding dm_request_add for multi times?

    Regards,

    William.

Children
No Data
Related