This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

BLE Connection Interval

Hi.

setup is 52832, SDK15.3.0, S332

I set MIn Max connection inverval is 500ms.

when connect using nRF Connect app, it is not change immediately connection inverval to 500ms.

7.5ms -> 45ms -> 500ms. why does not connect first interval to 500ms?

first connection interval (7.5ms) currnet power is raise to high and change 45ms -> 500ms , down normal.

I wanna remove first connect about raise current power.

Is it possible?

Thank you

  • Hi,

    Is it possible?

    No.

    It's the BLE central/master that sets initial connection interval, as part of the CONNECT_IND packet (interval field).

    This is usually set relativity low, in order to reduce the time e.g. the service discovery takes. So in most cases a 7.5ms initial connection interval is preferred. The slave can after the initial connection send a Connection Parameter Update Request packet to request the interval to be changed.

  • Thanks. got it.

    about 45ms?

    in nrf connect log, connected -> 7.5ms -> services discovery -> 45ms -> 500ms

    is it possible remove 45ms?

  • How long time is it between the changes ?

    When did it switch to 45ms ?

    When did it switch to 500ms ?

    If you don't have the timestamps in nRF Connect app, then you could use nRF Sniffer to see the timing.

  • here is log of connect app

    I removed some log regardless them

    V 12:16:55.733 Connecting to ########
    D 12:16:55.733 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D 12:16:56.317 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I 12:16:56.317 Connected to ##########
    V 12:16:56.338 Discovering services...
    D 12:16:56.338 gatt.discoverServices()
    D 12:16:56.364 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    I 12:16:56.760 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
    D 12:16:57.243 [Callback] Services discovered with status: 0
    I 12:16:57.243 Services discovered
    V 12:16:57.273 Generic Access (0x1800)
    I 12:16:57.342 Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
    I 12:16:58.297 Connection parameters updated (interval: 500.0ms, latency: 0, timeout: 4000ms)

    where is 45ms updated? I thought I didn't set 45ms, only 500ms.

    thank you

  • BEN_HB said:
    where is 45ms updated?

    Most likely the phone/central that decided this(A sniffer log would show this) after the service discovery was finished. But looking at these timestamps, it only takes 2 seconds after initial connection before it switched to 500ms. So I don't see any issues with this log.

Related