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

nrf51-ble-app-lbs throughput test

Hi,

I am using the Evaluation Kit, and I have tried to send some data between the Developoment Dongle (PCA10000) to the Evaluation Kit board (PCA10001). As the Development Dongle supports only one packet per connection interval, the theoretical maximum throughput is:

( 1 packet x 20 B ) / 0.0075 = 2667 B/s

And when I try to send data from the dongle to the evaluation kit board I manage to reach this throughput (thanks to Ole Morten) when using the nrf uart example you provided.(previous question)

But when I try the nrf51-ble-app-lbs throughput test I can't reach the same level of throughput (about 1 kB/s). I thought that it should be the same?

The code setup:

#define MIN_CONN_INTERVAL MSEC_TO_UNITS(7.5, UNIT_1_25_MS)            
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(40, UNIT_1_25_MS)

I have tried to find something that could slow the throughput down, but do not find anything...

Parents
  • Thanks for your answer!

    When I try to decrease the connection interval in the Master Control Panel, I reach the theoretical throughput (2.67 kB/s) :D

    But I also tried to define MAX_CONN_INTERVAL to 7,5 ms without any success. It seems like it does not matter and the throughput is still like for connection interval = 20 ms.

    So when I try your application nRF Master Control for Android, I do not manage to get connection interval = 7.5 ms. The phone I use is Samsung Galaxy S4. And I had also expected that it should use several packets per connection interval. But I only reach 1,6 kB/s.

  • As is commented elsewhere, the minimum connection interval supported will be dependent on device. As far as I know, the S4 won't accept this, and hence, will deny any such request. After the defined number of attempts, you should therefore see an error from ble_conn_params, saying that the connection parameters were not accepted.

    I haven't tested this with the S4 myself, but I suggest you get a sniffer trace and post a separate question if you have further questions. Remember that it may not even be using a 20 ms interval, but you can check this either with a sniffer, or by checking the conn_params in the connected event, in ble_gap_evt_connected_t.

    I'd also be happy if you could accept my reply as an answer, to clear up the question, since I think it covers the initial question.

Reply
  • As is commented elsewhere, the minimum connection interval supported will be dependent on device. As far as I know, the S4 won't accept this, and hence, will deny any such request. After the defined number of attempts, you should therefore see an error from ble_conn_params, saying that the connection parameters were not accepted.

    I haven't tested this with the S4 myself, but I suggest you get a sniffer trace and post a separate question if you have further questions. Remember that it may not even be using a 20 ms interval, but you can check this either with a sniffer, or by checking the conn_params in the connected event, in ble_gap_evt_connected_t.

    I'd also be happy if you could accept my reply as an answer, to clear up the question, since I think it covers the initial question.

Children
No Data
Related