Adjust NCS Channel Sounding samples to support multiple RF paths

We're using two nrf54:s, one DK (initiator) and one custom PCB with 2x antennas (reflector)

I've tried adjusting the samples so that multiple antenna paths are supported: 

```

#Reflector

CONFIG_BT_RAS_MODE_3_SUPPORTED=n
CONFIG_BT_RAS_MAX_ANTENNA_PATHS=2
CONFIG_BT_CTLR_SDC_CS_MAX_ANTENNA_PATHS=2
CONFIG_BT_CTLR_SDC_CS_NUM_ANTENNAS=2
CONFIG_BT_CTLR_SDC_CS_STEP_MODE3=n
CONFIG_BT_CTLR_SDC_CS_ROLE_REFLECTOR_ONLY=y

# Initiator

CONFIG_BT_RAS_MODE_3_SUPPORTED=n
CONFIG_BT_RAS_MAX_ANTENNA_PATHS=2
CONFIG_BT_CTLR_SDC_CS_MAX_ANTENNA_PATHS=2
CONFIG_BT_CTLR_SDC_CS_NUM_ANTENNAS=1
CONFIG_BT_CTLR_SDC_CS_STEP_MODE3=n
CONFIG_BT_CTLR_SDC_CS_ROLE_INITIATOR_ONLY=y

```

...and then in each config struct, change 

```

- .tone_antenna_config_selection = BT_LE_CS_TONE_ANTENNA_CONFIGURATION_A1_B1,
+ .tone_antenna_config_selection = BT_LE_CS_TONE_ANTENNA_CONFIGURATION_A2_B1,

```

but I've also tried A1_B2 - with A1_B2 I get hci status 0x12 (-EINVAL basically) so I guess A2_B1 is correct, but that gives hci status 0x0d:

```

uart:~$ [00:21:38.045,606] <wrn> bt_hci_core: opcode 0x2093 status 0x0d
```

and `bt_le_cs_set_procedure_parameters` returns -ENOMEM. There's a comment about needing more RAM if multipath is used, but no clarification which buffer or which Kconfig governs it. So is it possible to get a minimal working sample instruction on how to get the CS samples to work with a 2x1 antenna path setup?

Parents
  • Hi Benjamin

    I tested this this morning, and here are the configurations necessary to enable multiple antenna paths for ranging: https://github.com/eriksandgren/sdk-nrf/commit/df798b95f9757f8cfa0c7710278475dae6868596 

    This should be the correct config for an initiator with one antenna (DK) and a reflector with 2 antennas. I'm able to get two antenna paths of ranging data on my end with these changes to the NCS 3.1.1 version of the SDK sample: 

    I: Dropped subevent results. Waiting for ranging data from peer.
    I: Distance estimates on antenna path 0: ifft: 4.406522, phase_slope: 5.853800, rtt: 2.775757
    I: Distance estimates on antenna path 1: ifft: 3.952342, phase_slope: 5.445658, rtt: 2.775757
    I: Sleeping for a few seconds...
    I: Distance estimates on antenna path 0: ifft: 1.322814, phase_slope: 5.992800, rtt: 2.797582
    I: Distance estimates on antenna path 1: ifft: 4.098725, phase_slope: 5.508000, rtt: 2.797582
    I: Sleeping for a few seconds...
    I: Dropped subevent results. Waiting for ranging data from peer.
    I: Distance estimates on antenna path 0: ifft: 3.220427, phase_slope: 4.946180, rtt: 1.918163
    I: Distance estimates on antenna path 1: ifft: 4.098725, phase_slope: 5.308986, rtt: 1.918163
    I: Sleeping for a few seconds...
    I: Dropped subevent results. Waiting for ranging data from peer.
    I: Distance estimates on antenna path 0: ifft: 2.654916, phase_slope: 4.946180, rtt: 2.280774
    I: Distance estimates on antenna path 1: ifft: 4.098725, phase_slope: 5.252340, rtt: 2.280774

    Best regards,

    Simon

Reply
  • Hi Benjamin

    I tested this this morning, and here are the configurations necessary to enable multiple antenna paths for ranging: https://github.com/eriksandgren/sdk-nrf/commit/df798b95f9757f8cfa0c7710278475dae6868596 

    This should be the correct config for an initiator with one antenna (DK) and a reflector with 2 antennas. I'm able to get two antenna paths of ranging data on my end with these changes to the NCS 3.1.1 version of the SDK sample: 

    I: Dropped subevent results. Waiting for ranging data from peer.
    I: Distance estimates on antenna path 0: ifft: 4.406522, phase_slope: 5.853800, rtt: 2.775757
    I: Distance estimates on antenna path 1: ifft: 3.952342, phase_slope: 5.445658, rtt: 2.775757
    I: Sleeping for a few seconds...
    I: Distance estimates on antenna path 0: ifft: 1.322814, phase_slope: 5.992800, rtt: 2.797582
    I: Distance estimates on antenna path 1: ifft: 4.098725, phase_slope: 5.508000, rtt: 2.797582
    I: Sleeping for a few seconds...
    I: Dropped subevent results. Waiting for ranging data from peer.
    I: Distance estimates on antenna path 0: ifft: 3.220427, phase_slope: 4.946180, rtt: 1.918163
    I: Distance estimates on antenna path 1: ifft: 4.098725, phase_slope: 5.308986, rtt: 1.918163
    I: Sleeping for a few seconds...
    I: Dropped subevent results. Waiting for ranging data from peer.
    I: Distance estimates on antenna path 0: ifft: 2.654916, phase_slope: 4.946180, rtt: 2.280774
    I: Distance estimates on antenna path 1: ifft: 4.098725, phase_slope: 5.252340, rtt: 2.280774

    Best regards,

    Simon

Children
No Data
Related