Setting appropriate BLE Event Length with KCONFIG

Hello,

I am currently on a project where we have 4 BLE peripheral devices equipped with NRF52840 connecting to one BLE Central, which is an app on iOS or Android. From time to time the peripherals need to send a higher amount of data to the central. The four peripherals send this data at the same time.

In most cases this works well, however, from time to time I see issues, where one of the four peripherals is sending data much slower. 

I think this correlates to an issue with the BLE Parameters, which I would like to optimize for my use case. However, from the documentation as well as other discussion on here I have hard times understanding the relationship between the following parameters:

CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT 

CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE

CONFIG_BT_CTLR_SDC_CONN_EVENT_EXTEND_DEFAULT

In the following discussion How to set up NCS so that the Bluetooth connection interval can always send data - Nordic Q&A - Nordic DevZone - Nordic DevZone it is explained that CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT controls the event length.

In another discussion BLE multiple connection overlap - Nordic Q&A - Nordic DevZone - Nordic DevZone only CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE is mentioned in relation with the event extension. However, here it is used from my perspective falsely as CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT.

My questions:

Q1: As the second discussion irritated me: What is the purpose of BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE? Will this allow to override the Event Length during runtime. How does the event length override working? Is there an example?

 

Q2: Are the Config options only effective for devices configured as central or will they also have an effect on peripherals?

Thanks

  • Hi,

    My mistake in the second thread you link to, think I have fixed it now, but quickly commenting here also:

    1. I think the intention was that setting BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE=y will allow to update "override" default CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=something. Though, on second look I can't seem to find any reference to BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE in code or examples, and after asking internally I don't think the setting BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE=y actually does anything, I think it might have been used for some internal testing at some point. So as you already indicate, just setting BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT is sufficient.

    2. They should affect both roles yes.

    Sorry for the confusion,
    Kenneth

Related