Summary
I'm finding the DM subsystem's individual ranging calculations fail around 10% of the time (in line-of-sight conditions, around one meter apart). Is this expected?
Test Setup
I have two nRF5340's running a (slightly) modified version of the "nrf_dm" sample with all of the default Kconfig options and Bluetooth scan/advertising settings, except for the following:
CONFIG_DM_TIMESLOT_QUEUE_COUNT_SAME_PEER=1
CONFIG_LOG_MODE_DEFERRED=y
- I'm doing one-directional ranging and using MAC address filters to know when to start ranging.
- Environment is a typical office space with 10-20 nearby laptops and a couple of Wi-Fi routers
- The nRF5340 on the left is the "reflector" and is only advertising.
- The nRF5340 on the right is the "initiator" and is only scanning.
- Most importantly: The application logic ensures only one ranging calculation happens every 3 seconds:
- the "reflector" turns on advertising (timeout = 1000ms) and starts a 3 second timer
- the "reflector" stops advertising after the first call to dm_request_add()
- when the timer expires, the "reflector" starts advertising again and the process repeats
From the "initiator" perspective:
Looking at (Ranging Failures + CRC Failures) / (Ranging Requests): 10.4% failure rate
Looking at (Ranging Failures + CRC Failures) / (Ranging Requests): 11.9% failure rate