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.

Help to understand HCI ACL Command packet

Other Parts Discussed in Thread: CC2564

Hi,

I am new on Bluetooth development, and now I am trying to develop SPP application using CC2564 (without development board).

I connect CC2564 serial interface directly to computer and I execute HCI command until it discoverable, then I try to connect my android phone, but, I stuck until HCI ACL command :

  1.  02 01 20 0a 00 06 00 01 00 0a 01 02 00 02 00
    
        04 08 04 00 01 00 01
    
   2. 02 01 20 0c 00 08 00 01 00 02 02 04 00 01 00 41 00
   3. 02 01 20 0c 00 08 00 01 00 02 03 04 00 03 00 40 00

I have read Core_V4.0 bluetooth specification, I can understand HCI command and event, but, I can't understand HCI ACL packet that start with 02.

Can anyone explain me how  to understand above HCI ACL packet, byte per byte explanation will be better?.

Thank you,

Imam

  • Hi,

    Please check the L2CAP and "HCI ACL Data Packets" in the specification.

  • Hi Sundeep,

    I have check HCI ACL Data Packets, but, I still can not interpret the command, could you give me clue how to interpret it, for example : 

                      02 01 20 0A 00 06 00 01 00 0a 01 02 00 02 00

    as I read from the specification :

    02 = ACL packet

    01 20 = handle (01 20)

                   PB (00) : First non-automati-cally-flushable packet of Higher Layer Mes-sage (start of a non-automatically-flush-able L2CAP PDU) from Host to Control-ler.

                   BC (00) : Point-to-point

    0A 00 = Total lenght (10 bytes)

    06 00 01 00 0a 01 02 00 02 00 = ACL Data

    because it is L2CAP PDU, so, we must check L2CAP PDU data format bellow :

    As we can see from format above, we can interpret as :

    06 00 : Length

    01 00 : Channel ID

    0a 01 02 00 02 00 :  Information Payload

    Please correct me if I wrong.
    for 0a 01 02 00 02 00, I can't interpret it, could you help me to interpret it?

     

    Thank you,

     

    Imam

  • Hi,

    You have interpreted it right.

    and please check the "SIGNALING PACKET FORMATS" just after the "L2CAP PDU format on a signaling channel" you have pasted above and the Informative payload the first value 0a determines the Signaling Command Codes( in your case 0x0A is Information request). so see the 4.10 INFORMATION REQUEST (CODE 0x0A) section next.

  • Hi!

    I'm also trying to develop SPP application using CC2564 (without development board) and a PIC MCU to handle the UART communication with it.

    The device is discoverable but gets stuck when pairing with Android phone or usb bluetooth dongle.

    Before configuring the CC2564, I'm loading the following service pack correctly:

    /--------------------------------------------------------------------------------
    // Description : Orca 5500 L ROM Initialization Script
    //
    // Compatibility: Orca, 6.0.15 ROM
    //
    // Last Updated: 23-Feb-2014  22:54:21.08
    //
    // Version     : TI_P6_15.93
    //
    //
    //
    // Trio LMP Subversion: 1f5d
    // Orca LMP Subversion: 1b5d
    //
    // Notes       : Use this script on Orca 5500 L, 6.0.15 ROM device only (FW v6.0.15)
    //--------------------------------------------------------------------------------

    After that, I'm configuring the CC2564 sucessfully and afterwards I try to pair the device with a Android phone.

    Here are the commands sent and received by the MCU:

    TX: 01 03 0C 00                 
    RX EVENT: 04 0E 04 01 03 0C 00
    TX: 01 05 10 00                 
    RX EVENT: 04 0E 0B 01 05 10 00 FD 03 B4 04 00 04 00
    TX: 01 09 10 00                 
    RX EVENT: 04 0E 0A 01 09 10 00 BE 42 3F AB 78 CC
    TX: 01 05 0C 03 02 00 03         
    RX EVENT: 04 0E 04 01 05 0C 00
    TX: 01 24 0C 03 08 04 24         
    RX EVENT: 04 0E 04 01 24 0C 00
    TX: 01 13 0C 0D 50 49 43 33 32 2D 2D 2D 2D 31 39 30 00
    RX EVENT: 04 0E 04 01 13 0C 00    
    TX: 01 1A 0C 01 03
    RX EVENT: 04 0E 04 01 1A 0C 00    
    TX: 01 18 0C 02 00 40             
    RX EVENT: 04 0E 04 01 18 0C 00
    RX EVENT: 04 12 08 00 0E 79 4B AC F5 BC 00
    RX EVENT: 04 16 06 0E 79 4B AC F5 BC
    TX: 01 0D 04 17 0E 79 4B AC F5 BC 04 31 32 33 34 00 00 00 00 00 00 00 00 00 00 00 00
    RX EVENT: 04 0E 0A 01 0D 04 00 0E 79 4B AC F5 BC
    RX EVENT: 04 18 17 0E 79 4B AC F5 BC B7 DA 5D 2F DC 1B A9 64 C1 6C 29 E8 B0 77 DD DD 00
    TX: 01 11 0C 17 01 0E 79 4B AC F5 BC B7 DA 5D 2F DC 1B A9 64 C1 6C 29 E8 B0 77 DD DD
    RX EVENT: 04 0E 05 01 11 0C 00 01
    RX EVENT: 04 03 0B 00 01 00 0E 79 4B AC F5 BC 01 00
    RX EVENT: 04 20 07 0E 79 4B AC F5 BC 00
    RX EVENT: 04 1B 03 01 00 05
    RX ACL: 02 01 20 0A 00 06 00 01 00 0A 02 02 00 02 00
    TX: 02 01 20 0A 00 00 00 00 80 47 00 A0 00 00 00
    RX EVENT: 04 13 05 01 01 00 01 00
    RX ACL: 02 01 20 0C 00 08 00 01 00 02 03 04 00 01 00 40 00
    TX: 02 01 20 10 00 00 00 00 80 47 00 A0 00 00 00 00 00 00 00 00 00
    RX EVENT: 04 13 05 01 01 00 01 00
    TX: 02 01 20 0C 00 00 00 00 80 47 00 A0 00 00 00 00 00
    RX EVENT: 04 13 05 01 01 00 01 00
    RX ACL: 02 01 20 0C 00 08 00 01 00 02 04 04 00 01 00 41 00
    TX: 02 01 20 10 00 00 00 00 80 47 00 A0 00 00 00 00 00 00 00 00 00
    RX EVENT: 04 13 05 01 01 00 01 00
    TX: 02 01 20 0C 00 00 00 00 80 47 00 A0 00 00 00 00 00
    RX EVENT: 04 13 05 01 01 00 01 00
    RX EVENT: 04 05 04 00 01 00 13

    Anyone can detect the reason why the pairing is failing? The last event received means that a connection has been disconnected.

    Thank you in advance!

    Best regards