I am encountering warnings while attempting to send Bluetooth notifications in my Zephyr-based project. The warnings are preventing successful notification of ECG data. Below are the specifics:
Warnings
- W: No ATT channel for MTU 33
- W: No buffer available to send notification
Description
I have implemented a GATT service to send notifications for ECG data. While the string data of size 22 and i take array of size 30 can be read using the read
callback, notifications are failing with the two warnings listed above.
-
Warning 1: No ATT channel for MTU 33
-
Warning 2: No buffer available to send notification
Project Details
- Board: nRF52840
- Zephyr Version: v2.6.1
- Bluetooth Configuration: Using GATT services to send ECG data notifications.
Configurations in prj.conf
CONFIG_NCS_SAMPLES_DEFAULTS=y
CONFIG_DISABLE_FLASH_PATCH=y
#config basic
CONFIG_PRINTK=y
CONFIG_PWM=y
CONFIG_SHELL=y
CONFIG_LOG=y
#log configuration
CONFIG_MOOV_LOG_DEBUG=y
CONFIG_I2C=y
CONFIG_CBPRINTF_FP_SUPPORT=y
#configuration for LIS2DW12
CONFIG_LIS2DW12=y
CONFIG_LIS2DW12_TRIGGER_GLOBAL_THREAD=y
CONFIG_LIS2DW12_THRESHOLD=y
#configuration for cpu temp
CONFIG_SENSOR=y
CONFIG_ADC=y
CONFIG_SPI=y
#configuration for fuel gauge npm1300
CONFIG_REGULATOR=y
CONFIG_NRF_FUEL_GAUGE=y
#configuration for hw id
CONFIG_HW_ID_LIBRARY=y
CONFIG_HW_ID_LIBRARY_SOURCE_DEVICE_ID=y
#bluetooth configuration
CONFIG_BT=y
CONFIG_BT_SMP=y
CONFIG_BT_SMP_APP_PAIRING_ACCEPT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME="VC Manoj"
CONFIG_BT_BAS=y
CONFIG_BT_DIS=y
CONFIG_BT_DIS_PNP=y
CONFIG_BT_DIS_MANUF="DotcomIoTLLP"
CONFIG_BT_DIS_PNP_VID_SRC=2
CONFIG_BT_DIS_PNP_VID=0x1915
CONFIG_BT_DIS_PNP_PID=0xEEEB
CONFIG_BT_DIS_PNP_VER=0x0100
# Enable bonding
# CONFIG_BT_SETTINGS=y
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
CONFIG_NVS=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_BT_MAX_PAIRED=2
#Enable MCUBOOT bootloader build in the application
CONFIG_BOOTLOADER_MCUBOOT=y
#Set firmware image version
CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="1.0.1"
#Include MCUMGR and the dependencies in the build
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
CONFIG_MCUMGR_MGMT_NOTIFICATION_HOOKS=y
CONFIG_MCUMGR_GRP_IMG_STATUS_HOOKS=y
CONFIG_MAIN_STACK_SIZE=3072
#for power management
# Required to disable default behavior of deep sleep on timeout
CONFIG_PM_DEVICE=y
# Optional select RAM retention (nRF52 only)
CONFIG_APP_RETENTION=n
CONFIG_CRC=y
CONFIG_POWEROFF=y
#configurations for date and time
CONFIG_DATE_TIME=y
CONFIG_DATE_TIME_UPDATE_INTERVAL_SECONDS=0
CONFIG_DATE_TIME_TOO_OLD_SECONDS=0
CONFIG_DATE_TIME_NTP=y
CONFIG_NETWORKING=y
CONFIG_NET_SOCKETS=y
CONFIG_NCS_SAMPLES_DEFAULTS=y CONFIG_DISABLE_FLASH_PATCH=y #config basic CONFIG_PRINTK=y CONFIG_PWM=y CONFIG_SHELL=y CONFIG_LOG=y #log configuration CONFIG_MOOV_LOG_DEBUG=y CONFIG_I2C=y CONFIG_CBPRINTF_FP_SUPPORT=y #configuration for LIS2DW12 CONFIG_LIS2DW12=y CONFIG_LIS2DW12_TRIGGER_GLOBAL_THREAD=y CONFIG_LIS2DW12_THRESHOLD=y #configuration for cpu temp CONFIG_SENSOR=y CONFIG_ADC=y CONFIG_SPI=y #configuration for fuel gauge npm1300 CONFIG_REGULATOR=y CONFIG_NRF_FUEL_GAUGE=y #configuration for hw id CONFIG_HW_ID_LIBRARY=y CONFIG_HW_ID_LIBRARY_SOURCE_DEVICE_ID=y #bluetooth configuration CONFIG_BT=y CONFIG_BT_SMP=y CONFIG_BT_SMP_APP_PAIRING_ACCEPT=y CONFIG_BT_PERIPHERAL=y CONFIG_BT_DEVICE_NAME="VC Manoj" CONFIG_BT_BAS=y CONFIG_BT_DIS=y CONFIG_BT_DIS_PNP=y CONFIG_BT_DIS_MANUF="DotcomIoTLLP" CONFIG_BT_DIS_PNP_VID_SRC=2 CONFIG_BT_DIS_PNP_VID=0x1915 CONFIG_BT_DIS_PNP_PID=0xEEEB CONFIG_BT_DIS_PNP_VER=0x0100 # Enable bonding # CONFIG_BT_SETTINGS=y CONFIG_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_MAP=y CONFIG_NVS=y CONFIG_MPU_ALLOW_FLASH_WRITE=y CONFIG_BT_MAX_PAIRED=2 #Enable MCUBOOT bootloader build in the application CONFIG_BOOTLOADER_MCUBOOT=y #Set firmware image version CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="1.0.1" #Include MCUMGR and the dependencies in the build CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y CONFIG_MCUMGR_MGMT_NOTIFICATION_HOOKS=y CONFIG_MCUMGR_GRP_IMG_STATUS_HOOKS=y CONFIG_MAIN_STACK_SIZE=3072 #for power management # Required to disable default behavior of deep sleep on timeout CONFIG_PM_DEVICE=y # Optional select RAM retention (nRF52 only) CONFIG_APP_RETENTION=n CONFIG_CRC=y CONFIG_POWEROFF=y #configurations for date and time CONFIG_DATE_TIME=y CONFIG_DATE_TIME_UPDATE_INTERVAL_SECONDS=0 CONFIG_DATE_TIME_TOO_OLD_SECONDS=0 CONFIG_DATE_TIME_NTP=y CONFIG_NETWORKING=y CONFIG_NET_SOCKETS=y
Expected Behavior
The client should receive ECG data notifications over Bluetooth successfully.
Actual Behavior
Bluetooth notifications fail with the warnings mentioned above, and no data is transmitted to the client.
Steps Taken
- Configured MTU size in
prj.conf
file as shown above.
Steps to Reproduce
- Set up a GATT service that supports notifications on the nRF52840 board.
- Attempt to notify clients with ECG data over Bluetooth.
Additional Information
- I am using Zephyr NCS v2.6.1.
- The board in use is nRF52840.
Any help or insights into resolving these warnings would be greatly appreciated.