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

BLE Connection interval limit on nRF52840 (Zephyr NCS 1.4.2)

Hi,

I am using nRF52840 as BLE peripheral, on a Zephyr application under NCS 1.4.2

I want to limit the connection interval to 7.5ms (min+max)

I can see that the only way to limit that AFTER the connection established - using bt_conn_le_param_update is that correct?

no way to limit that prior to the connection?

The thing is that if i use bt_conn_le_param_update after the connection was established, the central has 5 seconds to request different connection parameters, and it brings it back to ~50ms


So my question is, what is the best practice of limiting the connection interval?

Thanks

Parents
  • Hi,

    The central decides the connection parameters initially when the connection is established and the peripheral has no say at that point. So if the phone is the central (which is most common), the only thing the nRF can do is request a connection parameter update, as you have found. However, most BLE stack on phones and tables may not allow you to use a very low connection interval, as awneil stated.

  • I am aware of the negotiation process, even though there must be a way to limit the determine the Min & Max connection interval prior to the connection to be able to limit that negotiation. in another product i have, i am using older Nordic SDK (v11) on a bare-metal application, and i am doing exactly that using: sd_ble_gap_ppcp_set that is done prior to any connection... i am looking for something similar on Zephyr but it's not to be found

  • Hi,

    As long as the nRF is a peripheral, it can only request a connection interval between a min and max, which you also do in Zephyr when you populate the bt_le_conn_param struct, for instance for use with bt_conn_le_param_update(). There is no way to enforce it, and that is the same regardless of SDK. What you can do however, is to disconnect if the connection parameters are unacceptable.

Reply
  • Hi,

    As long as the nRF is a peripheral, it can only request a connection interval between a min and max, which you also do in Zephyr when you populate the bt_le_conn_param struct, for instance for use with bt_conn_le_param_update(). There is no way to enforce it, and that is the same regardless of SDK. What you can do however, is to disconnect if the connection parameters are unacceptable.

Children
No Data
Related