Andorid does not seem to support Data lenght extension

Dear Nordic Team,

When monitoring data transfer with the nRF Sniffer between an Android phone and a Nordic board (NRF52840), it seems that Android doesn’t support BLE data length extension.

You can see that the Nordic chip makes an “LL_LENGTH_REQ” request with 251 for both RX and TX parameters. The Pixel responds with an “LL_LENGTH_RSP” packet, with 251 for RX and 27 for TX.

At the end of the Wireshark trace, we tested the transmission of 90 bytes from the Pixel to the Nordic chip, and we can see that the 90 bytes are divided into 4 packets.

When testing with an iOS device, everything is sent in one packet, and the iPhone sends 251 for both TX and RX parameters in the “LL_LENGTH_RSP” packet.

We conducted our tests with 2 different devices: a Google Pixel 7 Pro (Android 14) and a Nokia G21 (Android 13), both giving the same result.

Here the complete Sniffer trace : 

/cfs-file/__key/communityserver-discussions-components-files/4/Trace_5F00_Android_5F00_data_5F00_lenght.pcapng

Someone had the same issue 2 years ago, with the same Sniffer log we have: https://devzone.nordicsemi.com/f/nordic-q-a/87529/android-does-not-use-data-length-extension-for-l2cap-coc

In that case, the issue was solved by requesting a big MTU parameter, but in our case, it doesn’t change anything.

For our project, we need a data length parameter of 251. Is there any way to make the Android device accept this parameter?

Thanks for your help,

Gregoire

Related