During my research of using S2LP based radio interface (STM’s X-NUCLEO-S2868A2) with mbed OS and its Nanostack in 6LoWPAN-ND and Thread mesh networks scenarios, I discovered that according to RF 802.15.4 porting guide available here the radio interface driver available in mbed OS has to stay in RX mode. Unfortunately, this mode drains too much current (~8mA) to make such host implementation appropriate for battery powered devices, while the radio supports low power modes such as e.g. standby or low duty cycle. I already tried setting the NET_6LOWPAN_SLEEPY_HOST (6LoWPAN-ND) or THREAD_DEVICE_MODE_SLEEPY_END_DEVICE (Thread) but for the former it in fact does not change anything regarding the sleeping state and for the latter it makes the node not able to connect to border router to perform the bootstrap (it seems that it does not see the beacon frames).
As the “always in RX” behaviour is quite obvious for always active host / router nodes, I wonder if implementation of sleepy host end device is feasible at all in current version of Nanostack with either no or minimal changes to code ? Of course, I realize that the changes to radio driver are also needed then but they seems to be less painful and easier than diving into Nanostack which is quite complex.
Is mbed team working on or anyone has an experience on running the sleepy host functionality for any mesh network type in mbed OS ?
Any ideas, suggestions are highly appreciated.