nRF5 SDK is not maintained anymore
More Info: Consider nRF Connect SDK for new designs

Throughput ATT_MTU

We are using nrf52832 soc for our product development and using that we are trying to increase the throughput of our device using the information from the following forum:
Novel Bits throughput guide 
In this forum it states that the Maximum GATT MTU SIZE possible is 247 bytes in which 244 bytes of data is the actual payload size and if the data is greater than the limit, then it will split into multiple packets. So we tried to send more that 247 bytes of data just to check how the data split in multiple packet is working. We tried to sent 256 bytes of data and we were able to get 255 bytes of data without any splitting, which is more than 247 bytes. So we are wondering what is the Maximum GATT MTU SIZE possible in nrf52832 soc. 
We also looked into the throughput example provided by the nordic (ble_app_att_mtu) and in that MTU size is set to 247 and data length is set to 251 which is less that what we are able to send from nrf52832 to phone, is there any possible explanation for this?

Parents
  • Hi

    3. I think the reason you're only able to get some of the data on the iOS device is that iOS is somewhat restricted and I think it's only possble to transmit 184 bytes at a time, so try setting the BLE_GAP_DATA_LENGTH to 184 instead as that should let you receive all the data onto the iOS device as well. This is a choice from Apple, as it doesn't go entirely in thread with the BLE specs.

    4. So, the throughput is measured in bits, not bytes. So 24000 bytes = 8 * 24000 bits = 192 kbits. Then, 2 minutes = 120 seconds. So the throughput in that scenario would be 192 000 bits / 120 s = 1,6 kbits/s

    Best regards,

    Simon

Reply
  • Hi

    3. I think the reason you're only able to get some of the data on the iOS device is that iOS is somewhat restricted and I think it's only possble to transmit 184 bytes at a time, so try setting the BLE_GAP_DATA_LENGTH to 184 instead as that should let you receive all the data onto the iOS device as well. This is a choice from Apple, as it doesn't go entirely in thread with the BLE specs.

    4. So, the throughput is measured in bits, not bytes. So 24000 bytes = 8 * 24000 bits = 192 kbits. Then, 2 minutes = 120 seconds. So the throughput in that scenario would be 192 000 bits / 120 s = 1,6 kbits/s

    Best regards,

    Simon

Children
  • Simonr u have calculted the throughput but my issue is that throughput is based on number of packets per connection interval then what will be my throughput 

    I have 

    #define MIN_CONN_INTERVAL MSEC_TO_UNITS(7.5, UNIT_1_25_MS) /*

    #define MAX_CONN_INTERVAL MSEC_TO_UNITS(100, UNIT_1_25_MS) /*

    NRF_SDH_BLE_GAP_DATA_LENGTH 251

    NRF_SDH_BLE_GATT_MAX_MTU_SIZE 247

    i have data length 12 bytes

    taken 2000 logs after 2min interval

Related