Can't use bt_enable when I use sysbuild and enabled IPC_RADIO

Hi, Team.

We are currently using NCS v2.7.0 with the sysbuild approach on the nRF5340. We referred to the nrf/sample/matter/lock code and copied its sysbuild configuration (as we need Matter support in the future).

However, we encountered an issue:

  • When enabling the network core IPC_RADIO, the bt_enable function in my code fails to execute properly. The underlying hci_core returns -11 (EAGAIN or resource unavailable).

  • When I disable IPC_RADIO and instead only use SB_CONFIG_NETCORE_HCI_IPC=y, the Bluetooth functionality works correctly.

Question:
1 - Did I miss any configuration steps to enable IPC_RADIO and  use bt_enable() work properly?

2 - Both Bluetooth and IEEE 802.15.4 are supported, so why does the Matter sample code use IPC_RADIO for the network core instead of Multiprotocol_RPMsg?
     Is there any particular reason for this?

Parents
  • Hi,

    ashun said:
    BLE and Thread should have a switching interface, is there any relevant documentation or sample code reference?

    Yes, BLE and Thread can coexist on the same device through Nordic’s multiprotocol support, but there are certain limitations. You can find details about this on the following page: Bluetooth LE and Thread Coexistence.

    Currently, we do not have any samples available to demonstrate running both BLE and Matter/Thread applications on the same device. Could you provide more information about your application, particularly how you plan to use BLE? This will help us understand your requirements better.

    ashun said:
    The Bluetooth of the network core IPC radio and the Bluetooth of the application core should also be different, right?

    Yes, the Bluetooth functionality on the network core IPC radio and the application core is different:

    • Network Core: Uses the IPC radio firmware.
    • Application Core: Operates with the SoftDevice Controller.

    Best regards,

    Charlie

Reply
  • Hi,

    ashun said:
    BLE and Thread should have a switching interface, is there any relevant documentation or sample code reference?

    Yes, BLE and Thread can coexist on the same device through Nordic’s multiprotocol support, but there are certain limitations. You can find details about this on the following page: Bluetooth LE and Thread Coexistence.

    Currently, we do not have any samples available to demonstrate running both BLE and Matter/Thread applications on the same device. Could you provide more information about your application, particularly how you plan to use BLE? This will help us understand your requirements better.

    ashun said:
    The Bluetooth of the network core IPC radio and the Bluetooth of the application core should also be different, right?

    Yes, the Bluetooth functionality on the network core IPC radio and the application core is different:

    • Network Core: Uses the IPC radio firmware.
    • Application Core: Operates with the SoftDevice Controller.

    Best regards,

    Charlie

Children
  • Hi,

    Could you provide more information about your application, particularly how you plan to use BLE? This will help us understand your requirements better.

    In our application code, we have custom Bluetooth information.

    During the Matter provisioning process, we need to temporarily switch the Bluetooth information to the one required for Matter, perform the provisioning, and once the provisioning is complete, switch the Bluetooth information back to our custom application-specific Bluetooth setup.

    We want to know if this approach will work as expected without causing issues.

    BLE and Thread both rely on the same IPC radio controlled by the netcore. Because of this shared resource, it is not feasible to run a BLE application alongside a Matter/Thread application simultaneously.

    BLE and Thread share the same radio resource, and Net core can only schedule one protocol to use that resource at a time.

    Therefore, during BLE provisioning, Thread network communication is paused. Once provisioning is complete, BLE releases the resource, allowing the Thread protocol to resume operation.

    During the Matter provisioning process, Bluetooth will occupy wireless communication resources, resulting in a temporary interruption of Thread network communication. Other devices that are already connected cannot receive or send messages through the Thread protocol during configuration.

    Is there any issue with my understanding? Or is there any issue or something should add?

    Thanks.

Related