ENOBUFF Error on bt_enable callback

I started encountering a problem when calling bt_enable(ReturnCallBack). The ReturnCallBack function returns the error ENOBUFF (105). I assume it's a memory allocation issue in the Bluetooth stack. How can I solve this? How and where is the Bluetooth stack memory managed?

void ReturnCallBack( int err )
{
    if ( err )
    {
        LOG_WRN( "ReturnCallBack err %d", err );
        return;
    }

    k_sem_give( &bluetoothReady );
}

[...]

bt_enable( ReturnCallBack )

my prj.conf

################################################
### SYSTEM CONFIGURATION #######################
################################################
CONFIG_LOG=y
CONFIG_LOG_MAX_LEVEL=4
CONFIG_USE_SEGGER_RTT=y
CONFIG_RTT_CONSOLE=y
CONFIG_RING_BUFFER=y
CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_REBOOT=y
CONFIG_KERNEL_BIN_NAME="xxxxxx"
# CONFIG_DISABLE_FLASH_PATCH=y
CONFIG_POWEROFF=y
CONFIG_PM_DEVICE=y

# printf floats support
CONFIG_CBPRINTF_LIBC_SUBSTS=y
CONFIG_CBPRINTF_FP_SUPPORT=y

# time library support
CONFIG_NEWLIB_LIBC=y
CONFIG_POSIX_API=y

CONFIG_THREAD_NAME=y
CONFIG_TRACING=y
CONFIG_SEGGER_SYSTEMVIEW=y
CONFIG_TRACING_CONDVAR=n
CONFIG_TRACING_CTF_TIMESTAMP=y
CONFIG_TRACING_EVENT=y
CONFIG_TRACING_FIFO=y
CONFIG_TRACING_HEAP=n
CONFIG_TRACING_ISR=n
CONFIG_TRACING_LIFO=n
CONFIG_TRACING_MAILBOX=n
CONFIG_TRACING_MEMORY_SLAB=n
CONFIG_TRACING_MESSAGE_QUEUE=n
CONFIG_TRACING_MUTEX=y
CONFIG_TRACING_PIPE=n
CONFIG_TRACING_PM=n
CONFIG_TRACING_POLLING=n
CONFIG_TRACING_QUEUE=n
CONFIG_TRACING_SEMAPHORE=y
CONFIG_TRACING_STACK=y
CONFIG_TRACING_SYSCALL=n
CONFIG_TRACING_THREAD=y
CONFIG_TRACING_TIMER=n
CONFIG_TRACING_WORK=n

################################################
### SOC'S PERIPHERALS CONFIGURATION ############
################################################
CONFIG_GPIO=y
CONFIG_PWM=y
CONFIG_LED=y
CONFIG_I2C=y
CONFIG_SPI=y
CONFIG_USB_DEVICE_STACK=y
CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n
CONFIG_NRFX_SPIM2=y
# CONFIG_NRFX_TIMER1=y
CONFIG_NRFX_GPIOTE0=y
CONFIG_NRFX_GPIOTE1=y
CONFIG_NRFX_PPI=y
CONFIG_NRFX_QSPI=y                                  
CONFIG_NORDIC_QSPI_NOR=y                            
CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096  
CONFIG_USB_DEVICE_MANUFACTURER="xxxxxxxx"
CONFIG_USB_DEVICE_PRODUCT="xxxxxxxx"
CONFIG_USB_DEVICE_SN="xxxxxxxxx"
CONFIG_USB_DEVICE_PID=0x0002
CONFIG_USB_DEVICE_VID=0xAD5A

################################################
### NVS MEMORY CONFIGURATION ###################
################################################
CONFIG_NVS=y

################################################
### FLASH MEMORY SUPPORT CONFIGURATION #########
################################################
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_FLASH_MAP=y

################################################
### BLE CONFIGURATION ##########################
################################################
CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME="xxxxxx"
# CONFIG_BT_SMP=y
CONFIG_BT_DEVICE_APPEARANCE=1345
CONFIG_BT_MAX_CONN=1
CONFIG_BT_LL_SOFTDEVICE=y
CONFIG_BT_BUF_ACL_RX_SIZE=502
CONFIG_BT_ATT_PREPARE_COUNT=2
# CONFIG_BT_L2CAP_TX_BUF_COUNT=10
CONFIG_BT_L2CAP_TX_MTU=498
# CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
CONFIG_BT_CONN_TX_MAX=10
CONFIG_BT_BUF_ACL_TX_COUNT=10
CONFIG_BT_BUF_ACL_TX_SIZE=502
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
CONFIG_BT_CTLR_PHY_2M=y
CONFIG_BT_CTLR_RX_BUFFERS=2
CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=4000000
CONFIG_BT_CTLR_ADVANCED_FEATURES=y
CONFIG_BT_CTLR_CONN_RSSI=y

CONFIG_BT_USER_DATA_LEN_UPDATE=y
CONFIG_BT_USER_PHY_UPDATE=y
CONFIG_BT_PERIPHERAL_PREF_MIN_INT=6
CONFIG_BT_PERIPHERAL_PREF_MAX_INT=80
CONFIG_BT_PERIPHERAL_PREF_LATENCY=0
CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400
CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=n

################################################
### MASS STORAGE CONFIGURATION #################
################################################
CONFIG_USB_MASS_STORAGE=y
CONFIG_MASS_STORAGE_DISK_NAME="NAND"

################################################
### FILE SYSTEMFS CONFIGURATION ################
################################################
CONFIG_DISK_DRIVER_FLASH=y
CONFIG_FILE_SYSTEM=y
CONFIG_FAT_FILESYSTEM_ELM=y
CONFIG_FS_FATFS_LFN=y

################################################
### DFU CONFIGURATION ##########################
################################################
CONFIG_NET_BUF=y
CONFIG_ZCBOR=y
CONFIG_CRC=y
CONFIG_MCUMGR=y
CONFIG_STREAM_FLASH=y
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
CONFIG_MAIN_STACK_SIZE=4096
CONFIG_THREAD_MONITOR=y
CONFIG_MCUMGR_GRP_OS_TASKSTAT=y
CONFIG_STATS=y
CONFIG_STATS_NAMES=y
CONFIG_IMG_MANAGER=y
CONFIG_MCUMGR_GRP_IMG=y
CONFIG_MCUMGR_GRP_OS=y
CONFIG_MCUMGR_GRP_STAT=y
CONFIG_MCUBOOT_UTIL_LOG_LEVEL_WRN=y
CONFIG_SERIAL=y
CONFIG_UART_LINE_CTRL=y
CONFIG_CONSOLE=y
CONFIG_MCUMGR_TRANSPORT_UART=y
CONFIG_BASE64=y

Parents
  • Hi, 

    What NCS version are you using?

    Hope this example can help you. 

    Regards,
    Amanda H.

  • I added to my prj.conf the configurations you suggested. Many were already enabled, and I only had to activate

    CONFIG_BT_ATT_TX_COUNT=10
    CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
    CONFIG_BT_BUF_EVT_RX_COUNT=11

    However, even with this addition, I still get the same ENOBUFS error after calling bt_enable(). I'm using nRF Connect SDK version 2.9.1.

  • Try to enable:

    CONFIG_SETTINGS=y
    CONFIG_BT_SETTINGS=y

  • Even with these latest configurations, I still get the same error 105. Could you explain the reason? Is it related to memory allocation?

    My prj.conf updated

    ################################################
    ### SYSTEM CONFIGURATION #######################
    ################################################
    CONFIG_LOG=y
    CONFIG_LOG_MAX_LEVEL=4
    CONFIG_USE_SEGGER_RTT=y
    CONFIG_RTT_CONSOLE=y
    CONFIG_RING_BUFFER=y
    CONFIG_HEAP_MEM_POOL_SIZE=8192
    CONFIG_REBOOT=y
    CONFIG_KERNEL_BIN_NAME="xxxxxxx"
    # CONFIG_DISABLE_FLASH_PATCH=y
    CONFIG_POWEROFF=y
    CONFIG_PM_DEVICE=y
    CONFIG_SETTINGS=y
    
    # printf floats support
    CONFIG_CBPRINTF_LIBC_SUBSTS=y
    CONFIG_CBPRINTF_FP_SUPPORT=y
    
    # time library support
    CONFIG_NEWLIB_LIBC=y
    CONFIG_POSIX_API=y
    
    CONFIG_THREAD_NAME=y
    CONFIG_TRACING=y
    CONFIG_SEGGER_SYSTEMVIEW=y
    CONFIG_TRACING_CONDVAR=n
    CONFIG_TRACING_CTF_TIMESTAMP=y
    CONFIG_TRACING_EVENT=y
    CONFIG_TRACING_FIFO=y
    CONFIG_TRACING_HEAP=n
    CONFIG_TRACING_ISR=n
    CONFIG_TRACING_LIFO=n
    CONFIG_TRACING_MAILBOX=n
    CONFIG_TRACING_MEMORY_SLAB=n
    CONFIG_TRACING_MESSAGE_QUEUE=n
    CONFIG_TRACING_MUTEX=y
    CONFIG_TRACING_PIPE=n
    CONFIG_TRACING_PM=n
    CONFIG_TRACING_POLLING=n
    CONFIG_TRACING_QUEUE=n
    CONFIG_TRACING_SEMAPHORE=y
    CONFIG_TRACING_STACK=y
    CONFIG_TRACING_SYSCALL=n
    CONFIG_TRACING_THREAD=y
    CONFIG_TRACING_TIMER=n
    CONFIG_TRACING_WORK=n
    
    ################################################
    ### SOC'S PERIPHERALS CONFIGURATION ############
    ################################################
    CONFIG_GPIO=y
    CONFIG_PWM=y
    CONFIG_LED=y
    CONFIG_I2C=y
    CONFIG_SPI=y
    CONFIG_USB_DEVICE_STACK=y
    CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n
    CONFIG_NRFX_SPIM2=y
    # CONFIG_NRFX_TIMER1=y
    CONFIG_NRFX_GPIOTE0=y
    CONFIG_NRFX_GPIOTE1=y
    CONFIG_NRFX_PPI=y
    CONFIG_NRFX_QSPI=y                                  
    CONFIG_NORDIC_QSPI_NOR=y                            
    CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096  
    CONFIG_USB_DEVICE_MANUFACTURER="xxxxxxx"
    CONFIG_USB_DEVICE_PRODUCT="xxxxxxx"
    CONFIG_USB_DEVICE_SN="xxxxxxx"
    CONFIG_USB_DEVICE_PID=0x0002
    CONFIG_USB_DEVICE_VID=0xAD5A
    
    ################################################
    ### NVS MEMORY CONFIGURATION ###################
    ################################################
    CONFIG_NVS=y
    
    ################################################
    ### FLASH MEMORY SUPPORT CONFIGURATION #########
    ################################################
    CONFIG_FLASH=y
    CONFIG_FLASH_PAGE_LAYOUT=y
    CONFIG_MPU_ALLOW_FLASH_WRITE=y
    CONFIG_FLASH_MAP=y
    
    ################################################
    ### BLE CONFIGURATION ##########################
    ################################################
    CONFIG_BT=y
    CONFIG_BT_SETTINGS=y
    CONFIG_BT_PERIPHERAL=y
    CONFIG_BT_DEVICE_NAME="xxxxxxx"
    # CONFIG_BT_SMP=y
    CONFIG_BT_DEVICE_APPEARANCE=1345
    CONFIG_BT_MAX_CONN=1
    CONFIG_BT_LL_SOFTDEVICE=y
    CONFIG_BT_BUF_ACL_RX_SIZE=502
    CONFIG_BT_ATT_PREPARE_COUNT=2
    # CONFIG_BT_L2CAP_TX_BUF_COUNT=10
    CONFIG_BT_L2CAP_TX_MTU=498
    # CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
    CONFIG_BT_CONN_TX_MAX=10
    CONFIG_BT_BUF_ACL_TX_COUNT=10
    CONFIG_BT_BUF_ACL_TX_SIZE=502
    CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
    CONFIG_BT_CTLR_PHY_2M=y
    CONFIG_BT_CTLR_RX_BUFFERS=2
    CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=4000000
    CONFIG_BT_CTLR_ADVANCED_FEATURES=y
    CONFIG_BT_CTLR_CONN_RSSI=y
    
    CONFIG_BT_USER_DATA_LEN_UPDATE=y
    CONFIG_BT_USER_PHY_UPDATE=y
    CONFIG_BT_PERIPHERAL_PREF_MIN_INT=6
    CONFIG_BT_PERIPHERAL_PREF_MAX_INT=80
    CONFIG_BT_PERIPHERAL_PREF_LATENCY=0
    CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400
    CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=n
    
    CONFIG_BT_ATT_TX_COUNT=10
    CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
    CONFIG_BT_BUF_EVT_RX_COUNT=11
    
    ################################################
    ### MASS STORAGE CONFIGURATION #################
    ################################################
    CONFIG_USB_MASS_STORAGE=y
    CONFIG_MASS_STORAGE_DISK_NAME="NAND"
    
    ################################################
    ### FILE SYSTEMFS CONFIGURATION ################
    ################################################
    CONFIG_DISK_DRIVER_FLASH=y
    CONFIG_FILE_SYSTEM=y
    CONFIG_FAT_FILESYSTEM_ELM=y
    CONFIG_FS_FATFS_LFN=y
    
    ################################################
    ### DFU CONFIGURATION ##########################
    ################################################
    CONFIG_NET_BUF=y
    CONFIG_ZCBOR=y
    CONFIG_CRC=y
    CONFIG_MCUMGR=y
    CONFIG_STREAM_FLASH=y
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
    CONFIG_MAIN_STACK_SIZE=4096
    CONFIG_THREAD_MONITOR=y
    CONFIG_MCUMGR_GRP_OS_TASKSTAT=y
    CONFIG_STATS=y
    CONFIG_STATS_NAMES=y
    CONFIG_IMG_MANAGER=y
    CONFIG_MCUMGR_GRP_IMG=y
    CONFIG_MCUMGR_GRP_OS=y
    CONFIG_MCUMGR_GRP_STAT=y
    CONFIG_MCUBOOT_UTIL_LOG_LEVEL_WRN=y
    CONFIG_SERIAL=y
    CONFIG_UART_LINE_CTRL=y
    CONFIG_CONSOLE=y
    CONFIG_MCUMGR_TRANSPORT_UART=y
    CONFIG_BASE64=y

Reply
  • Even with these latest configurations, I still get the same error 105. Could you explain the reason? Is it related to memory allocation?

    My prj.conf updated

    ################################################
    ### SYSTEM CONFIGURATION #######################
    ################################################
    CONFIG_LOG=y
    CONFIG_LOG_MAX_LEVEL=4
    CONFIG_USE_SEGGER_RTT=y
    CONFIG_RTT_CONSOLE=y
    CONFIG_RING_BUFFER=y
    CONFIG_HEAP_MEM_POOL_SIZE=8192
    CONFIG_REBOOT=y
    CONFIG_KERNEL_BIN_NAME="xxxxxxx"
    # CONFIG_DISABLE_FLASH_PATCH=y
    CONFIG_POWEROFF=y
    CONFIG_PM_DEVICE=y
    CONFIG_SETTINGS=y
    
    # printf floats support
    CONFIG_CBPRINTF_LIBC_SUBSTS=y
    CONFIG_CBPRINTF_FP_SUPPORT=y
    
    # time library support
    CONFIG_NEWLIB_LIBC=y
    CONFIG_POSIX_API=y
    
    CONFIG_THREAD_NAME=y
    CONFIG_TRACING=y
    CONFIG_SEGGER_SYSTEMVIEW=y
    CONFIG_TRACING_CONDVAR=n
    CONFIG_TRACING_CTF_TIMESTAMP=y
    CONFIG_TRACING_EVENT=y
    CONFIG_TRACING_FIFO=y
    CONFIG_TRACING_HEAP=n
    CONFIG_TRACING_ISR=n
    CONFIG_TRACING_LIFO=n
    CONFIG_TRACING_MAILBOX=n
    CONFIG_TRACING_MEMORY_SLAB=n
    CONFIG_TRACING_MESSAGE_QUEUE=n
    CONFIG_TRACING_MUTEX=y
    CONFIG_TRACING_PIPE=n
    CONFIG_TRACING_PM=n
    CONFIG_TRACING_POLLING=n
    CONFIG_TRACING_QUEUE=n
    CONFIG_TRACING_SEMAPHORE=y
    CONFIG_TRACING_STACK=y
    CONFIG_TRACING_SYSCALL=n
    CONFIG_TRACING_THREAD=y
    CONFIG_TRACING_TIMER=n
    CONFIG_TRACING_WORK=n
    
    ################################################
    ### SOC'S PERIPHERALS CONFIGURATION ############
    ################################################
    CONFIG_GPIO=y
    CONFIG_PWM=y
    CONFIG_LED=y
    CONFIG_I2C=y
    CONFIG_SPI=y
    CONFIG_USB_DEVICE_STACK=y
    CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n
    CONFIG_NRFX_SPIM2=y
    # CONFIG_NRFX_TIMER1=y
    CONFIG_NRFX_GPIOTE0=y
    CONFIG_NRFX_GPIOTE1=y
    CONFIG_NRFX_PPI=y
    CONFIG_NRFX_QSPI=y                                  
    CONFIG_NORDIC_QSPI_NOR=y                            
    CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096  
    CONFIG_USB_DEVICE_MANUFACTURER="xxxxxxx"
    CONFIG_USB_DEVICE_PRODUCT="xxxxxxx"
    CONFIG_USB_DEVICE_SN="xxxxxxx"
    CONFIG_USB_DEVICE_PID=0x0002
    CONFIG_USB_DEVICE_VID=0xAD5A
    
    ################################################
    ### NVS MEMORY CONFIGURATION ###################
    ################################################
    CONFIG_NVS=y
    
    ################################################
    ### FLASH MEMORY SUPPORT CONFIGURATION #########
    ################################################
    CONFIG_FLASH=y
    CONFIG_FLASH_PAGE_LAYOUT=y
    CONFIG_MPU_ALLOW_FLASH_WRITE=y
    CONFIG_FLASH_MAP=y
    
    ################################################
    ### BLE CONFIGURATION ##########################
    ################################################
    CONFIG_BT=y
    CONFIG_BT_SETTINGS=y
    CONFIG_BT_PERIPHERAL=y
    CONFIG_BT_DEVICE_NAME="xxxxxxx"
    # CONFIG_BT_SMP=y
    CONFIG_BT_DEVICE_APPEARANCE=1345
    CONFIG_BT_MAX_CONN=1
    CONFIG_BT_LL_SOFTDEVICE=y
    CONFIG_BT_BUF_ACL_RX_SIZE=502
    CONFIG_BT_ATT_PREPARE_COUNT=2
    # CONFIG_BT_L2CAP_TX_BUF_COUNT=10
    CONFIG_BT_L2CAP_TX_MTU=498
    # CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
    CONFIG_BT_CONN_TX_MAX=10
    CONFIG_BT_BUF_ACL_TX_COUNT=10
    CONFIG_BT_BUF_ACL_TX_SIZE=502
    CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
    CONFIG_BT_CTLR_PHY_2M=y
    CONFIG_BT_CTLR_RX_BUFFERS=2
    CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=4000000
    CONFIG_BT_CTLR_ADVANCED_FEATURES=y
    CONFIG_BT_CTLR_CONN_RSSI=y
    
    CONFIG_BT_USER_DATA_LEN_UPDATE=y
    CONFIG_BT_USER_PHY_UPDATE=y
    CONFIG_BT_PERIPHERAL_PREF_MIN_INT=6
    CONFIG_BT_PERIPHERAL_PREF_MAX_INT=80
    CONFIG_BT_PERIPHERAL_PREF_LATENCY=0
    CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400
    CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=n
    
    CONFIG_BT_ATT_TX_COUNT=10
    CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
    CONFIG_BT_BUF_EVT_RX_COUNT=11
    
    ################################################
    ### MASS STORAGE CONFIGURATION #################
    ################################################
    CONFIG_USB_MASS_STORAGE=y
    CONFIG_MASS_STORAGE_DISK_NAME="NAND"
    
    ################################################
    ### FILE SYSTEMFS CONFIGURATION ################
    ################################################
    CONFIG_DISK_DRIVER_FLASH=y
    CONFIG_FILE_SYSTEM=y
    CONFIG_FAT_FILESYSTEM_ELM=y
    CONFIG_FS_FATFS_LFN=y
    
    ################################################
    ### DFU CONFIGURATION ##########################
    ################################################
    CONFIG_NET_BUF=y
    CONFIG_ZCBOR=y
    CONFIG_CRC=y
    CONFIG_MCUMGR=y
    CONFIG_STREAM_FLASH=y
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
    CONFIG_MAIN_STACK_SIZE=4096
    CONFIG_THREAD_MONITOR=y
    CONFIG_MCUMGR_GRP_OS_TASKSTAT=y
    CONFIG_STATS=y
    CONFIG_STATS_NAMES=y
    CONFIG_IMG_MANAGER=y
    CONFIG_MCUMGR_GRP_IMG=y
    CONFIG_MCUMGR_GRP_OS=y
    CONFIG_MCUMGR_GRP_STAT=y
    CONFIG_MCUBOOT_UTIL_LOG_LEVEL_WRN=y
    CONFIG_SERIAL=y
    CONFIG_UART_LINE_CTRL=y
    CONFIG_CONSOLE=y
    CONFIG_MCUMGR_TRANSPORT_UART=y
    CONFIG_BASE64=y

Children
Related