Dear community,
I am using the nRF52840 dongle with the connectivity FW and set the max number of connections to 10 in the connectivity firmware (of course the RAM area was incresaed, so that initialisation of the ble stack is successful.
We used the dongle and the code for weeks, without any problems using up to 4 peripheral devices. However, as soon as we use more than that (max number is 8), we often get a disconnect with reason "BLEHci.connection_timeout". This is reproducable and has to do with the number of peripheral devices.
We also observed that the disconnect seems to happen when most of the communication happens in the main python code, so it seems that somehow the dongle cannot handle the data transfer while keeping the connections. However, there is never really "much" data exchanged with more than one device. In the typical scenario, where the problem arises, e.g. 6 devices are constantly notifying values (~16 bytes per second) and the dongle is asked to write ~60 bytes to the devices sequentially(!).
Also, it seems that the python pc-ble-driver execution is "slowing down" a bit with more connections, but that is just a feeling without hard numbers.
Can you give me a hint about how to proceed the debugging? For the BLEHci.connection_timeout. i read about crystal inaccuracies (which is not likely because up to 4 devices work seemlessly) and about communication intervals (which I think the central should figure out for itself, right?). Is there an easy way to explicitely tell the python pc-ble-driver to use speficic (but fixed!) communication intervals for the single devices? Should I even play around with "manually" forcing specific communication intervals?
Thanks!