Hi,
I have a field application with a gateway (central) that connects to multiple peripherals for continuous data streaming, in this case 10 peripherals. I notice sometimes the gateway 'stops reporting data' and today I was able to connect a JLINK to read out the logs of the nRF52840 that's taking care of the BLE connectivity and I saw "bt_sdc_hci_driver: No data buffer available" being printed out all the time, which seems to be implemented in hci_driver.c in data_packet_process. It's pretty random how long it takes for the gateway to become non-responsive, I've seen it happen after less than an hour, now it happened after almost a week of normal operation. I followed the code in hci_driver.c and it seems the data buffer is allocated from CONFIG_BT_BUF_EVT_RX_COUNT, which I had set at 20. What could be the reason that 20 buf_count is not sufficient when connecting to 10 peripherals? The connection interval is 125ms for all the peripherals. As far as I can tell, I'm not doing any long processing when data comes in. Are there any other configs I can play around with (or increase CONFIG_BT_BUF_EVT_RX_COUNT to provide more margin), or should I focus on checking how long my code takes when receiving data or if there is anything that could be blocking?
Best,
Wout