HCI_LE_BIG_Create_Sync returns "Encryption Mode Not Acceptable (0x25)"

When trying to receive an LE Audio broadcast, issuing an HCI_LE_BIG_Create_Sync command with parameters obtained after scanning for ISO broadcasts, the 

HCI_LE_BIG_Sync_Established event returns with status == 0x25 (Encryption Mode Not Acceptable). 
The `encryption` field of the `HCI_LE_BIG_Create_Sync` command is set to 1, and the `broadcast_code` set to the appropriate broadcast code for this broadcast.
The broadcast is definitely encrypted (and trying with `encryption` set to 0, just for testing, also results in the same error).
The exact same command works with a different controller.
This was tested with nrfConnect SDK 3.0.2, on an nrf52840DK boards, with the BT SoftDevice configuration. Other that this error, everything seems to be working fine (I can see broadcasts in scans, and I can receive non-encrypted broadcasts).
Any idea what may be wrong, and how to troubleshoot this?
  • Hi

    This was tested with nrfConnect SDK 3.0.2, on an nrf52840DK boards, with the BT SoftDevice configuration.

    So this was using the Softdevice Controller as well, and not a third party controller? The NRF5340 is what we recommend for LE Audio, though I hear that the zephyr audio samples do work with the 52840. Though I am not 100% sure about the nordic samples for it. It doesn't have the CPU rate like nRF5340, so probably it is hard to broadcast a high quality stream. And we haven't well tested this solution, so it is a hard to give a solid answer regarding the quality.

    Is what you are running based on the default nordic audio application/sample?

    Regards,

    Elfving

  • Yes, this is using the SoftDevice controller. The error here shouldn't be related to HW capabilities (it's not about an issue with maintaining a high quality stream), it's an error explicitly returned for the command that sets up the ISO stream with encryption (ISO streaming itself works fine, I can receive ISO broadcasts that are not encrypted). 

    The Zephyr sample app I use here is the `hci_uart` sample (with a configuration that adds support for ISO streams), which lets me send HCI commands over the serial port. the `HCI_LE_BIG_Create_Sync` command ends up calling the SoftDevice lib function `sdc_hci_cmd_le_big_create_sync`.

    I have verified that using the same command with a 3rd party controller works just fine, so I know the parameters and command sequence works.

    Since the SoftDevice lib is only supplied as a precompiled library, it's hard to troubleshoot and determine what causes it to return the "Encryption Mode Not Acceptable" error.

  • Is that the case with the zephyr controller as well? I assume this is what the sample selects by default. Audio development is so cutting edge that there might be some differences regarding what the different controllers support, so using the controller that the sample was created for might be best. Though I am not immediately seeing what shouldn't be supported by SDC here.

    Regards,

    Elfving

  • I have tried the same thing with the Zephyr controller (`CONFIG_BT_LL_SOFTDEVICE=n`), and in that case I don't get the error. The `HCI_LE_BIG_Create_Sync` command succeeds (I subsequently receive an `HCI_LE_Create_BIG_Complete` event, with `status==SUCCESS`). So this is really just an issue with the SoftDevice controller implementation.

  • Had a talk with the relevant team here, and LE Audio for nRF52840 is simply not something that we support. Though when it comes to further details than that, nRF52820 and nRF52833 are the nRF52 Series devices that support encrypting and decrypting the Isochronous Channels packets. nRF52840 does not support BIG encryption though. That means that the zephyr controller should complain in this situation as well, so it is odd that it does not. The team is looking into it

    I would recommend you to switch to the nRF5340

    Regards,

    Elfving

Related