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

on_data_length_update_request_evt

Hi,

upon connection I get these messages via RTT:

nrf_ble_gatt:DEBUG:Peer on connection 0x0 requested an ATT MTU of 185 bytes. nrf_ble_gatt:DEBUG:Updating ATT MTU to 23 bytes (desired: 23) on connection 0x0.

Does anybody know what they mean?

Many thanks, Josef

  • This probably means that one peer performed Exchange MTU Request on ATTribute Protocol layer and the other peer responded with Exchange MTU Response which resulted into automatic ATT_MTU alignment to minimum of numbers indicated by both sides. One said it can go up to 185 bytes but second indicated it can handle only 23 bytes (default size mandated by BT SIG spec for ATT layer on LE) so ATT_MTU settled on default size 23.

  • I only get that when connecting with an iOS device, but not when connecting with Android. I only allow one connection at a time. Android Data transfer works without any issues but not iOS. How can I solve this ATT_MTU issue? Many thanks, Josef

  • iOS devices are doing ATT_MTU extension by default, Android can do it but it's up to the app to ask for it through dedicated API function call. However it should work regardless if this procedure is done by master/client or not. If you have issues with connection to iOS devices then there can be many reasons. Provide more details, logs and preferably traces from the radio showing when connection broke (then you usually also see why;).

  • Hi Endnode, fixed! This ATT_MTU request takes time and I started sending already before everything was set up. Is there an event from the softdevice which I could wait for which indicates when its save to start sending? Thanks

  • FormerMember
    0 FormerMember in reply to endnode

    @joe.ker: As you can see in this message sequence chart, the ATT_MTU request can be sent at any point after a connection has been established.

    From the Bluetooth Core Specification v. 5.0, vol 3, part F, chapter 3.4.2.1:

    This request [Exchange MTU Request] shall only be sent once during a connection by the client. The Client Rx MTU parameter shall be set to the maximum size of the attribute protocol PDU that the client can receive.

Related