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

ble_app_att_mtu_throuthput example

I'm not sure about how does the ble_app_att_mtu_throuthput example works exactly, i supose the throughput test runs as follows:

1 tester defines a service 'populated' with an att writable characteristic.

2 by running test and after connection, tester sends a notification to responder board, that acknowledge the received notification by writing the  att writable characteristic defined by the server (tester).

Is that correct?

If so, I still have some questions about throughput calculation:

As explained here: https://www.novelbits.io/bluetooth-5-speed-maximum-throughput/, throughput is calculated by assuming that over-the-air packet exchange comprises the following sequence:

data_packet + IFS + empty_acknowledging_packet + IFS

In  ble_app_att_mtu_throuthput example, 

1 how is determined the interframe spacing time?

2 how much data is sent in the 'acknowledging' packet? I mean, how much time does consumme sending that packet over-the-air?

3 connection_interval_extension configuration enabled means that there is no constraint on number of packets sent per connection interval; is that right?

  • The way the throughput is calculated in the ble_app_att_mtu_throughput example is simply by starting a timer (counter_start()), then char_notification_send() will continue sending data until all the data is sent, thus when the ATT Payload reaches AMT_BYTE_TRANSFER_CNT. Then it will stop the transfer and calculate the throughput based on the timer (counter) and the total amount of bits sent.

    Regarding your questions, you can figure this out by using a sniffer. If you have three nRF5x development kits/dongles, you can use the third device as a sniffer to to see the data,  by using the nRF Sniffer. If you aren't able to do this, I can look into it.

    Best regards,

    Simon

Related