This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BLE Throughput drops from additional connections.

Hello,

I have written a c# library that receives data from the sensortag for use in Windows 8 Desktop applications.  My receiver application works great when I am using the sensortag alone, but I also use a Bluetooth headset while recording data.  I have noticed that I get only half the data when both devices are connected to my PC through the USB BT4.0 dongle.

I know that the throughput would drop but is dropping about half the BLE packets normal?  

If so I am investigating two workarounds.  One is to use two dongles but this seems nearly impossible in windows 8 since the windows stack requires only one dongle and most 3rd party stacks are simply wrappers around the Microsoft built one.

The other workaround is to just place the data in a buffer on the SensorTag as I collect and then a larger sample of data at once.  However, my concern with this is that I seem to drop half the packets no matter what the connection interval is.  So I am afraid that I will loose a large set if one of the packets is dropped.

Any ideas towards this problem?

  • It sounds like it could be a problem with the Dongle.  Your Dongle should be able to use BR/EDR and BLE simultaneously.  Check chipset specs on the dongle to verify this.  It could also be with how long your C# code is taking to process the data and how it is using the BT4.0 function calls when EDR is connected.

    Run the SensorTag App for Windows or one of the other Apps that can read BLE data.  If the problem is not there with a third party app then you have a problem with you C# project.

    Thanks,

  • I had originally thought it might be a dongle issue but I have replicated it with two different dongles one with CSR chipset and one with Broadcom. My data rate from the sensortag is relatively high as I am transferring 3 of the sensors at 10hz. But this still seems low comparatively. 

    Also so my audio data is consistent has no drops. only the ble looses data. And it's drop is almost exactly half. I will check my library but I am pretty sure it is working fine. It is very simple and uses the built in gatt api available in windows 8.1.

  • My program seems to be doing everything ok.  There is no additional load on the BLE connection. It simply sets up notification enable for my sensors and then has an event handler when data is received.  I also have everything running asynchronously, so the library isn't waiting on my program to finish processing the data.

    Does anyone have any info on how BLE and BTEDR should behave together?  I'm guessing that the input buffer of the ble dongle just rejects the BLE data when it is trying to receive the BTEDR data but I cant be sure.  My connection interval is 30ms and my data is being updated at 10hz, so this shouldnt be super taxing.

    Another questions is if I increase my connection interval to a value above 100ms and keep the sensors being updated at 10Hz I will run the risk of filling the output buffer of the sensortag correct?