nrf52833 failed to wake up from SOFT_OFF

Dear all,

I am developing a device that base on nrf52833, nrf connect sdk ver 2.0.0

The device run bluetooth mesh. And becase it was powered  by battery, so it must go into sleep mode, and wake up by GPIOs in specific scenarios.

This is the function that put the device into sleep mode

void app_system_sleep(struct k_work *work_tem) {
	nrf_gpio_cfg_sense_input(wake_pin_1, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW);
	nrf_gpio_cfg_sense_input(wake_pin_2, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW);
	
	LREP(__func__,"Entering system off");
	bt_mesh_suspend();
	
	const struct pm_state_info si = {PM_STATE_SOFT_OFF, 0, 0};
	pm_state_force(0, &si);

	k_sleep(K_MSEC(100));
	
	LREP(__func__, "Exit sleep mode");
	NVIC_SystemReset();
}

After the deviced run for about 1-2 days, It failed to wake up via wake_pin_1 and wake_pin_2. And I must re-power it.
One thing I am not sure, when the device went into this error, Its current consumsion is about 500uA.
Please help me.
Best regards.
Parents
  • Hi

    Please check out this case, and the other tickets that are linked in it, which explains how low you should be able to go with a low power node (LPN) in Bluetooth Mesh. While still having the Mesh stack enabled you should be able to get down to ~14µA with the nRF52833, but as Hung suggests in this ticket, you can disable the Mesh stack entirely and go to deep sleep mode, only waking up when you want to transmit something (must be at least every 96 hours) to get down to ~4µA in sleep mode. Please note that the wake up and mesh stack enable will take some time and current, so this method is only "worth it" if the device wakes up very rarely.

    Best regards,

    Simon

Reply
  • Hi

    Please check out this case, and the other tickets that are linked in it, which explains how low you should be able to go with a low power node (LPN) in Bluetooth Mesh. While still having the Mesh stack enabled you should be able to get down to ~14µA with the nRF52833, but as Hung suggests in this ticket, you can disable the Mesh stack entirely and go to deep sleep mode, only waking up when you want to transmit something (must be at least every 96 hours) to get down to ~4µA in sleep mode. Please note that the wake up and mesh stack enable will take some time and current, so this method is only "worth it" if the device wakes up very rarely.

    Best regards,

    Simon

Children
  • Dears,

    Thank you for your response.

    you can disable the Mesh stack entirely and go to deep sleep mode, only waking up when you want to transmit something (must be at least every 96 hours) to get down to ~4µA in sleep mode

    My application is applying this solution. But if using LPN could reduce the current down to ~14uA, it is still a good solution.

    Does nrf Connect Sdk provides a function that  can check the Friend ship is established or not?

    Best regards.

Related