I'm evaluating nRF52840 DK.
Currently running peripheral_lbs example.
I'm trying to set security level to BT_SECURITY_L4
static void connected(struct bt_conn *conn, uint8_t err)
{
if (err) {
printk("Connection failed (err %u)\n", err);
return;
}
printk("Connected\n");
int sec_result = bt_conn_set_security(conn, BT_SECURITY_L4);
printk("Cannot set security level, err %d\n", sec_result);
dk_set_led_on(CON_STATUS_LED);
}
I'm connecting to nRF52840DK with via smartphone nRFConnect app, then I enter pin code, but connection fails.
bt_conn_set_security returns 0 (SUCCESS)
These lines are output to console:
Passkey for d0:1d:c1:85:77:9b (random): 786779
[00:00:12.933,227] [1;31m<err> bt_hci_core: Failed to set required security level
[00:00:12.941,314] [1;31m<err> bt_conn: not connected
[00:00:12.946,960] [1;31m<err> bt_conn: not connected
Security changed: d0:1d:c1:85:77:9b (random) level 3
Disconnected (reason 22)
Setting security levels to BT_SECURITY_L2 or BT_SECURITY_L3 works.