<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/120802/nrf52810-will-not-enter-deep-sleep-system-level-power-management</link><description>nRF52810 will not enter deep sleep (system level power management). The method used is through pm_policy_next_state, sleep entry function , sleep exit function, and PM notifier. All peripherals are suspended/disabled to ensure no blocking. These are in</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 13 Jun 2025 15:10:05 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/120802/nrf52810-will-not-enter-deep-sleep-system-level-power-management" /><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/539237?ContentTypeID=1</link><pubDate>Fri, 13 Jun 2025 15:10:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fc3e7be2-f7a7-4f82-a162-070b83dc966d</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I can see you mentioned on the other case (&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/120786/nrf52810-board-will-not-start-on-its-own-it-needs-the-rtt-viewer-to-be-connected-then-it-will-start-and-run"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/120786/nrf52810-board-will-not-start-on-its-own-it-needs-the-rtt-viewer-to-be-connected-then-it-will-start-and-run&lt;/a&gt;&amp;nbsp;&amp;nbsp;) that you are using v2.9.1.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you try to set&amp;nbsp;&lt;/span&gt;&lt;code dir="ltr"&gt;CONFIG_PM=y&lt;/code&gt;&lt;span&gt;&amp;nbsp;in NCS v2.9.0 for these devices, you will likely see warnings and the option will not be enabled.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I have some explanation here&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/support-private/support/346700"&gt;(+) Nordic DevZone&lt;/a&gt;&amp;nbsp;about implementing system on idle and deep sleep mode which you can look at.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/538532?ContentTypeID=1</link><pubDate>Sun, 08 Jun 2025 17:54:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c9b5ca4c-0ec5-481e-9a71-c33b499652c5</guid><dc:creator>epolicar</dc:creator><description>&lt;p&gt;My board is consuming huge current as much as 150mA. I resorted to power management to go into&amp;nbsp;deep sleep hoping that it will lower the current. But my board wouldn&amp;#39;t go to deep sleep thus&amp;nbsp;I raised this&amp;nbsp;ticket.&lt;br /&gt;&lt;br /&gt;I had another issue. See&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/120786/nrf52810-board-will-not-start-on-its-own-it-needs-the-rtt-viewer-to-be-connected-then-it-will-start-and-run"&gt;nRF52810 board will not start on its own. It needs the RTT Viewer to be connected, then it will start and run.&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;After solving that issue, my consumption&amp;nbsp;dropped to levels that are as expected. I may no longer need to go into deep sleep.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/538381?ContentTypeID=1</link><pubDate>Fri, 06 Jun 2025 09:34:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:47755934-0a61-45d9-bd71-248bdfeb7d1b</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code dir="ltr"&gt;CONFIG_HAS_PM&lt;/code&gt;&lt;span&gt;&amp;nbsp;is not user-configurable and is not enabled for nRF52810, so&amp;nbsp;we can not set this in the prj.conf file. System off on nRF52 series always wake up on reset. if you want to avoid reset you need to select Sytem on idle mode. That will not achieve the lowest current consumtion.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/537933?ContentTypeID=1</link><pubDate>Tue, 03 Jun 2025 18:01:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:44edd05b-4ecf-46c5-9c5c-495240221075</guid><dc:creator>epolicar</dc:creator><description>&lt;p&gt;I would like to follow up.&lt;br /&gt;&lt;br /&gt;Additional info.&lt;br /&gt;&lt;br /&gt;I realized that CONFIG_PM=n in menuconfig eventhough CONFIG_PM=y in prj.conf. I found out that CONFIG_HAS_PM=n. It needs to be &amp;#39;y&amp;#39;. However, CONFIG_HAS_PM=y in prj.conf is not allowed.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;How do I fix this?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/536402?ContentTypeID=1</link><pubDate>Wed, 21 May 2025 11:08:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:21f76e24-23b7-4003-95a0-2d76b3a25c78</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello Edgar,&lt;/p&gt;
&lt;p&gt;I have looked at the output dts (zephyr.dts) file. Most of the peripherals are disbaled so it is in accrodance to the dts and overlay file in the application.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;PM_STATE_SOFT_OFF resets your board upon wake up because, by design, System OFF mode always triggers a reset on wakeup, and this is the only way to achieve the lowest power state on nRF52810 devices.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This is the expected behavior on nRF52810 - &amp;#39;&amp;#39;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;System OFF is the deepest power saving mode the system can enter. In this mode, the system’s core functionality is powered down and all ongoing tasks are terminated.&lt;/p&gt;
&lt;p&gt;The device can be put into System OFF mode using the register&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf52810/page/power.html#register.SYSTEMOFF"&gt;SYSTEMOFF&lt;/a&gt;. When in System OFF mode, the device can be woken up through one of the following signals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The DETECT signal, optionally generated by the GPIO peripheral&lt;/li&gt;
&lt;li&gt;A reset&amp;#39;&amp;#39;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;If you need to retain execution context and resume without a reset, you must use System ON idle mode, but this will not achieve the lowest possible current consumption. The nRF52810 does not support a &amp;quot;deep sleep with context retention&amp;quot; mode like PM_STATE_SUSPEND_TO_RAM.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/534730?ContentTypeID=1</link><pubDate>Fri, 09 May 2025 22:58:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f280703f-d504-4902-8a78-e0d4180fa201</guid><dc:creator>epolicar</dc:creator><description>&lt;p&gt;Hi Kazi,&lt;br /&gt;&lt;br /&gt;I would like to follow up on this topic.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/533443?ContentTypeID=1</link><pubDate>Tue, 29 Apr 2025 15:22:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7a3677ef-0d25-4efc-a7c5-9013f20a2fc2</guid><dc:creator>epolicar</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/nrf52dk_5F00_nrf52810.dts"&gt;devzone.nordicsemi.com/.../nrf52dk_5F00_nrf52810.dts&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/5483.nrf52dk_5F00_nrf52810.overlay"&gt;devzone.nordicsemi.com/.../5483.nrf52dk_5F00_nrf52810.overlay&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/1263.zephyr.dts"&gt;devzone.nordicsemi.com/.../1263.zephyr.dts&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/533413?ContentTypeID=1</link><pubDate>Tue, 29 Apr 2025 13:18:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e0a71bf3-2ff8-40d9-af74-6b362dc4ea2d</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Can I see the board file ( dts, overlay) and also the generated DTS file form build folder?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/533080?ContentTypeID=1</link><pubDate>Sat, 26 Apr 2025 00:56:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:febf0a94-7d48-45bc-85f2-9e5636c43557</guid><dc:creator>epolicar</dc:creator><description>&lt;p&gt;Hi Kazi,&lt;/p&gt;
&lt;p&gt;I would like to follow up on this topic.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/532465?ContentTypeID=1</link><pubDate>Wed, 23 Apr 2025 02:16:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2a3a1317-f146-4dce-8f98-e6330b5b015e</guid><dc:creator>epolicar</dc:creator><description>&lt;p&gt;Hi Kazi,&lt;/p&gt;
&lt;p&gt;Thank you for your reply.&amp;nbsp;&lt;span&gt;PM_STATE_SOFT_OFF does work but it resets my board upon wake up. My board needs to resume upon wake up. That is why I chose PM_STATE_SUSPEND_TO_RAM. Maybe the term deep sleep is incorrect. I just need my board to consume 20uA during sleep.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Also, as I stated in my description, all peripherals are either suspended or are disabled before sleeping.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Awaiting your reply.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Edgar&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 will not enter deep sleep (system level power management)</title><link>https://devzone.nordicsemi.com/thread/532420?ContentTypeID=1</link><pubDate>Tue, 22 Apr 2025 15:24:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e3487787-c69c-4ef8-8352-a539d6a88731</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I think you need to change your power state from &lt;strong&gt;PM_STATE_SUSPEND_TO_RAM&lt;/strong&gt; to &lt;strong&gt;PM_STATE_SOFT_OFF&lt;/strong&gt; if you want to implement deep sleep.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;The nRF52810 and other Nordic devices only support two main power modes:&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;System ON mode&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;- This is the normal operating mode where the CPU can be put to sleep, but peripherals remain powered.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;System OFF mode&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;- This is the deepest power saving mode available on Nordic devices, which corresponds to PM_STATE_SOFT_OFF in Zephyr&amp;#39;s power management states.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;You can change your code following way&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;a. Modifying the pm_policy_next_state() function to&amp;nbsp;return PM_STATE_SOFT_OFF instead of PM_STATE_SUSPEND_TO_RAM:&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="text"&gt;const struct pm_state_info *pm_policy_next_state(uint8_t cpu, int32_t ticks)
{
    static const struct pm_state_info soft_off_state = {
        .state = PM_STATE_SOFT_OFF,
        .substate_id = 0,
        .min_residency_us = 1000,
        .exit_latency_us = 500,
    };
    printk(&amp;quot;pm_policy_next_state() called\n&amp;quot;);
    // Replace with your custom condition
    bool ready_to_sleep = true;
    if (ready_to_sleep) {
        return &amp;amp;soft_off_state;
    }

    return NULL; // Stay in active state
}&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;b. Updating your pm_state_set() function to handle PM_STATE_SOFT_OFF:&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="text"&gt;void pm_state_set(enum pm_state state, uint8_t substate_id)
{
    if (state == PM_STATE_SOFT_OFF) {
        printk(&amp;quot;PM: Preparing to enter system off...\n&amp;quot;);

        // Configure wake-up GPIO
        nrf_gpio_cfg_input(WAKEUP_PIN, NRF_GPIO_PIN_PULLUP);
        nrf_gpio_cfg_sense_set(WAKEUP_PIN, NRF_GPIO_PIN_SENSE_LOW);

        print_clock_state();
        check_pending_irqs();
        check_gpio_sense_config();

        // Enter system off mode
        printk(&amp;quot;Entering system off mode\n&amp;quot;);
        
        // This will put the system into deep sleep
        nrf_regulators_system_off(NRF_REGULATORS);
        
        // Code will not reach here unless system off fails
        printk(&amp;quot;ERROR: System off failed\n&amp;quot;);
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;c. Updating your notifier callbacks to handle PM_STATE_SOFT_OFF&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="text"&gt;static void on_pm_entry(enum pm_state state)
{
    if (state == PM_STATE_SOFT_OFF) {
        //suspend_peripherals();
        printk(&amp;quot;Notifier: system preparing to enter system off.\n&amp;quot;);
    }
}

static void on_pm_exit(enum pm_state state)
{
    if (state == PM_STATE_SOFT_OFF) {
        //resume_peripherals();
        printk(&amp;quot;Notifier: system resumed from system off.\n&amp;quot;);
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Can try this and let me know if this works?&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Thanks.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;BR&lt;/div&gt;
&lt;div&gt;Kazi&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>