This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Problems with Thread/BLE Multiprotocol on nrf52840 with s140 softdevice

Hallo everyone,

I'm using Eclipse IDE for C/C++ Version 2018-12 (4.10.0), my OS is Ubuntu 18.04.2 LTS and my hardware is the NRF52840 DK. I'm using the GCC C and C++ Compiler. 

I've got an already existing software which works and now i want to expand it. Currently, the software uses the OpenThread stack to communicate with other devices, now i want to add Bluetooth communication to it and i think that the S140 SoftDevice may be the right choice to handle the concurrent communication.

I've implemented the softdevice and BLE stack similar to the ble_thread_dyn_mtd_cli SDK example. The difference is, that I added the necessary files for the BLE stack from the SDK to be part of the Openthread stack. The BLE part works fine with the application doing a periodic advertisment, but the Thread stack does not work. When I try to set a channel with otLinkSetChannel, I always get the INVALID_ARGUMENT error, despite the channel number being valid. By investigating with debugging, I discovered that the mask with which the channel number is verified is zero, like no channel is available. 

The problems also occure when I'm not implementing my application and Thread, just the BLE stack and the softdevice, while setting up the Thread stack with the CLI. The CLI works (I can set the Thread network credentials like PAN ID, channel, etc.), but when wrte  "thread start", I get back "Error 5: Busy".

My initialisation of the softdevice and the BLE stack is the same as in the ble_thread_dyn_mtd_cli SDK example. Does someone know waht my problem could be?

Thanks in advance for your help.

Related