I'm trying to place my device in a low power mode for shipping. I used Logging and CLI while its in operation, but I'd like a way to enable/disable the CLI+Logging over BLE. As the UART backend consumes power, I would like a way to disable these modules. I've tried using nrf_cli_stop(), which seems to work, but when I try and re-enable the with nrf_cli_start() I immediately get an error in nrf_cli_uart.c in the rx_try() function. It fails at line 64 as it tries to allocate memory with a nrf_ringbuf_alloc() call. Is there a different API I should be using for this?
Can you try to manually start/stop RX do the trick? E.g.:
So the the current consumption is high after calling:
NRF_UART0->TASKS_STARTRX = 1; // Ready to receive data.
And the current consumption will go low when calling:
NRF_UART0->TASKS_STOPRX= 1; // Stop receive UART data.
Unfortunately that does not seem to reduce the current consumption, nor the CLI Blocking/waiting to receive
Hi. I`ve had the same issue here (SDK 14.2) and finally managed to do a workaround when doing an cli_uninit() call after stop and for waking up again first cli_init() then cli_start(). Maybe it could be helpful for you too.