This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2340R5: Conflicts between multi-connection and channel sounding ranging

Part Number: CC2340R5

Using the simplelink_lowpower_f3_sdk_9_14_00_41, with cc2340R53 as the reflector (key_node) and cc2745 as the initiator (car_node). I set the "Max Number of Connections" value to enable the slave device to support multiple connections. When the Max Number of Connections is 1 and 1 central device connected, the distance transmission callback value can be read. When the Max Number of Connections is 2 and 2 central device connected, the upper computer can only see the message "Waiting for NWP_CS_APP_DISTANCE_RESULTS", but it cannot wait for the returned value.

I found that there is such a piece of code in app_key_node.c of the key_node:

 case CS_SECURITY_ENABLE_COMPLETE_EVENT:
        {
        // Assume reflector
        // call default settings
        ChannelSounding_setDefaultSettingsCmdParams_t params; // TODO
        params.connHandle = 0;              //!< Connection handle
        params.roleEnable = 3;              //!< Role enable flag
        params.csSyncAntennaSelection = 1;  //!< CS sync antenna selection
        params.maxTxPower = 10;             //!< Maximum TX power in dBm
        ChannelSounding_setDefaultSettings(&params);
        break;
        }
Therefore, I believe that even if multiple connections were established, the channel sounding with the first connected host should at least be normal. However, in reality, the upper computer failed to receive the ranging results.
To solve this problem, I increased the Heap Size of FreeRTOS and confirmed that the broadcast had stopped during the channel sounding distance measurement. Moreover, when multiple connections were established, all other functions except for the channel sounding were normal.
  • Hello,

    Thank you for reaching out and for your feedback! I will make sure to relay this message to the team.

    To be clear, is your issue solved?

    Best Regards,

    Tarek D

  • Thank you for your reply. The issue still hasn't been resolved.

    Jiahao Fan

  • Additionally, a point to add: In app_ranging_server.c, after adding breakpoints for testing, it was found that:
    uint8_t AppRRSP_CsSubEvent(ChannelSounding_subeventResults_t *pAppSubeventResults)
    {
    uint8_t status = INVALIDPARAMETER;
    Ranging_RangingHeader_t rangingHeader;

    // Check if the connection handle is registered to the RAS service
    if ( (pAppSubeventResults != NULL) &&
    (RRSP_RegistrationStatus(pAppSubeventResults->connHandle) != RRSP_UNREGISTER) )
    {
    status = SUCCESS;

    // Accept these results only if the procedure wasn't aborted
    if (pAppSubeventResults->procedureDoneStatus == CS_PROCEDURE_ABORTED)
    {
    status = FAILURE;
    }
    ...

    When allowing more than two connections, an issue was found: procedureDoneStatus returns 15 (CS_PROCEDURE_ABORTED), regardless of whether one or two connections have been established. It is suspected that this might be caused by broadcasting or maintaining multiple connections, which could occupy the CS window and cause the CS procedure to fail midway.

    The above is a hypothesis based on my experiments, and other situations cannot be ruled out.

    Thank you.
    Jiahao Fan
  • Hey Jiahao,

    Sounds good, thanks for providing the info. I will look into this and get back to you. Expect another reply within 24 hours.

    Best Regards,

    Tarek D

  • Hey Jiahao,

    I looked into this and this issue is not present in the latest SDK. Could you please test the latest and let me know? Here's the download link: https://www.ti.com/tool/download/SIMPLELINK-LOWPOWER-F3-SDK/9.14.02.16

    Best Regards,

    Tarek D

  • Hi Tarek,

    I migrated my code according to the version you mentioned and found that the issue has been resolved. Your explanation was correct.

    Additionally, there is another issue. When using LOWPOWER-F3-SDK_9.14.02.16, the ranging results always return a quality value of 0. In the previous SDK version, this field had a non-zero value. I am not sure whether you have observed the same situation.

    Below are the channel sounding ranging results:

    ***** procedure enable *****
    Procedure Enable
    ----------------------------------------------------------------------
    _io: []
    event: 68
    status: 0
    conn_handle: 0
    config_id: 0
    enable: 1
    aci: 0
    pwr_delta: 10
    sub_event_len: 55000
    sub_events_per_event: 1
    sub_event_interval: 0
    event_interval: 2
    procedure_interval: 0
    procedure_count: 1
    ----------------------------------------------------------------------
    Waiting for NWP_CS_APP_DISTANCE_RESULTS
    Distance Results - initiator
    ----------------------------------------------------------------------
    _io: []
    event: 96
    status: 0
    connHandle: 0
    distance: 68
    quality: 0
    confidence: 100
    ----------------------------------------------------------------------

    Thank you, Best wishes,

    Jiahao Fan

  • Hey Jiahao,

    I believe this is a known limitation as of right now, but it should be fixed in the next release. The performance has improved significantly from the 9_14_00_41 SDK that you were originally using.

    I hope this helps!

    Best Regards,

    Tarek D