Other Parts Discussed in Thread: CC2541
We are developing Bluetooth LE (4.0) devices based on the TI CC2541.
Our application is running on Windows 10 and reads data from several paired BLE devices. We typically use 3-4 of such devices at the same time. Our Windows application is written in C++ and is using BLE SDK calls.
Unfortunately we are experiencing a problem. At the beginning Master (PC) and slave (BLE device) establish connection normally and begin data exchange (writing, reading, notifications). Our application is receiving 6-byte-payload data packets at about 60 measurements per second.
We are also observing packets in the air by the TI BLE packet sniffer kit. The receipt of those data packets is generating notifications that are being successfully received by our application.
However after a while we are observing that some of the packets that are being sent by one or more of our BLE devices stop generating notifications to our PC application. After some more time none of the packets being transmitted result in notification to the PC application. After that the Master (PC) sends the Connection Termination Request to our device and the connection breaks.
So packets exchange successfully on radio level and seem to be received by PC's chip but do not reach application on Windows.
It appears the data packets are being lost somewhere between the device drivers and the Windows BLE GATT drivers.
We have tried using different BLE controllers with the PC by different hardware manufacturers and they seem to produce the same results.
So it seems the problem is likely to be in the Windows BLE Generic Attribute Service drivers.
My question is if anybody has experienced similar problems with Windows applications and can offer some solution.