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.

CC1352P: 2 Sensor Reconnection Issues

Part Number: CC1352P
Other Parts Discussed in Thread: CC2652P, SYSCONFIG

Hi,

I am using 2 slaves with CC2652P and a Central/ Master device to receive 20 Byte of data from Slaves at every 10 ms (real time).

I am facing reconnection issues with the devices. The devices are not able to reconnect. The same goes by using 3,4 slaves also.

Once disconnected and connected back it does not sends the data though it reconnects to the Master.

Following are the details :

1. Update Connection Timeout (ms) - 100 ms as I want it to disconnect asap.

2. Parameter Update Delay (ms) - 500 ms as I want to see the data asap once reconnected.

With both the above options if I keep it to default 6000 ms then if the sensor disconnects again after reconnection in this time period of 6 seconds the slave takes 20 seconds to reconnect again.

3. Connection Interval Slave : 12.5 min - 15 max

4. Connection Interval Master : 12.5 min - 42.5

Queries : 

1. Why am I not able to reconnect the sensor even using 2 sensors.

2. Why sometime the sensor reconnect but fails to send the data.

3. Why are the sensor taking 20 seconds to reconnect back if sensor reconnects in Update Connection Timeout (ms) timeperiod or Parameter Update Delay (ms) timeperiod.

4. Is the issue with connection interval ? Is it ok to give both slaves different connection interval will this solve the issue.

5 Can you suggest some connection Interval as I am unable to understand this problem at all.

6. I saw mulitple place where the Connection Interval is used can you please help me understand it.

Place 1 Inside 
Peripheral Configuration Configure Peripheral Role Settings



Place 2

Inside Broadcaster Configuration Configure Broadcaster Role Settings - Scan Response 1 and 2 both place...


 

My Major concern is the reconnection. Can you please help. 

SDK used - simplelink_cc13x2_26x2_sdk_4_10_00_78



Regards,
Ankit Tomar

  • Hi,

    Thank you for reaching out.

    First off, I would strongly recommend to migrate to a newer SDK - at the moment SDK 5.40 is available here: https://www.ti.com/tool/download/SIMPLELINK-CC13XX-CC26XX-SDK

    The simple_peripheral example is configured to send a connection parameters update after the connection is established. In general, the connection parameters update is used to establish the connection with a short connection interval to exchange all the initial data. Afterwards, the connection interval is set back to a larger interval to save energy. In your case, it looks like you want to keep the same connection interval all the time, so the connection parameters update is not required. In the newer SDKs, you can disable the connection parameters update through SysConfig.

    After you have migrated to a newer SDK, you can verify if the problem persists. If it persists, you may want to use a BLE sniffer and possibly the debugging guide.

    I hope this will help,

    Best regards,

  • Hi Clement,

    Thank you for the reply.

    I tried keeping the connection interval same in all the cases as well.

    So keeping Connection Update Request Params and Peripheral Configuration Configure Peripheral Role Settings same but that doesn't work at all.

    Do you think going to new sdk will solve the reconnection issues.


    Also can you throw some light on expected connection interval if I am wrong here. I tried connection interval of 7.5 to 12 ms but I am unable to get data at all.

    I want to connect 4 slave to a Central device. I want to send data every 10 ms from all 4 slave without much data loss and proper reconnection as the environment s harsh and we see multiple disconnection.


    Regards,
    Ankit Tomar

  • Hi,

    I definitely recommend to leverage the newest SDK available. I cannot guarantee it will solve your issue - I do not have enough details to comment on this point - but the qualification process will be easier (no extra test evidence required for Erratum 10734 and 11838) and the validity of the QDID is longer. On the top of that, it is easier to migrate SDK while you are at the beginning of your project rather than waiting for longer time.

    Best regards,

  • Hi,

    Unfortunately we are done with the project development. Changing SDK will cause lot of changes.

    Can you provide any guide for SDK change will look for it.

  • Hi,

    You can refer to https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_5_40_00_40/docs/ble5stack/ble_user_guide/html/ble-stack-5.x-guide/migration-cc13xx_cc26xx.html

    Generally speaking, if it is low effort, it might be interesting to run a few tests with the newest SDK, that way you could assess if you are affected by an existing bug that has been addressed.

    Regards,

  • Hello Clement,

    Thanks for the answer. I will try to use latest version of SDK.

    Can you please tell me why my BLE is not sending data if it disconnects and connects back in the Connection Timeout period.



    For Ex. If my Update Connection Timeout is 200 ms and If my Slave device disconnects and reconnects in this time period so the slave takes around 20 seconds to disconnect and then reconnect and send data again.
    The same goes with Parameter Update Delay (ms).




    For Ex. If the Parameter Update Delay (ms) is set to 1 seconds and after reconnection if the device is disconnected within the 1 second after reconnection it takes another exact 20 seconds to disconnect and then reconnect and send data again and if the same is done after 1 sec (Parameter Update Delay (ms)) it sends data within 2 seconds properly.

    Regards,
    Ankit Tomar

  • Hi Ankit,

    1. Can you reproduce the issue with just one sensor?

    2. Is the connection broken, or are you deliberately disconnecting when this happens? 

    3. If disconnecting: Is the command sent from the sensor or central?

    4. It would be extremely useful to see what's going on over the air in this case. Can you use TI Packet sniffer 2 to capture a sniffer log?

    https://www.ti.com/tool/PACKET-SNIFFER

    Cheers,

    Marie H

  • Hello Marie,

    I am disconnecting it by removing supply.

    I will try to use packet sniffer.


    I have few doubts can you please let me know

    What is the difference between 

    Peripheral Configuration Configure Peripheral Role Settings - Connection Interval

    Connection Update Request Params - Connection Interval

    and

    Advertisement Set 1 - Scan Response Data 1 - Connection Interval


    I saw good reconnectivity when using a long range 12.5 - 42.5 ms connection interval but the frequency dropped and got good freq when using 12.5-15 ms but the reconnectivity dropped. In both cases I want data in 10 ms time period while using case 1 the data is spread and not in 10 ms window, while doing case 2 the data window is good within 9-11 ms.


    I guess there is something wrong with connection interval which is causing this issue. Hence I am throwing light on connection interval. Can you explain the above 3 points to me.


    Thanks and regards,
    Ankit Tomar


  • Hi Ankit,

    For your questions I recommend reading through the SimpleLink Academy lab on Bluetooth Connections, especially Task 5:

    https://dev.ti.com/tirex/explore/node?node=AGH2hymWdy6qIWpn-9Em1w__BSEc4rl__LATEST

    If you reconnect by removing power on the peripheral device, the central device will still assume the device is connected. The timeout value for the central is called supervision timeout and can be adjusted in SysConfig. Since the central thinks the peripheral is still connected I assume it would not try to reconnect to the same peripheral.

    You can read more about GAP parameters such as supervision timeout in the User's Guide:

    https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_5_40_00_40/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/gap-cc13xx_cc26xx.html 

    Cheers,

    Marie H