Firmware hangs when calling bt_encrypt_be() during network traffic with MPSL + OpenThread v1.2 - but not with OpenThread v1.1

Hardware: nRF52840dk

SDK: NCS v2.0.0

application: 6064.coap_client_bt_encrypt.zip

Calling bt_encrypt_be() during OpenThread network traffic hangs the device when using MPSL with OpenThread 1.2.

The issue does not occur when using OpenThread 1.1.

steps to reproduce:

  1. build & flash attached appplication using OpenThread 1.2 to nRF52840dk
    1.  $~ west build -c -b nrf52840dk_nrf52840 . -DOVERLAY_CONFIG=overlay-multiprotocol_ble.conf && west flash
    2. Application is based on ncs samples/openthread/coap_client with call to bt_encrypt_be() in sys_work thread after bluetooth is connected.
    3. Connect serial console to USB ACM device. In my case: 
      $~ screen /dev/ttyACM1 -b 115200
  2. Using nRF Connect for Mobile, repeatedly connect/disconnect with the device and confirm that it does not hang.
    1. Disconnect from the device.
  3. Using the USB shell, create or join a Thread network and generate outgoing network traffic.
    1. ot ifconfig up
      ot thread start
      ot ping ff03::1 100 10
    2. note: my device was already commissioned, and I did not test the thread formation commands listed above.
    3. additional note: my device was part of a large & somewhat busy Thread network - I have not yet tested with a singleton.
  4. While the ping test is running, attempt to connect to the device with BLE - in my environment, it hangs the device within bt_encrypt_be().

To test with OpenThread 1.1:

  1.  In prj.conf, enable CONFIG_OPENTHREAD_THREAD_VERSION_1_1=y
    1. rebuild, reflash, and retest
    2. In my environment, bt_encrypt_be() runs in harmony with OpenThread 1.1 activity and the device does not hang.

Should I be able to use bt_encrypt_be() with OpenThread 1.2? How? Thank you.

Parents Reply Children
Related