This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2640R2F: ACL data in host_test app

Part Number: CC2640R2F


I am trying to evaluate this ti platform for a product development and I need to create a data pipe from a Bluetooth device which has full HCI support, to the TI board.

At the moment i am just running the host_test app and hoping to see the data coming across to the BTool.

In the host_test_app.c there is support for outgoing (to the host) ACL data, but how does the ACL packet need to be formatted on the sending side in order to come out to the BTool application? 

I have successfully sent GATT requests and received responses, but the request does not go all the way to the host, instead it seems to be processed in the stack. I thought that building with -DGATT_DB_OFF_CHIP would allow the GATT request to reach the host and then the host would be in charge of decoding the request  and sending a response.

Am I missing something or is my understanding completely wrong?

many thanks for your help

Carlo

  • Hi Carlo,

    I've assigned your post to an expert in our team. 

    Overall, it's my understanding that ACL is used within Classic Bluetooth, not BLE. Can you expand on this? What SDK are you using?

  • Hi Evan,

    thanks for your reply,

    I am using the simplelink_cc2640r2_sdk_4_20_00_04, more specifically the host_test from the bleStack examples and BTool, connecting to a bluetooth dongle. 

    ACL packets are used for both LE and classic, they are used to send data from/to the host for both GATT and L2CAP protocols.

    I have now managed to receive some data in BTool by creating an L2CAP connection, but the data arrives as an event and not as an ACL, so what I am asking, is if there is a way of transferring raw data without encapsulating in L2CAP, or if this is not supported by this device.

    My confusion comes from the fact that i can see the code in the host_test_app.c to handle ACL transfers to the host, but even when I use L2CAP the data comes as an event. So is that part of the software ever used? and if so, how does a packet need to be formatted to come out as an ACL? i have tried sending different ACL packets, but so far I have failed to get them to be sent to the host. 

    When I tried to send data in the other direction, so from the app i have sent a simple ACL to the dongle without L2CAP encapsulation, this was sent without any problem. 

    please let me know if you need further information.

    thanks

    Carlo

  • Hello. No, we do not support any data transmission below the L2CAP layer. What is your reasoning behind attempting this instead of using L2CAP?

  • Hi Tim,

    The reason I am asking is because the device at the other end does not support L2CAP natively, but just raw ACLs.

    So in order for me to use the CC2640R2F for product development i would have to implement the L2CAP layer on the other side. Not sure if this will be a viable option, because L2CAP is not adding any real benefit to our application but only extra complexity. 

    However, the CC2640R2F can send raw ACLs, when using the "HCI_SendDataPkt" function, and it doesn't require any L2CAP encapsulation.  

    is there any reason for this asymmetry in the TI ble stack?

    Thanks,

    Carlo