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

Low power Mesh node based on Lightswitch example by using proxy_stop() and mesh_disable()

Hello Devzone,

Here is my issue :
I want to have a low power mesh node that can just send message to other nodes. The device can enable and disable himself the mesh stack to send message and must never listen to other node once configured. I would like to have that with the example code "light switch server", so without using the LPN experimental example. That's because we don't want to implement friends,... in or network. I work with SDK for mesh 4.0.0 and I measure the current with the PPK on a DK (and also with a multimeter on a proto, same results).

I implement that this way now :

int main(void)
{
    initialize();
    start();
    
    uint32_t retval;
    retval = proxy_stop();
    //SEGGER_RTT_printf(0, "retval_stopproxy %d\n",retval);
    if (retval == NRF_SUCCESS)
    {
        retval = nrf_mesh_disable();
    }
    //SEGGER_RTT_printf(0, "mesh_disable %d\n",retval);
    

    for (;;)
    {
        (void)sd_app_evt_wait();
        //__WFE();
    }
}

The node disable the mesh to get in low power mode and then enable it to send data when needed (not in the code, not the issue here). My problem is that I can't get a power consumption of 4uA. I still have +- 100 uA after proxy_stop() and mesh_disable(). What is far too much for my application. See picture below :

It looks like there is still listening or advertising packets ... How can I disable this "radio" that is still consuming more than 10mA periodically ? To get an average consumption < 10uA ! 

Here is the shape of the packet :

I already read many posts but solutions didn't works for me ... Here are the links :

https://devzone.nordicsemi.com/f/nordic-q-a/43301/nrf_mesh_disable-function-changed-since-sdk-for-mesh-v3-1-0/180061#180061

https://devzone.nordicsemi.com/f/nordic-q-a/43460/power-consumption-explanation-for-idle-state-in-mesh-sdk/170160#170160

I didn't succeed to disable the HFCLK with these lines : NRF_CLOCK->TASKS_HFCLKSTOP=1; NRF_UART0->TASKS_STOPRX= 1;
(related to first link).

I believe the solution is to disable something but I don't know what and how.

Thank you very much for your help !!

Parents Reply Children
No Data
Related