Hi.
I am working on a low power BLE mesh device, based on the nRF52832, that uses vendor models. By default it consumes about 7mA.
Aside from that, I have been able to get the power consumption down to 3uA in a low power mode, in another (non BLE) project.
struct pm_state_info info = { .exit_latency_us = 0, .min_residency_us = 0, .state = PM_STATE_SUSPEND_TO_RAM, .substate_id = 0, }; pm_state_force(CPU_ID, &info); const struct device *cons = device_get_binding(CONSOLE_LABEL); // get UART binding int rc = pm_device_action_run(cons, PM_DEVICE_ACTION_SUSPEND); // disable UART k_sleep(K_SECONDS(5)); // sleep for 5 seconds rc = pm_device_action_run(cons, PM_DEVICE_ACTION_RESUME); // enable UART again
However, when I try to use the same code to get the BLE mesh device to sleep, it makes next to no difference, the power draw reduces from 7mA to 6.8 mA.
I also used mesh suspend, mesh resume, and BT disable commands.
bt_mesh_suspend(); bt_disable(); k_sleep(K_SECONDS(5)); // sleep for 5 seconds bt_mesh_resume();
That didn't make any difference either.
Is there a proper way to turn off BLE and BLE mesh, before putting the chip into sleep mode? Most of the references and examples I find here are for nRF5 SDK for Mesh but I am using nRF Connect.
Any help would be greatly appreciated. Thanks in advance