Can nRF5340 keep two links simultaneously? One BLE audio link with another nRF5340, one custom BLE link with Smart Phone for configuration

Hi,

I have kept following BLE audio since the nRF5340 audio DK was available. Recently, we came up with an idea of developing a broadcasting system. While we demoed the idea to potential customer, they required to control the BLE audio nodes with phone app, such as volume up, mute, etc. Is it possible to make a nRF5340 keep connected with 2 devices at the same time, one is on BLE audio, and another is a phone with normal BLE support? If not simultaneously, could be in the same firmware?

Thank you

Junmin

Parents
  • Hello Junmin,

    While we demoed the idea to potential customer, they required to control the BLE audio nodes with phone app, such as volume up, mute, etc. Is it possible to make a nRF5340 keep connected with 2 devices at the same time, one is on BLE audio, and another is a phone with normal BLE support? If not simultaneously, could be in the same firmware?

    Do I understand you correctly that you would like to make a broadcaster (BIS), that also connects to a phone over regular BLE connection (ACL connection) in order to control the broadcast's volume etc.?

    If I have understood you correctly, the answer is:
    Yes - you can add a peripheral or central role to the nRF5340 LE Audio reference application, no problem.
    The current controller is able to hold 2 concurrent ACL connections (regular BLE connections) in addition to the 1 or 2 BIS channels.

    If I have not understood you correctly, could you share a quick diagram for your intended topology, so that I can better understand what you would like to achieve?

    Best regards,
    Karl

Reply
  • Hello Junmin,

    While we demoed the idea to potential customer, they required to control the BLE audio nodes with phone app, such as volume up, mute, etc. Is it possible to make a nRF5340 keep connected with 2 devices at the same time, one is on BLE audio, and another is a phone with normal BLE support? If not simultaneously, could be in the same firmware?

    Do I understand you correctly that you would like to make a broadcaster (BIS), that also connects to a phone over regular BLE connection (ACL connection) in order to control the broadcast's volume etc.?

    If I have understood you correctly, the answer is:
    Yes - you can add a peripheral or central role to the nRF5340 LE Audio reference application, no problem.
    The current controller is able to hold 2 concurrent ACL connections (regular BLE connections) in addition to the 1 or 2 BIS channels.

    If I have not understood you correctly, could you share a quick diagram for your intended topology, so that I can better understand what you would like to achieve?

    Best regards,
    Karl

Children
  • Hello Karl,

    You understood me pretty well, thank you.

    Actually, in addition to broadcaster volume control, we'd like to control receiver volume independently also, but that's the same thing as broadcaster if we can add a peripheral or central role to receivers. I'll try you suggestion next week.

    Thank you for positive feedback before weekend.Smile

    Have a great weekend

    Junmin

  • Hello again, Junmin

    Junmin said:

    Thank you for positive feedback before weekend.Smile

    Have a great weekend

    Thank you for saying so - I hope you had a great weekend as well! :) 

    Junmin said:
    Actually, in addition to broadcaster volume control, we'd like to control receiver volume independently also, but that's the same thing as broadcaster if we can add a peripheral or central role to receivers. I'll try you suggestion next week.

    So long as you are under 2 ACL connections in addition to the BIS/BIG it will be fine to have additional central/peripheral roles in addition to the broadcast. You can make a quick trail on this by adding a regular central role to the existing nRF5340 LE Audio reference application, and connecting it to another device, and visa versa for the peripheral broadcast receiver.

    Let me know if you should encounter any other issues or questions when you give this a try! :)

    Best regards,
    Karl

  • Hello Karl,

    I tried today, but did get some issues.

    1. In order to add a ASL connection, it seems I can start from ble_core_init(ble_core_ready_t ready_callback) in ble_core.c or le_audio_enable(le_audio_rx_data_handler, audio_datapath_sdu_ref_update) defined in 4 different files with le_audio_cis_headset.c as default. However, I have no idea how to do further.

    2. I'd like add peripheral role in nRF5340 LE Audio DK to work with nRF Connect for Mobile or Nordic UART in nRF Toolbox for Bluetooth LE, but I can't scan nRF5340 Audio yet with the unchanged reference application in SDK 2.4.

    Regards

    Junmin

  • Hello Junmin,

    1. Did you also add the necessary changes to your prj.conf, to support the additional ACL link? I am not sure if I understand what you mean about it being defined in 4 different places, but please do not make any changes directly to the LE Audio architecture files like audio_datapath since this is not recommended as this might break something else unexpectedly.

    2. You can use this example as a reference for how to implement this - it is made for v2.3.0, but the steps are identical for v2.4.0.

    Best regards,
    Karl

  • Hello Karl,

    Per your suggestions, I created a new application with nRF5340 LE Audio reference application as template, and furthermore, I created a dedicated thread to run peripheral ISO, using the example you mentioned as reference. Also, prj.conf was modified according to the example. The console outputs are as following, could you give some clues to fix the err "Unable to register ISO server"?

    Thank you and Best Regards

    Junmin

    *** Booting Zephyr OS build v3.3.99-ncs1 ***
    HL [00:00:00.257,476] <inf> fw_info: fw_info_app_print:
    nRF5340 Audio nRF5340 Audio DK cpuapp
    NCS base version: 2.4.0
    Cmake run : Fri Aug 04 20:29:26 2023
    HL [00:00:00.257,507] <inf> fw_info: fw_info_app_print: ------- DEBUG BUILD -------
    HL [00:00:00.257,507] <inf> fw_info: fw_info_app_print: HEADSET left device
    HL [00:00:00.268,127] <inf> board_version: board_version_valid_check: Compatible board/HW version found: 1.0.0
    HL [00:00:00.302,490] <wrn> bt_hci_core: set_flow_control: Controller to host flow control not supported
    HL [00:00:00.307,556] <inf> bt_hci_core: bt_dev_show_info: Identity: C7:48:40:57:8F:D4 (random)
    HL [00:00:00.307,586] <inf> bt_hci_core: bt_dev_show_info: HCI: version 5.2 (0x0b) revision 0x0d15, manufacturer 0x07e8
    HL [00:00:00.307,617] <inf> bt_hci_core: bt_dev_show_info: LMP: version 5.2 (0x0b) subver 0x0d15
    HL [00:00:00.433,776] <inf> ble: mac_print: MAC: 44:43:CF:DA:0F:E1 (random)
    HL [00:00:00.433,990] <inf> ble: on_bt_ready: Controller version: 3349
    HL [00:00:00.527,862] <inf> ble_iso: uart_control_sub_thread: Bluetooth initialized
    HL [00:00:00.527,893] <inf> ble_iso: uart_control_sub_thread: Unable to register ISO server (err -112)
    HL [00:00:00.528,137] <inf> cis_headset: advertising_process: Advertising successfully started

Related