is it possible to run openthread sleepy end device on nRF52840 with ultra low power ~ 3 to 10 uA ?
The detailed explanation :I'm working on a coin cell battery Thread Sensor Tag where I would like to achieve low power sleep between sensors broadacst
This is the project page
https://www.homesmartmesh.com/docs/microcontrollers/nrf52/thread_sensortag/More specifically, this is the openthread UDP broadcast application
https://www.homesmartmesh.com/docs/microcontrollers/nrf52/thread_sensortag/#tag_sensors_broadcastThis is the github link of the sample where I isolate the openthread udp broadcast
https://github.com/HomeSmartMesh/sdk-hsm-sensortag/tree/main/samples/tag_openthread_udpIn zephyr, when I call `
k_sleep(K_MSEC(3000));` the nRF52 goes in ~ 3 uA low power sleep unless a peripheral is enabled.
Now when using openthread, the radio peripheral stays on, I tried '
otThreadSetEnabled(openthread,false);' and '
net_if_down(net);' as you can see here
https://github.com/HomeSmartMesh/sdk-hsm-sensortag/blob/ec3d0518d4963f368c3dcbf1f4804e4b18fd1f42/samples/tag_openthread_udp/src/main.c#L79but they did not switch off the radio peripheral, to force switching it off, I tried using `
nrf_radio_power_set(NRF_RADIO,false);` I succeeded, but then the issue is that the openthread does not recover on next cycle not even with
nrf_radio_power_set(NRF_RADIO,true);
net_if_up(net);
otThreadSetEnabled(openthread,true);
as in here
https://github.com/HomeSmartMesh/sdk-hsm-sensortag/blob/ec3d0518d4963f368c3dcbf1f4804e4b18fd1f42/samples/tag_openthread_udp/src/main.c#L71This is my investigation on possible API but they're either not exposed to the app
otSysDeinit -> nrf5RadioDeinit -> nrf_802154_deinit -> nrf_802154_core_deinit -> nrf_802154_trx_disable -> nrf_radio_power_set ->
* otSysDeinit : only in platoform includes
* nrf5RadioDeinit : not compiled for nRF52840
* nrf_802154_deinit : calls nrf_802154_core_deinit
* nrf_802154_core_deinit : conditional call for nrf_802154_trx_disable();
* nrf_802154_init : does not call nrf_802154_trx_enable
* nrf_802154_trx_disable : on nrf_802154_trx.h which is not exposed
Back to the question, is it possible to run openthread sleepy end device on nRF52840 with ultra low power ~ 3 to 10 uA ? If so, is it configurable or how can I achieve that.