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.

CC2640R2F-Q1: The response time interval when SlaveLatency changed

Part Number: CC2640R2F-Q1

I'm using SDKv2.40.00.32.

I have got 2 problems after changing SlaveLatence to 47.

Problem.A: GATT write/read was very slow after I changed SlaveLatency=47. This problem does not occur in notification (peripheral to central).

                   The other configurations are:

                   - ConnInterval=100 (0.125 sec)

                   - ConnTimeout=1250

                   The response from peripheral will be : 0.125 sec * (47 + 1) = 6.0 sec

                   It seems that GATT write is influenced by it.

                   Could you let me know how to reduce the delay?
Problem.B: Connection event period is changed when the central device executes GATT Read/Write.

                   In the case of configuring

                   - ConnInterval=100 (0.125 sec)

                   - SlaveLatency=47

                   GATT write/read does not causes connection event 6.0 sec but 0.125 sec, 3.625 sec .....

                   It also appears in the case that peripheral notifies to central.

They can be reproduced with the attached files.

* steps to reproduce

1)push right SW to discover
2)push left SW to select
push right SW to connect
---> connection event was received every 1.0 seconds. (it is shown to a peripheral's terminal screen)
it was received every 1.0 sec
3)push left SW twice, 'Connection Update' is shown.
push right SW
---> connection event was received every 6.0 seconds. (it is shown to a peripheral's terminal screen)
4)push left SW sometimes, 'GATT Read/Write' is shown.
push right SW
---> A:This GATT Read/Write operation is very slow. (its response is shown to a central's terminal screen)
This was not occured if I didn't change SlaveLatency.
---> B:Connection event period is changed to not 6.0 seconds.

workspace_v8_ref_connevt.zip

Best Regards,

Satoshi Shinohara

  • HI Satoshi,
    Assigning this to one of the experts to reproduce.
  • Hello Satoshi,

    I believe this is expected behavior as described by the BT Core Spec Version 5.1 | Vol 6, Part B,  4.5.1  Connection events:

    Slave latency allows a slave to use a reduced number of connection events.

    The connSlaveLatency parameter defines the number of consecutive

    connection events that the slave device is not required to listen for the master.

    This means the slave latency is only optional for the slave if it has no data or control packets to send or receive.

    In case A the slave (GATT server) is allowed to skip 47 connection event before it responds to the master. Because the GATT write/read will originate from the Master (GATT client) the slave s not aware of the ATT read/write  request. FOr notifications it is the slave device that will transmit and it will try to transmit this as soon as possible (will not skip connection events).

    In case B it is the same as above. As long as the slave needs to transmit or receive it will do it as fast as possible. It will only skip up to 47 connection events if there is no expected traffic.

  • Hi Eirik,

    Thank you so much.

    Best Regards,

    Satoshi Shinohara