How to improve GATT bandwidth for Bluetooth low-power Bluetooth?

I'm having performance issues when reading multiple consecutive GATTs using the Android BLE API.

I can read about 10 packets per second in just 5 or 6 seconds. After I read the ~ 65 packet, throughput is reduced to about 1 packet every 1.5 seconds.

I have done some tests and it seems that the internal BLE is getting very slow. In this case, it takes about 750 ms from the Java GATT read call to the peripheral device (there is no bottleneck in the peripheral device) and about 750 ms from the Java API callback.

It seems to me that this is a poor implementation of the BLE stack, because when I disconnect from the device (maybe some resources are cleared) and then reconnect back, I can reproduce the same problem: it reads about 10 packets / s for the first 5 or 6 seconds (~ 65 packets), then it becomes slow.

I tested it with Galaxy S4 and Nexus 4 devices. Same thing with both.

Any suggestions for improving it?

+4
source share
1 answer

I hope that from June 5, 2014 you will find a solution to your problem. I have the same problem too. The first 2 ~ 3 seconds, I get data in ~ 100 ms. After that, I get data every ~ 2000 ms. I am testing device 4.3 and above.

Lollipop requestConnectionPriority BluetoothGatt. 4. *. - .

, - Bluetooth !

+4

Source: https://habr.com/ru/post/1543484/


All Articles