Support distance measurement for long range

Hi

I am working on a project which uses distance measurement config for multiple peripherals with long range.

Our plan is to support DM for up to range 25m and we observed disconnect issue at 5-10m range. We also tried PHY with LE-CODED enabled and if it is enabled, the DM will not work as we do not read any result at all.

May I know is DM supported with LE-CODED enabled, or do we need to config anything to do so.

We are using NRF Connect SDK V2.7.0

Let me insert out prj file for better reference

# CENTRAL
CONFIG_BT=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_SCAN=y
CONFIG_BT_SCAN_FILTER_ENABLE=n
CONFIG_BT_MAX_CONN=5
# Allow to read RSSI for the connected peripheral
CONFIG_BT_CTLR=y
CONFIG_BT_CTLR_CONN_RSSI=y

# PERIPHERAL
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME="Notify"
CONFIG_BT_PER_ADV=y
CONFIG_BT_SETTINGS=y
CONFIG_BT_GATT_CLIENT=y
CONFIG_BT_GATT_CACHING=n
CONFIG_BT_L2CAP_TX_MTU=252
CONFIG_BT_BUF_ACL_RX_SIZE=256
CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=600
CONFIG_BT_PERIPHERAL_PREF_MIN_INT=120
CONFIG_BT_PERIPHERAL_PREF_MAX_INT=160
CONFIG_BT_PERIPHERAL_PREF_LATENCY=2
CONFIG_OPENTHREAD_DEFAULT_TX_POWER=8
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y

# PHY Coded enable for long range
# CONFIG_BT_PHY_UPDATE=y
CONFIG_BT_CTLR_PHY_CODED=y
CONFIG_BT_USER_PHY_UPDATE=y
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_EXT_ADV=y

# Distance Measurement
CONFIG_DM_MODULE=y
CONFIG_DM_GPIO_DEBUG=y
CONFIG_DM_HIGH_PRECISION_CALC=y
CONFIG_DM_INITIATOR_DELAY_US=2000
CONFIG_DM_RANGING_OFFSET_US=100000
CONFIG_DM_MIN_TIME_BETWEEN_TIMESLOTS_US=100000
CONFIG_DM_TIMESLOT_QUEUE_COUNT_SAME_PEER=3
CONFIG_MPSL=y
CONFIG_MPSL_TIMESLOT_SESSION_COUNT=3
CONFIG_MPSL_WORK_STACK_SIZE=8192

CONFIG_SETTINGS_NONE=y
CONFIG_SETTINGS=y

CONFIG_NEWLIB_LIBC=y
CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE=1024

# Use internal clock source
CONFIG_CLOCK_CONTROL_NRF=y
CONFIG_CLOCK_CONTROL=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y

# Enable PWM buzzer module
CONFIG_PWM=y
CONFIG_NRFX_PWM1=y
CONFIG_NRFX_PWM2=y

# Enable ADC
CONFIG_ADC=y

# Enable NVS
CONFIG_NVS=y

CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y

CONFIG_REBOOT=y

# Below configurations to enable DFU
# Enable mcumgr.
CONFIG_NCS_SAMPLES_DEFAULTS=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU_SPEEDUP=y
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_SIGN_IMAGES=y
CONFIG_SECURE_BOOT=y
CONFIG_SB_SIGNING_KEY_FILE="priv_key.pem"

# Some command handlers require a large stack.
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096

# power management
CONFIG_PM_DEVICE=y

Parents
  • Hi

    You can not use the Coded PHY for synchronization or ranging as these are time sensitive processes that will be hindered by the Coded PHY here. Can you describe this disconnect issue on your end, and what environment you're testing in? In a low-noise environment I think you should at least be able to sustain a connection at up to 25m although the accuracy of the rangings might degrade somewhat.

    Best regards,

    Simon

Reply
  • Hi

    You can not use the Coded PHY for synchronization or ranging as these are time sensitive processes that will be hindered by the Coded PHY here. Can you describe this disconnect issue on your end, and what environment you're testing in? In a low-noise environment I think you should at least be able to sustain a connection at up to 25m although the accuracy of the rangings might degrade somewhat.

    Best regards,

    Simon

Children
  • Hi Simonr,

    Sorry for the late reply, we were working on other high priority task.

    Thank you for your reply, we are testing on office environment, I cannot say it complete low noise environment, we have only a few obstacles like 5-10 PCs and 3 workstations and not a more noisy environment too.

    If I cannot use the coded PHY then what else can I configure to get long range. I am not expecting 100s of meter I just need at least 20-25m in an real world environment.

    Can I get that?

Related