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

NRF_BLE_GATT_MAX_MTU_SIZE > 23 and backwards compatibility

Hello,

I didn't find much information about how different settings for the MTU size behaves with older versions of BLE devices. I'm using the softdevice s132 4.0.2.

/*  Configure the maximum ATT MTU. */
memset(&ble_cfg, 0x00, sizeof(ble_cfg));
ble_cfg.conn_cfg.conn_cfg_tag                       = BLE_CONN_CFG_TAG;
ble_cfg.conn_cfg.params.gatt_conn_cfg.att_mtu       = NRF_BLE_GATT_MAX_MTU_SIZE; //247
err_code = sd_ble_cfg_set(BLE_CONN_CFG_GATT, &ble_cfg, ram_start);
APP_ERROR_CHECK(err_code);

How will this work with a device that supports max 23? My device is a peripheral. Will the central that connects, negotiate this to 23?

Parents Reply
  • BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST is handled as long as nrf_ble_gatt_on_ble_evt is called from ble_evt_dispatch.

    But if you are connecting to a device that supports max 23 bytes I assumed maybe you where calling sd_ble_gap_data_length_update to initiate the data length update procedure? But it looks like you are testing with a device that supports more. So your problem isn't actually that the MTU exchange fails. But it's the DLE procedure that returns an error.

Children
No Data
Related