I just spent 2 hours chasing BLE bug after upgrading from s132 v3 => v4.0.2
I added a call
// Configure the maximum ATT MTU.
memset(&ble_cfg, 0x00, sizeof(ble_cfg));
ble_cfg.conn_cfg.conn_cfg_tag = BLE_CONN_CFG_TAG_DEFAULT;
ble_cfg.conn_cfg.params.gatt_conn_cfg.att_mtu = NRF_BLE_GATT_MAX_MTU_SIZE;
err_code = sd_ble_cfg_set(BLE_CONN_CFG_GATT, &ble_cfg, ram_start);
APP_ERROR_CHECK(err_code);
and the device started to go to reset loop. After lots of googling and not finding anything I tried to change tag to something else (though I want this to be the default config so I shouldn't), and lo and behold, the APP_ERROR_CHECK started passing! So if I give conn_cfg_tag > 0, everything is fine, but if I give BLE_CONN_CFG_TAG_DEFAULT, the call fails with INVALID_PARAM.
- Why on earth?
- Where is this documented?
- Is this fixed in some later SD?, is there later v4 than 4.0.2?