Problem with ULPM Mode WP8548


I was able to find good documentation about ULPM apis to set the boot source as either timer or gpio pin. It works fine with the sample app where it starts the app send the location in the SMS and switch to low power mode and wakes up on timer. Then don’t do anything.

I have implemented the same interface in out custom app and it works. But I have observed some strange behaviour.
We want to go in low power mode every 10 mins hence set the boot source as 10 mins and switch the mode to ulpm. On timeout of 10 min modules wakes up and does the required task. It works fine for 3- 4 such cycle. But after that it gets stuck probably in the ulpm mode or possibly never wakes up by timer.

When I try to connect it to the IDE I could not see the app in the list any more….the app is not there at all hence it’s not doing anything .

I have tried this with the sample app same thing happens. I tried using GPIO boot up same thing is happening.
Not sure why the app is removed or stuck in low power mode. Is there a restriction on how many times we can switch to ULPM?

If anyone has idea about what I can try or what could be the possible reason for this

I am using
Module : WP8548
Legato version : 16.07.0_cd4985660a55cc9a6f9a2ed28bcc757e_modified
Ultra-Low Power Manager Firmware version : 001.005


Hi @Suruchi

Strange, but could this be caused by the Probation Period from the Update Control Service?

See this note from:

If a reboot occurs during the probation period, the probation period will start over. But, if the system reboots more than a few times without reaching the end of its probation period first, then the system will be rolled-back to the last known “good” system.


Updated or modified systems enter a probationary period (default 30 minutes) during which time an app or framework daemon failure will result in a roll-back to the previous “good” system. For development and testing, you can mark a system good (pass), bad (fail) or defer.

I wonder if your app entering ULPM and shutting down/rebooting several times before it has been marked as good, which takes 30 minutes unless you manually mark it as good, is causing the system rollback, thus removing your app?

You could try using the Update Control API and have your app call le_updateCtrl_MarkGood().

Alternatively, you could try increasing the ULPM timeout to 30 minutes instead of 10? See if that helps.