Question about identifying active antenna indices and IQ sample logging impact on ranging (nRF54L15 Channel Sounding)

I am currently working with the Channel Sounding sample on the nRF54L15 DK boards (SDK and toolchain v3.1.1) and using Nordic’s multiple-antenna support as described here: docs.nordicsemi.com/.../channel_sounding.html

I am operating in multiplexing mode with four antennas on the Initiator and one antenna on the Reflector. However, I am struggling to determine which specific antenna on the Initiator side is used for each path. I have already identified the antenna permutation and successfully logged it, but I would like to know if it is also possible to log the index of the currently active antennas.

This becomes particularly interesting in a 2-to-2 antenna configuration, where it would be very useful to see which antenna is used at a given time. The antennas I am using have different polarizations, so knowing the active antenna is especially important for my analysis.

I have also applied the recommendations and updates mentioned in this DevZone thread:
https://devzone.nordicsemi.com/f/nordic-q-a/124064/channel-sounding-and-more-antenna-paths  for channel sounding with multiple antennas.

One more question: if I additionally log the IQ samples from both the Initiator and the Reflector, could this affect the ranging performance in any way, since logging these samples might take additional time?

Any guidance or insight on how to access or log the active antenna index — and whether IQ sample logging has any measurable impact on the ranging process — would be greatly appreciated.




Parents Reply
  • Hello,

    This is the reply I got from our Channel sounding team, including some background info:

    ----------------------------------------

    First of all, all antenna paths are used in every CS step mode 2, meaning all antennas will be used in every step. If you are using the default T_PM = 10µs and the required T_SW = 10µs, then the antennas may be switched at an interval of 20µs during the mode 2 step. From the application point of view there is not "currently" active antenna, all of this happens in high priority context handled by the controller.  If possible you can connect a logic analyzer to the GPIOs which are controlling the antenna switch (https://github.com/nrfconnect/sdk-nrf/blob/df039990cdc5b0187459a83995fa7d61a8afe44a/samples/bluetooth/channel_sounding_ras_initiator/boards/nrf54l15dk_nrf54l15_cpuapp.overlay#L7-L17) to view the exact times of switching. 

     

    For the 2:2 configuration there are four antenna paths, N_AP=4, and each antenna path is defined as follows: AP1 is assigned to 1:1, AP2 is assigned to 1:2, AP3 is assigned to 2:1 and AP4 is assigned to 2:2.  Where the notation x:y corresponds to antenna x on initiator,  antenna y on reflector. (Reference: Core Spec Version 6.2 Vol 6 Part A Section 5.3
    Antenna Switching for Channel Sounding). 

     

    Furthermore, the antenna path permutation index corresponds to a certain sequence in which the antenna paths will be activated during a CS step according to Table 4.15 in Core Spec Version 6.2 Vol 6 Part H Section 4.7.5 Antenna path permutations. By the way, I think the entire Section 4.7 Phase measurements with antenna switching, might be of interest.

     

    Note that it is this function

    https://github.com/nrfconnect/sdk-nrf/blob/df039990cdc5b0187459a83995fa7d61a8afe44a/subsys/bluetooth/controller/cs_antenna_switch.c#L74-L98

    that is used by the controller to switch to a given antenna (indexed from 0 unlike the description above/ in spec). 

     

    Finally after collecting results from both the initiator and reflector the IQ values measured during a CS procedure for each antenna path is stored here: 

    https://github.com/nrfconnect/sdk-nrf/blob/a7e36dcbea5d835baea5e96ea80d0b7955e296fd/include/bluetooth/cs_de.h#L78-L79

     

    In the example of a 2:2 configuration

    • iq_tones[0] contains IQ data from AP1 (antenna 1 on initiator,  antenna 1 on reflector)
    • iq_tones[1] contains IQ data from AP2 (antenna 1 on initiator, antenna 2 on reflector)
    • iq_tones[2] contains IQ data from AP3 (antenna 2 on initiator,  antenna 1 on reflector)
    • iq_tones[3] contains IQ data from AP4 (antenna 2 on initiator,  antenna 2 on reflector)

    ----------------------------------------

    Best regards,

    Edvin

Children
No Data
Related