Trying to receive only one packet per connection interval for every connection on a multi-link environment on SDK 1.7.0

Hi,

The project is a multi-link environment of nrf52840, The 7 peripherals has the task of send data constantly of a sensors. All is working on coded_s8.

The objective is keep the higher data rate of msgs received by central, but to guarantee the uniformity between every peripheral. For that i have done a deep investigation on how the central schedule the connections, and what is the best strategy to receive the data.

The ATT_MTU is set to minimum 23 bytes because of coded_s8.

Time on air of a packet= 80+256+16+24+(23*8*8)+(24*8)+(3*8)=2'064ms

So if I disable Connection Event Length extension with:

static int EvtLen(void)
{       
        int err;
	struct net_buf *buf;
	sdc_hci_cmd_vs_conn_event_extend_t *evt_enable;

	buf = bt_hci_cmd_create(SDC_HCI_OPCODE_CMD_VS_CONN_EVENT_EXTEND,
				sizeof(*evt_enable));
	if (!buf) {
		printk("Could not allocate LLPM command buffer\n");
		return -ENOMEM;
	}
        evt_enable = net_buf_add(buf, sizeof(*evt_enable));
	evt_enable->enable = 0;

	err = bt_hci_cmd_send_sync(SDC_HCI_OPCODE_CMD_VS_CONN_EVENT_EXTEND, buf, NULL);
	if (err) {
		printk("Error enabling EVENT %d\n", err);
		return err;
	}

	printk("EVENT mode enabled\n");
	return 0;
}

And fix the maximum T event length on Kconfig with:

CONFIG_SDC_MAX_CONN_EVENT_LEN_DEFAULT=2500
Theorically making this configuration i guarantee that on a connection interval of 2500ms*7devices=17500ms/1.25=14 units i have enought time to attend the 7 devices and receive 1 packet of every one (Maybe could be packet drop but no may be systematic). Unfortunately I am not able to achieve this. Most of the times one or 2 devices keep sending half data comparing with the rest. I tried to modify a little the conn_interval without success.
If you could suggest me something more to try I will appreciate it, all code shared is done on Central
Thank you and regards.
Related