I am working with an nRF52810 and nRF52832 (SDK15.3.0), with an Android app based on Android BLE Library 2.1.1. In both cases sdk_config.h has
#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 23
The two boards give diferent results. On the nRF52832 i get this debug output immediately after connecting:
<debug> nrf_ble_gatt: Peer on connection 0x0 requested a data length of 100 bytes.
<debug> nrf_ble_gatt: Updating data length to 27 on connection 0x0
<debug> nrf_ble_gatt: Data length updated to 27 on connection 0x0.
<debug> nrf_ble_gatt: max_rx_octets: 27
<debug> nrf_ble_gatt: max_tx_octets: 27
<debug> nrf_ble_gatt: max_rx_time: 912
<debug> nrf_ble_gatt: max_tx_time: 1096
I also get BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST and BLE_GAP_EVT_DATA_LENGTH_UPDATE events.
On the nRF52810 none of this happens (BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST and BLE_GAP_EVT_DATA_LENGTH_UPDATE are not supported).
AFAIK, my Android app does not make any explicit request to change the MTU size.
Q1: Why do the 832 and 810 behave differently? Is there documentation on thier different MTU behaviour?
Q1: Why is there a "Peer on connection 0x0 requested a data length of 100 bytes." event reported? I am assuming there is a default requestMtu(100) call inside the Android BLE library which is handled by the 832 but ignored by the 810 - is that right? Can this be turned off?
Q2: