Channel sounding and more antenna paths

Hi,

I have a question about Channel Sounding:
I want to run the CS procedure with 4antenna paths. Both the reflector and the initiator have 2 antennas. I started with the examples for ras_initiator and reflector from NCS 3_1. I changed these lines in prj.conf:

CONFIG_BT_RAS_MAX_ANTENNA_PATHS=4  
CONFIG_BT_CTLR_SDC_CS_MAX_ANTENNA_PATHS=4  
CONFIG_BT_CTLR_SDC_CS_NUM_ANTENNAS=2  

In the overlay, I set the correct pins for the antenna switch:

ant-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>,
            <&gpio0 2 GPIO_ACTIVE_HIGH>;

In the initiator, I also changed:

.tone_antenna_config_selection = BT_LE_CS_TONE_ANTENNA_CONFIGURATION_A2_B2,
.preferred_peer_antenna = BT_LE_CS_PROCEDURE_PREFERRED_PEER_ANTENNA_1 | BT_LE_CS_PROCEDURE_PREFERRED_PEER_ANTENNA_2,

Yes, I get measured distance results - but each second result is invalid: get  LOG -> Dropped subevent results. Waiting for ranging data from peer.
If I move the reflector more than 1 meter away, this message appears even more often, and at 2 meters I cannot get any measured distance.

To check if the problem is HW or SW, I tried CS with only one antenna path - I manually tested all combinations of antennas and RF paths, and all worked about the same. In a room, I have no problem getting data at 5-6 meters with a 250 ms period. So, single RF paths look OK.
It seems the problem is in the software.

My main question:
Is your example tested with 4 antenna paths? Are the results as reliable as with 1 or 4 paths? The result period is the same for 1 - 4 antenna paths?
Or is it necessary to change anything else to use 4 paths?

Thank you very much for any advice. I really don't know where to look for the problem anymore.

I can share the CS settings - but as I said: It is from your example of ncs 3_1. 

Maybe I should also mention that I only added another semaphore in the ranging_data_cb callback - when I get new data, I release the semaphore, and the main loop prints the new distances immediately when they are available.
So, I do not wait for a delay like in the original example.

Thank you very very much.

Parents
  • I am adding 2 graphs just for interest. I plot the distance from IFFT for all 4 APs (green if at least  one of AP in procedure had CS_DE_TONE_QUALITY_OK / red if == all were BAD - the distance is not updated, it keeps the last valid value). Also, the extracted RSSI is shown in purple.




    There are another 2 graphs. One is for 1 AP, another for 4 AP. Yellow line is "real" distance. We can see the 4AP has a lot of red points.
    1AP:
     

    4AP:

Reply
  • I am adding 2 graphs just for interest. I plot the distance from IFFT for all 4 APs (green if at least  one of AP in procedure had CS_DE_TONE_QUALITY_OK / red if == all were BAD - the distance is not updated, it keeps the last valid value). Also, the extracted RSSI is shown in purple.




    There are another 2 graphs. One is for 1 AP, another for 4 AP. Yellow line is "real" distance. We can see the 4AP has a lot of red points.
    1AP:
     

    4AP:

Children
No Data
Related