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

nrF52840 SoftDevice S140 Max ATTMTU size and number of packets per connection interval

Hi 

nrF52840 SoftDevice S140 - What is the max ATT_MTU size supported? 244 bytes? 

Is there any allowed number of packets per connection event that can be transferred on Link Layer? I am aware that it depends on BLE stack + mobile device 

If my Application APDU is about ~ 1500 bytes, how best I need to choose Connection Interval and Calculate number of packets per connection event (I am theoretically making calculations to see how much time it takes for this amount of data between our application - mobile device (iOS/android), given that it would be vary in practice)

Thanks

SD

Parents
  • Hi,

    I recommend setting the ATT MTU size to 247(NRF_SDH_BLE_GATT_MAX_MTU_SIZE in sdk_config.h). The maximum on-air packet size is 255 bytes(NRF_SDH_BLE_GAP_DATA_LENGTH). If we take away L2CAP header (4 bytes) and Link Layer header (4 bytes) we are left with an ATT packet of 247 bytes. So by setting the ATT MTU to 247, we will avoid fragmentation of the ATT packet into several on-air data packets.

    The SoftDevice does not set any predefined limit on the number of packets you can get each connection interval. How many packets you get per connection interval depends on the connection interval, ATT MTU size, Data length extension (DLE) (on-air packet size, NRF_SDH_BLE_GAP_DATA_LENGTH) and Event length (time set aside for the connection on every connection interval)(NRF_SDH_BLE_GAP_EVENT_LENGTH). Depending on what the phone supports, the phone could limit the number of packets you get each connection interval. We have a chapter on throughput in the SDS, that you might find interesting.

Reply
  • Hi,

    I recommend setting the ATT MTU size to 247(NRF_SDH_BLE_GATT_MAX_MTU_SIZE in sdk_config.h). The maximum on-air packet size is 255 bytes(NRF_SDH_BLE_GAP_DATA_LENGTH). If we take away L2CAP header (4 bytes) and Link Layer header (4 bytes) we are left with an ATT packet of 247 bytes. So by setting the ATT MTU to 247, we will avoid fragmentation of the ATT packet into several on-air data packets.

    The SoftDevice does not set any predefined limit on the number of packets you can get each connection interval. How many packets you get per connection interval depends on the connection interval, ATT MTU size, Data length extension (DLE) (on-air packet size, NRF_SDH_BLE_GAP_DATA_LENGTH) and Event length (time set aside for the connection on every connection interval)(NRF_SDH_BLE_GAP_EVENT_LENGTH). Depending on what the phone supports, the phone could limit the number of packets you get each connection interval. We have a chapter on throughput in the SDS, that you might find interesting.

Children
No Data
Related