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.

LAUNCHXL-CC26X2R1: connection parameters being ignored?

Guru 18595 points
Part Number: LAUNCHXL-CC26X2R1

Tool/software:

Hi all,

I have my project based on SimplePeripheral.

SDK v7.40.

I use to be able to establish different connection speeds by changing the Linux parameters like this.

        echo "10" > /sys/kernel/debug/bluetooth/hci0/conn_min_interval
        echo "10" > /sys/kernel/debug/bluetooth/hci0/conn_max_interval

Then, upon connecting my PC as central to my BLE device based on CC26X2R as peripheral, the connection parameters were effectively changed.

Now (maybe introduced on v7.40 without me noticing?) I cannot.

The following is what I obtain as connection ALWAYS, no matter what I change on Linux machine.

 2000/01/01 00:23:12  1396648 ms       968               ble.c   own MAC address D0:2E:AB:D9:29:48
 2000/01/01 00:23:18  1402256 ms      1287               ble.c   central peer connecting DC:FB:48:6F:86:7C
 2000/01/01 00:23:18  1402269 ms      1320               ble.c       parameter connInterval = 156 = 195.000000 ms
 2000/01/01 00:23:18  1402282 ms      1321               ble.c       parameter connLatency  = 0
 2000/01/01 00:23:18  1402293 ms      1323               ble.c       parameter connTimeout  = 1000 = 10000 ms

Any idea how I could solve this?

Edit: without sending a Parameter Connection Update Request from my BLE device?

Edit 2: in fact it does not matter, because even trying it for the BLE device to negotiate faster connection, this happens:

 2000/01/01 00:00:10    14223 ms      1918               ble.c   Updated params for DC:FB:48:6F:86:7C, interval: 37.50 ms, latency: 0, timeout: 2000 ms
 2000/01/01 00:00:11    15589 ms      1918               ble.c   Updated params for DC:FB:48:6F:86:7C, interval: 195.0 ms, latency: 0, timeout: 10000 ms

Thanks

  • Hello,

    Thanks for reaching out! We will take a look at your issue and get back to you ASAP!

    Best Regards,

    Tarek

  • Hello,

    May I ask if you have a sniffer log at hand to better understand what is happening between both devices over the air?

    I would check the following:

    1. Could you use a basic simple_peripheral example to test if the result is the same? This is considering if there are differences between the project you have tested and the basic reference one.
    2. It could happen that the central device (PC) is rejecting the connection parameter update from the peripheral (this is allowed by the BLE spec and happens for instance with some smartphones). Again, having a sniffer log can help us understanding if this is the case or you can check the opcode status of the gapLinkUpdateEvent_t struct received after executing GAP_UpdateLinkParamReq (take a look at the API) to check if the device rejected the update.
    3. Can you confirm the connection parameter update is actually taking place at Linux pc, because it would appear that this is not the case.

    BR,

    David.

  • Hi!

    1) no diffs

    2) nope, we are not sending request update from the peripheral

    3) I think the device running simplelink is rejecting the update from the PC, even if it is happening. I will do further research. Thanks for the hints.