BLE multiple connection overlap

I am a student currently studying BLE.

At present, I am working on a multi-connection setup where both the master and the slaves are using the nRF52832. Specifically, I have 1 master connected to 2 slaves.

Both slaves are transmitting data using the "write without response" method with a connection interval of 10ms.

Sometimes, the data from each slave is written at 10ms intervals, but other times, it is written at 20ms intervals. (the transmission interval of Slave 1 is sometimes 10ms, as shown on the left, and sometimes 20ms, as shown on the right.)

I hypothesize that when the transmission occurs at 10ms intervals, the connection events do not overlap.

However, when it occurs at 20ms intervals, it is because the connection events are overlapping.

Is this a possible phenomenon? Also, is my hypothesis correct?

I look forward to your response. Thank you.

  •  

    I am developing using Adafruit's nRF52832 board (https://www.adafruit.com/product/3406) in the Arduino environment, and I am using the following library:
    https://github.com/adafruit/Adafruit_nRF52_Arduino?tab=readme-ov-file

    I could not find BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE in this library. Did I perhaps overlook it?

    Or do I need to develop using the nRF Connect SDK to configure BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE?

    Thank you.

  • Hi,

    If you are not able to set BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE then the softdevice may extend the event length if there is more data, so this may then override the configured event length and cause the problem you see. I guess you can (as you already suggest) set a connection interval of 20ms then, and just set: 
    BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE=8750.

    Kenneth

  • this may then override the con

    Thank you for your kind reply.
    It was very helpful to me.

  • BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE

    @Kenneth: Isn't BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE a boolean variable? (Github)

    Can it be that in this discussion you mean BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT?

  • Maybe you only need to set BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT, but in case it's already configured, you can use the _OVERRIDE.

    (Edit: In below text it should say BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE=y and BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT="to_what_you_want", not BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE="to_what_you_want").

    I guess this may change in future, but I would think if you want full control over this you want to set BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE=to_what_you_want and BT_CTLR_SDC_CONN_EVENT_EXTEND_DEFAULT=n.

    config BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE
    	bool "Override event length default"
    
    config BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT
    	int "Default max connection event length [us]"
    	default 0 if BT_ISO && !BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE
    	default 7500 if !BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT_OVERRIDE
    	range 0 4000000
    	help
    	  The time set aside for connections on every connection interval in
    	  microseconds. The event length and the connection interval are the
    	  primary parameters for setting the throughput of a connection.
    	  When connection event extension is enabled, more time may be used.
    	  The event length may be set to a value that is shorter than the time needed
    	  for a single packet pair on a given PHY.
    	  In that case the controller will reserve time for receiving 27 bytes and transmitting
    	  the number of bytes configured with BT_CTLR_MIN_VAL_OF_MAX_ACL_TX_PAYLOAD_DEFAULT.
    
    config BT_CTLR_SDC_CONN_EVENT_EXTEND_DEFAULT
    	bool "Enable connection event extension by default"
    	default y if !NRF_802154_RADIO_DRIVER
    	help
    	  When Extended Connection Events are disabled, the maximum connection event length is
    	  configured with BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT.
    	  When Extended Connection Events are enabled, the controller
    	  will extend the connection event as much as possible, if
    	  - Either of the peers has more data to send.
    	    See also: Bluetooth Core Specification, Vol 6, Part B, Section 4.5.6.
    	  - There are no conflicts with other roles of equal or higher priority.

Related