Using high precision measurement in Nordic Distance Toolbox

Hey,

I watched webinar with presentation of NDT and a Lidar as a reference data and if looks quite impressive for high precision calc method.
We are using 7002 DK and we would like to really see how it works. Currently we did some testing for IFFT method from nrf-sdk samples, but as it was said in webinar these result are not trustworthy for wide measurement ranges.

However, i haven't seen example usage of nrf_dm_high_precision_calc() function in sdk, or github.
I know that there is a need of calling nrf_dm_populate_report but i still fail using this with sdk 2.5.0.
Could you maybe share a piece of code, where you present how to properly use these tools for high precision distance measurement?
It could be for other target or SDK version, i just need a start point.It could be the code, that you use for webinar measurement with roll camera :)

We are eager to test it and try to auto-map 5x5 nrf device matrix in large space with coodrdinates, but for this purpose we need as precise result as possible.
Of course, we could share our results of this experiments.

Thanks!

  • Maybe useful input is when currently we use DM sample, our measurement looks like this:
    Distance estimates: mcpd: high_precision=nan ifft=0.29 phase_slope=2.60 rssi_openspace=2.51 best=0.29

    It's nrf 2.5.0 sdk version
    These NaNs are present in high_precision in 95% of measurements. 5% it seems to measure probable value.

    We use DM sample from nrf-sdk, and:
    NRF5340-7002DK board is a initiator
    NRF52840DK is a Reflector.

    I deliver more precise data, as im not really sure what is the cause. Sample code wasn't modified except this device role parameter.
    Please share with me if you have any idea.
    Thanks :)


  • Hello,

    However, i haven't seen example usage of nrf_dm_high_precision_calc() function in sdk, or github.
    Could you maybe share a piece of code, where you present how to properly use these tools for high precision distance measurement?

    I think it should be added to the rest of the estimates as long as you enable CONFIG_DM_HIGH_PRECISION_CALC, which is enabled in the sample by default. You can see how nrf_dm_high_precision_calc() is used in nrf/subsys/dm/dm.c.

    Dymek117 said:

    These NaNs are present in high_precision in 95% of measurements. 5% it seems to measure probable value.

    Hmm I see. nrf_dm_high_precision_calc can sometimes return NaN when it is not able to do an estimation with the measurements provided. The algorithm uses these tone_sinr_indicators to determine the quality of collected IQ measurements. If multiple of the tones are of quality worse than medium then the nrf_dm_high_precision_calc will likely return NaN. 

    You could look into the quality of these on your side, but if your main goal is to try it out then lets not start out with that. I've only personally tried this out on my desk, and I've never seen the high precision mode returning NaN before myself. Could you expand a bit on how you are testing it and what the environment looks like?

    I've heard of another customer running into this issue in a building with a lot of concrete structures, which might've made the reflections strong, and little line of sight.

    Regards,

    Elfving

  • Hey, thank you for answer. 

    You explained my fear that I’m not actually using precise calc. But it seems that sample use this by default. 

    All these NaNs are present during test in very stable conditions - same room, no walls between, two different desks or devices lying on the floor. But the building is made in concrete and steel. 
    On Monday i will proceed test in open space and also try to change the hardware Slight smile

    Anyway for now we know, that there is no problems in software. 

  • Dymek117 said:
    But the building is made in concrete and steel. 

    Im not saying that concrete and steel should imply that you get bad results, though that a lot of concrete structures (and maybe no line of sight) was the reasoning behind why a previous customer had similar results. 

    Dymek117 said:

    On Monday i will proceed test in open space and also try to change the hardware Slight smile

    Great, give that a go. Im surprised that a very controlled environment like what you describing should get this bad results. I've never experienced that myself.

    Any reason why you are not simply running the default sample, just for the test?

    Regards,

    Elfving

  • Actually I am, but should I define in code Reflector and Initiator roles for each devices?
    Or rather both of them can be Initiators?

Related