l2cap implementation on nrf5340

hello 

i have been using nrf5340 with ncs 1.9.1 i want to enable psm over l2cap in our firmware

# Using L2CAP library, we are able to connect, start recording and ask device to send audio data recorded. This is done similar to GATT existing implementation i know that the currently valid values for LE PSMs are 0x0001 - 0x007f for fixed Bluetooth SIG-defined services, and 0x0080 - 0x00ff for dynamic "custom” services as we don’t have implementation of PSM in firmware, we are unable to utilize L2CAP using current firmware due to which it is failing to open L2CAP channel and and unknown identifier error is streamed to device  may i know how can i add these values i using this to send the data to central  bt_gatt_notify_uuid do i need to change this api or configuration changes is enough

my prof.con app

#Enable MTU negotiation
CONFIG_BT_DATA_LEN_UPDATE=y
#Maximum supported L2CAP MTU for L2CAP buffers
CONFIG_BT_BUF_ACL_RX_SIZE=251
CONFIG_BT_BUF_ACL_TX_SIZE=251
# AG added
CONFIG_BT_L2CAP_TX_MTU=251  
# AG added
#CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
CONFIG_BT_L2CAP_TX_BUF_COUNT=16

# ATT and GATT options
#  30 ms(24) -> AG CHANGED -> 10ms(8)
CONFIG_BT_PERIPHERAL_PREF_MIN_INT=6
# 100 ms(80) -> AG CHANGED -> 12.5ms(10)
CONFIG_BT_PERIPHERAL_PREF_MAX_INT=9

CONFIG_BT_USER_DATA_LEN_UPDATE=y
CONFIG_BT_USER_PHY_UPDATE=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

hci_rpmsg.con 
CONFIG_BT_BUF_ACL_TX_SIZE=251
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
CONFIG_BT_BUF_ACL_RX_SIZE=251

CONFIG_BT_MAX_CONN=2
may i know how to implement psm in our firmware 
Parents Reply
  • Hi Manikandan, 


    We actually have example that uses L2CAP. You can take a look at the central_otc and the peripheral_ots. They use L2CAP channel under the hood to transfer object. You can find how L2CAP APIs are called inside ots_l2cap.c 
    Also check if the example can actually do the job that you are looking for. It should have better throughput than normal ATT data. 

    Another place you may want to take a look is inside \zephyr\tests\bsim\bluetooth\host\l2cap. This is where we have the projects for testing L2CAP. 

Children
Related