Impossible to scan extended advertising data when the data size is bigger than 31 Bytes.

Hello,

I need to scan the advertising data of my peripheral wich advertise with extended advertsing and LE coded PHY.

I use zephyr 3.7, and I work if I use the BLE controller from Zephyr but that doesn't work with SoftDevice controller... I'm limited to 31 Bytes.

If my advertising data is smaller than 32 Bytes, it works.

here my scan config.

struct bt_le_scan_param scan_param = {
.type = BT_LE_SCAN_TYPE_PASSIVE,
.options = BT_LE_SCAN_OPT_CODED,
.interval = BT_GAP_SCAN_FAST_INTERVAL,
.window = BT_GAP_SCAN_FAST_WINDOW,
};

my prj.conf for my cpunet firmware:

CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_MAIN_STACK_SIZE=2048
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048

CONFIG_MBOX=y
CONFIG_IPC_SERVICE=y

CONFIG_BT=y
CONFIG_BT_HCI_RAW=y
CONFIG_BT_CTLR_ASSERT_HANDLER=y
CONFIG_BT_MAX_CONN=16

# Enable and adjust the below value as necessary
# CONFIG_BT_BUF_EVT_RX_COUNT=16
# CONFIG_BT_BUF_EVT_RX_SIZE=255
# CONFIG_BT_BUF_ACL_RX_SIZE=255
# CONFIG_BT_BUF_ACL_TX_SIZE=251
# CONFIG_BT_BUF_CMD_TX_SIZE=255

CONFIG_BT_EXT_ADV=y
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_PHY_CODED=y
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=250
CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=255

CONFIG_ASSERT=y
CONFIG_DEBUG_INFO=y
CONFIG_EXCEPTION_STACK_TRACE=y

CONFIG_IPC_RADIO_BT=y
CONFIG_IPC_RADIO_BT_HCI_IPC=y

and my prj.conf for my cpuapp:

CONFIG_LOG=y

CONFIG_DK_LIBRARY=y
CONFIG_NCS_SAMPLES_DEFAULTS=y

CONFIG_HEAP_MEM_POOL_SIZE=4096

CONFIG_BT=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_GATT_CLIENT=n
CONFIG_BT_HRS_CLIENT=n
CONFIG_BT_GATT_DM=n

CONFIG_BT_SCAN=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_SCAN_FILTER_ENABLE=y
# CONFIG_BT_SCAN_UUID_CNT=1
CONFIG_BT_SCAN_MANUFACTURER_DATA_CNT=3
CONFIG_BT_SCAN_MANUFACTURER_DATA_MAX_LEN=255


CONFIG_BT_EXT_ADV=y
CONFIG_BT_USER_PHY_UPDATE=y


Do you have an idea ?

Thanks in advance.

Best regards,

julien

Related