nRF5340 Audio: wanting to play music from a phone device

Hello,

I'm a little new to this, so sorry if I'm not asking the right questions. I want to be able to connect my phone to my nRF5340 to use as headset with Bluetooth (using this project as a guide: https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/applications/nrf5340_audio/README.html#i2s-based-firmware-for-gateway-and-headsets). However, when I pair with a phone (an iPhone in my case), the phone does not seem to recognize it as an audio sink.

It advertises Audio Stream Control and Published Audio Capabilities as services.

Question 1: Are these services enough to receive audio from the phone?

Question 2: I'm assuming services are all I need to know in order to pair and receive audio from my phone, is this true?

Parents
  • Hi, 

    What NCS version are you using? Could you try the latest version v2.3.0?

    when I pair with a phone (an iPhone in my case), the phone does not seem to recognize it as an audio sink.

    Could you provide more detail? Can you test with nRF Connect mobile and provide the log from it and the log from the nRF5340 ADK?

    Are you using BIS or CIS mode?

    If you want to use the mobile phone to connect the headset, please do not turn on the gateway since the gateway will scan and connect with the headset immediately. Pressing button 5 during boot-up can erase the bonding info on the nRF5340 audio DK. 

    Question 1: Are these services enough to receive audio from the phone?

    Yes.

    Question 2: I'm assuming services are all I need to know in order to pair and receive audio from my phone, is this true?

    Yes. 

    Regards,
    Amanda H.

  • Thanks for the response.

    I am using v2.3.0. I am using CIS mode. I've attached the requested logs below.

    I just want to transmit some music from Apple Music on my iPhone to be played on the headset. When I see the listed Bluetooth audio devices in the Apple Music app, I don't see the headset as an option despite being able to connect to it.

    Just in case this might be helpful, I'm not using the nRF5340 audio DK. I ported the software over to a EVK-NORA-B100 in preparation for developing for a custom board.

    Turning Off Scanner...
    
    Scanner On.
    
    Device Scanned.
    
    [Callback] centralManager(central, didDiscover: peripheral, advertisementData: ["kCBAdvDataIsConnectable": 1, "kCBAdvDataRxPrimaryPHY": 129, "kCBAdvDataServiceUUIDs": <__NSArrayM 0x280fe9530>(
    
    184E,
    
    1850
    
    )
    
    , "kCBAdvDataLocalName": NRF5340_AUDIO, "kCBAdvDataRxSecondaryPHY": 2, "kCBAdvDataTimestamp": 705800664.238415], rssi: -43)
    
    Device Appearance switched from Generic to Nordic.
    
    Attempting to connect...
    
    cbCentralManager.connect()
    
    [Callback] centralManager(central, didConnect: peripheral)
    
    Connected.
    
    Discovering Services...
    
    peripheral.discoverServices(nil)
    
    [Callback] peripheral(peripheral, didDiscoverServices: nil)
    
    Discovered Audio Stream Control, Published Audio Capabilities, Volume Control, Coordinated Set Identification, and Common Audio Services.
    
    Discovering Characteristics for Audio Stream Control...
    
    peripheral.discoverCharacteristics(nil, for: 184E)
    
    Discovering Characteristics for Published Audio Capabilities...
    
    peripheral.discoverCharacteristics(nil, for: 1850)
    
    Discovering Characteristics for Volume Control...
    
    peripheral.discoverCharacteristics(nil, for: 1844)
    
    Discovering Characteristics for Coordinated Set Identification...
    
    peripheral.discoverCharacteristics(nil, for: 1846)
    
    Discovering Characteristics for Common Audio...
    
    peripheral.discoverCharacteristics(nil, for: 1853)
    
    [Callback] peripheral(peripheral, didDiscoverCharacteristicsFor: 184E, error: nil)
    
    Discovering Descriptors for Characteristic ASE Control Point...
    
    peripheral.discoverDescriptors(for: 2BC6)
    
    Discovering Descriptors for Characteristic Sink ASE...
    
    peripheral.discoverDescriptors(for: 2BC4)
    
    Discovered Characteristics ASE Control Point and Sink ASE for Service Audio Stream Control.
    
    [Callback] peripheral(peripheral, didDiscoverCharacteristicsFor: 1850, error: nil)
    
    Discovering Descriptors for Characteristic Sink PAC...
    
    peripheral.discoverDescriptors(for: 2BC9)
    
    Discovering Descriptors for Characteristic Sink Audio Locations...
    
    peripheral.discoverDescriptors(for: 2BCA)
    
    Discovering Descriptors for Characteristic Available Audio Contexts...
    
    peripheral.discoverDescriptors(for: 2BCD)
    
    Discovering Descriptors for Characteristic Supported Audio Contexts...
    
    peripheral.discoverDescriptors(for: 2BCE)
    
    Discovered Characteristics Sink PAC, Sink Audio Locations, Available Audio Contexts, and Supported Audio Contexts for Service Published Audio Capabilities.
    
    [Callback] peripheral(peripheral, didDiscoverCharacteristicsFor: 1844, error: nil)
    
    Discovering Descriptors for Characteristic Volume State...
    
    peripheral.discoverDescriptors(for: 2B7D)
    
    Discovering Descriptors for Characteristic Volume Control Point...
    
    peripheral.discoverDescriptors(for: 2B7E)
    
    Discovering Descriptors for Characteristic Volume Flags...
    
    peripheral.discoverDescriptors(for: 2B7F)
    
    Discovered Characteristics Volume State, Volume Control Point, and Volume Flags for Service Volume Control.
    
    [Callback] peripheral(peripheral, didDiscoverCharacteristicsFor: 1846, error: nil)
    
    Discovering Descriptors for Characteristic Set Identity Resolving Key...
    
    peripheral.discoverDescriptors(for: 2B84)
    
    Discovering Descriptors for Characteristic Coordinated Set Size...
    
    peripheral.discoverDescriptors(for: 2B85)
    
    Discovering Descriptors for Characteristic Set Member Lock...
    
    peripheral.discoverDescriptors(for: 2B86)
    
    Discovering Descriptors for Characteristic Set Member Rank...
    
    peripheral.discoverDescriptors(for: 2B87)
    
    Discovered Characteristics Set Identity Resolving Key, Coordinated Set Size, Set Member Lock, and Set Member Rank for Service Coordinated Set Identification.
    
    [Callback] peripheral(peripheral, didDiscoverCharacteristicsFor: 1853, error: nil)
    
    Service Common Audio has no Characteristics.
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2BC6, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic ASE Control Point
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2BC4, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic Sink ASE
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2BC9, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic Sink PAC
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2BCA, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic Sink Audio Locations
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2BCD, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic Available Audio Contexts
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2BCE, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic Supported Audio Contexts
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2B7D, error: nil)
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2B7E, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic Volume State
    
    Characteristic Volume Control Point has no Descriptors.
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2B7F, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic Volume Flags
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2B84, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic Set Identity Resolving Key
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2B85, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic Coordinated Set Size
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2B86, error: nil)
    
    Discovered Client Characteristic Configuration for Characteristic Set Member Lock
    
    [Callback] peripheral(peripheral, didDiscoverDescriptorsFor: 2B87, error: nil)
    
    Characteristic Set Member Rank has no Descriptors.
    
    Scanner Off.
    
    
    
    
    HL [00:00:00.253,814] <inf> fw_info: ------- DEBUG BUILD -------
    HL [00:00:00.253,814] <inf> fw_info: HEADSET left device
    HL [00:00:00.269,226] <wrn> bt_hci_core: Controller to host flow control not supported
    HL [00:00:00.272,888] <inf> bt_hci_core: No ID address. App must call settings_load()
    HL [00:00:00.272,949] <inf> ble: MAC: 00:00:00:00:00:00 (public)
    HL [00:00:00.273,529] <inf> ble: Controller version: 3330
    HL [00:00:00.276,245] <inf> bt_settings: Saving ID
    HL [00:364,349] <inf> cis_headset Advertising successfully started
    HL [00:01:59.361,053] <inf> cis_headset: Connected: 7A:F3:CF:D7:F1:AB (random)
    
    

  • Hi, 

    Isaac Ahlgren said:
    I'm not using the nRF5340 audio DK. I ported the software over to a EVK-NORA-B100 in preparation for developing for a custom board.

    Can you test with nRF5340Audio DK?

    EVK-NORA-B100 seems to only have nRF5340, but no Audio codec to support Audio. 

    -Amanda H. 

Reply Children
Related