BT central sample has the following code
bt_enable(NULL);
bt_le_scan_start(SCAN_PASSIVE, device_found);
I ran the sample on my custom board based on nRF52840 and it always returns -EAGAIN even if I put the bt_le_scan_start in a loop and wait 1000 ms between attempts
I looked in the bt_le_scan_start function in scan.c
It returns -EAGAIN if BT_DEV_READY flag is not set:
if (!atomic_test_bit(bt_dev.flags, BT_DEV_READY)) {
return -EAGAIN;
}
Any ideas why this flag is never set? bt_enable does not return an error and is called synchronously
Project settings
-------------------------
-------------------------
CONFIG_BT=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_BROADCASTER=y
CONFIG_BT_MESH=y
CONFIG_BT_MESH_RELAY=y
CONFIG_BT_MESH_SUBNET_COUNT=1
CONFIG_BT_MESH_APP_KEY_COUNT=1
CONFIG_BT_MESH_MODEL_GROUP_COUNT=2
CONFIG_BT_MESH_ADV_BUF_COUNT=10
CONFIG_BT_MESH_LABEL_COUNT=0
CONFIG_BT_MESH_PB_ADV=n
CONFIG_BT_MESH_CFG_CLI=y
CONFIG_BT_MESH_LOOPBACK_BUFS=8
CONFIG_BT_SETTINGS=y
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
CONFIG_NVS=y
CONFIG_SETTINGS=y
CONFIG_BT_MESH_RPL_STORE_TIMEOUT=600
--------------------------------------------------------
Thank you
Andy