This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Slow rate from central to peripheral

Hello,

I'm working on nrF52832 with two different Android device : Samsung Galaxy note 3 neo and HTC ONE M8.

My test :

  • Central side ( smartphone ) : each 200 ms I send 20 Bytes during 20s -> 100 * 20 Bytes
  • Peripheral side : I measure the time between the first packet and the last one.

The result :

  • HTC ONE M8 : 20.2 s to receive data
  • SAMSUNG = 43 s to receive data

We are trying to improve the data transmission because the rate is too slow on some smartphone ( ex : samsung note 3 neo ).

I think that the connection interval on ble_evt_connected return 39 -> 48,5ms ( for both smartphone )

#define MIN_CONN_INTERVAL                MSEC_TO_UNITS(10, UNIT_1_25_MS)           /**< Minimum acceptable connection interval (0.1 seconds). */
#define MAX_CONN_INTERVAL                MSEC_TO_UNITS(200, UNIT_1_25_MS)           /**< Maximum acceptable connection interval (0.2 second). 200*/
#define SLAVE_LATENCY                    0                                          /**< Slave latency. */
#define CONN_SUP_TIMEOUT                 MSEC_TO_UNITS(4000, UNIT_10_MS)            /**< Connection supervisory timeout (4 seconds). */

How can I increase the speed ?

Thank you very much.

Nabil

Parents
  • No, it's not usual or normal but on the other hand you can expect anything with Android phones;) Also what do you mean by "connection interval seems to be 39"? Is it native time unit meaning 1.25*39=48.75ms? This actually is default connection interval used by majority of Android devices since Android 5.0, they typically ignore peripheral preferred connection parameters (which you play with). If you have sniffer you can simply get few traces of expected behavior, unexpected behavior and then expected behavior with modified minimal connection interval. From the flow you should easily spot the differences and then guess what is running in mind of your android phone;)

Reply
  • No, it's not usual or normal but on the other hand you can expect anything with Android phones;) Also what do you mean by "connection interval seems to be 39"? Is it native time unit meaning 1.25*39=48.75ms? This actually is default connection interval used by majority of Android devices since Android 5.0, they typically ignore peripheral preferred connection parameters (which you play with). If you have sniffer you can simply get few traces of expected behavior, unexpected behavior and then expected behavior with modified minimal connection interval. From the flow you should easily spot the differences and then guess what is running in mind of your android phone;)

Children
No Data
Related