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.

CC2564MODA: Unable to find A2DP device name on Android setting appilication as available device

Part Number: CC2564MODA
Other Parts Discussed in Thread: CC2564
I have question on TI Dual mode bluetooth chip.
Category:    Bluetooth module
Chip :   CC2564MODACMOG +TM4C1290NCPDTI3R
Stack :  stonestreet one v1.2 R2 Protocol Version 4.0
   
We use TI's dual mode bluetooth stack on chips above.  
Our application is based on TI's sample project, A2DPDemo and SPPLEDemo.
   
problem occurs as mentioned below.  
   
profile :A2DP, BLE(GATT)
   
problem
    I ran 2 profiles above simultaneously on our application.
    However, A2DP's device name does NOT displayed on
    central device(android smart phone) setting application as available device.
    GATT device name only displayed.
   
    A2DP device name is set by GAP_Set_Local_Device_Name() API
    GATT device name is set by GAPS_Set_Device_Name() API
   
remarks
    [procedure 1]
    I tapped GATT device name displayed on setting application,
    then displayed device name changed to A2DP device name.
    A2DP pairing sequence starts and complete.
    Next, made GATT connection by GATT tool application (nRFConnect, provided by Nordic).
    connection complets successfully.
   
    [procedure 2]
    I made GATT connection using GATT tool application( nRFConnect, provided by Nordic).
    Then watch android device setting application, found GATT device name only.
    No A2DP device name found.
    Then I tapped GATT device name, GATT bonding sequence starts.
   
I thinks it depends on smartphone OS, iOS seemingly OK. Android is NOT.
Do you think this problem is OS matter?
If not, please advise any information if available.
regards
  • Hi Suzuki-san,

    If I understand right, you are running the nRFConnect tool on mobile and trying to establish both an A2DP and GATT connection. On the iPhone, are you able to connect both A2DP and GATT simultaneously? 

    If you only run the A2DP demo (without SPPLEDemo), does the nRFConnect app find the A2DP device name?

    Thanks,
    Jacob

  • Hi Jacob

    I merged A2DPDemo and SPPLEDemo into one application.
    Try to connect gatt then a2dp.

    First, I make connection GATT by nRFConnect, that completes successfully.
    Then try to make a2dp pair by android setting appication, No a2dp devicename found.

    Tried to find a2dp demo (without sppledemo) by nRfConnect, no a2dp devicename found.
    I understand nRfConnect supports GATT only.

    I'd applitiate your reply.

    regards / suzuki

  • Hi Suzuki-san,

    If the nRFConnect only supports GATT, I think you will have to find another avenue for A2DP connections. I'm going to close this thread. If I did not fully address your question, you can reply here.

    Thanks,
    Jacob 

  • Hi Jacob, sorry for late reply.

    I found android tool that supports both BLE & Classic devicename detection. 

    toolname : [bluetooth scanner]

    https://play.google.com/store/apps/details?id=com.pzolee.bluetoothscanner&hl=ja&gl=US

    Tried 2 procedure as described below.

    --Procedure 1

    1. scan our product (CC2564) by above [bluetooth scanner], LE's device name found but Classic is not, and displayed protocol there is Dual mode (Classic & BLE). 

         I expected that both Classic and LE device name will be displayed individually, but was not.

    2. Then make pair by tapping [pairing], found that A2DP pair completed successfully.

    --Procedure 2 ( after Procedure 1 pair information cleared )  

    1. made GATT connection by nRFConnect, that went successfully.

    2. keep GATT connection alive, then just run [bluetooth scanner], found LE's device name only, and is marked as connected.

       unexpectedly, classic pair made automatically, just scanned , no pair operation.

       furthermore, nRFConnect's GATT connection lost. Seemingly GATT connection was overtaken by [bluetooth scanner], because

       no disconnection log was issued by bluetopia stack. 

    Do you think that is dut to android OS's manner?

    regards/suzuki

  • Hi Suzuki-san,

    I'll respond here later this week.

    Thanks,
    Jacob

  • Hi Suzuki-san,

    Sorry for the delay, I was out of office end of last week. Does the Bluetooth Scanner app you mentioned only pair with Bluetooth classic? Is it also able to handle BLE pairing?

    I have an iPhone and I use the Settings app for Bluetooth classic pairing and LightBlue for BLE pairing. Can you try nRFConnect or LightBlue for the BLE pairing and your Android's Settings app for A2DP pairing?

    Thanks,
    Jacob 

  • Hi Jacob, thanks for reply.

    >Does the Bluetooth Scanner app you mentioned only pair with Bluetooth classic? Is it also
    >able to handle BLE pairing?
    -> yes

    >Can you try nRFConnect or LightBlue for the BLE pairing and your Android's Settings app for A2DP pairing?
    -> I tried BLE pairing on Android nRFConnect, it failed.
    -> Android's Settings app for A2DP pairing prior to gatt connection established, it succeeds.
    when I established gatt connection prior to A2DP pair, it failed, gatt pair sequence runs instead.

    Here my speculation.

    As you know, TI CC2564 supports dual mode, however only provides one BD_ADDR.
    My guess is that iOS and Android setting app behaves differently,
    iOS associates devicename with classic, but android with LE.

    When I set unique devicenames on classic and LE, OS setting app displays one, not both.
    Because OS setting app supports on each BD_ADDR.

    Seemingly iOS displays as classic, Android as LE.
    So on Android, once gatt connection established, gatt pair sequence runs.

    May I have your opinion about above?

    regards / suzuki

  • Hi Shogo,

    I'll respond to this within a few days.

    Thanks,
    Jacob

  • Hi Suzuki-san,

    I think that the Android Settings app probably uses the BD_ADDR for connections similar to how the iOS Settings app uses the BD_ADDR for connections. It is interesting that you are able to pair A2DP and then establish a GATT connection, but you are not able to establish a GATT connection and then pair A2DP.   

    Can you solve your use case by running pairing A2DP first and then establishing a GATT connection? If you need to be able to initiate A2DP and GATT starting from either profile, we will probably need to take air sniffer logs to understand why the A2DP pairing fails after a GATT connection.

    Thanks,
    Jacob

  • Hi Jacob, thanks for your reply.

    As you mentioned, I'm going to set our use case, run a2dp pair, then make gatt connection.

    I think this is OS's behavior difference. Thank you very much your cooperation.

    regards / suzuki