Hi,
I am using thingy91 with NCS V2.4.0 SDK.
I have enabled settings for my devices mode store in flash. for mode of my device i created one settings variable.
first time power up device by default in deep sleep mode. and when we press button more then x time. device wake up and write setting flag -> normal mode. and reboot.
after every power cycle device boot in normal mode. that cycle i am trying to implement.
void enter_deep_sleep(void) { int err = 0; const struct pm_state_info si = {PM_STATE_SOFT_OFF, 0, 0}; printk("Entering deep sleep\n"); k_sleep(K_MSEC(100)); // Add a delay to allow logs to be printed // pm_state_force(0, &si); // pm_system_suspend(0, 0); // nrf_regulators_system_off(NRF_REGULATORS_NS); printk("Shutting down modem\n"); err = nrf_modem_at_printf("AT+CFUN=0"); if (err) { printk("AT+CFUN failed\n"); return 0; } nrf_modem_lib_shutdown(); // lte_lc_power_off(); k_sleep(K_SECONDS(1)); // nrf_regulators_system_off(NRF_REGULATORS_NS); pm_state_set(PM_STATE_SOFT_OFF, 0); // pm_system_suspend(0, 0); // nrf_power_system_off(NRF_POWER); }
I have try this code for enter sleep mode. before enter_deep_sleep intialise button interrupt and call back function detect x sec botton precss and change setting flag.
this scenario work for Normal mode -> sleep mode. but sleep mode -> normal mode not able to detect Button state. so not working.
first of all i need to know this flow is fine as per my requirement. if not then give some suggestion and also let me know what things missing in flow.
Thanks
Parth