Stuck in Low Power Mode - Image Preference Mismatch

@rkirk,
Yep, that did it. Thanks!

2 Likes

@rkirk,
Does this mean that AT+CFUN is removed in release 10, or the LPM state is no longer available, or ?

Thanks,
Evets

@EvetsMostel, CFUN and Persistent LPM are (and will be) still supported. The problem in Release 8 and earlier was that if the module was in Persistent LPM, and then the CFUNPERSISTEN customization was disabled, there was no mechanism to get out of persistent LPM. As of Release 9, when CFUNPERSISTEN is disabled, the module will always come out of LPM (persistent or not) when requested (via CFUN or other APIs). This was a logic error in implementation.

But I’ve been looking into this, and I think there is another underlying issue here. The customization itself is getting wiped out on the image update, meaning that if you want CFUNPERSISTEN enabled (0x01), you need to re-enable it after a FW update. I opened an internal ticket for this and it should be resolved in Release 11. In the meantime, if you need to enable CFUNPERSISTEN, the following will make the customization persistent across updates:
AT!ENTERCND=“A710” (or your level 2 password, if you’ve changed it)
AT!NVPERSIST=CUST_CFUNPERSISTEN,254,1

If you prefer that customization disabled, which is default, no need for any action.

Ryan

1 Like

Thanks @rkirk for the explanation!

This seems to mirror my issue with a new WP7608 (mangOH red). But the given solution doesn’t seem to be helping much.

Setting AT!CUSTOM="CFUNPERSISTEN",01 is allowing me to issue AT+CFUN=1 without any error, but the modem is switching off after 2-3 secs and its back to 0.
Setting AT!CUSTOM="CFUNPERSISTEN",00 just keeps giving me: CME ERROR: operation not supported

Whatever I do, I am getting the below

AT!PCINFO?
State: Low Power Mode
LPM voters - Temp:0, Volt:0, User:1, W_DISABLE:0, IMSWITCH:0, BIOS:0, LWM2M:0, OMADM:0, FOTA:0
LPM persistence - User:1

As this is a WP7608, there doesn’t seem to be any Release 9 firmware for it (using Generic). I just don’t need this LPM at all, just want to get rid/avoid it completely. I am missing something obvious to stop it from going back to LPM automatically? Tried reflashing firmware and userdata but always boots into LPM after.

Hi @mallets, the Release 9 firmware page is relevant for WP7608 too: https://source.sierrawireless.com/resources/airprime/software/wp76xx/wp76xx-firmware-latest-release/

Are you saying the response to “AT!CUSTOM=“CFUNPERSISTEN”,00” is a “CME ERROR:…”? Or are you getting that error when you call AT+CFUN later?

One case where the “User” flag would be set is if a Legato app is requesting LPM. Do you have any custom apps that could be doing this? I agree this is a little different than the previous scenarios. A log of the event using “logread -f &” or similar, starting just before you issue AT+CFUN=1, might indicate why LPM is being triggered immediately after.

Thanks,
Ryan

The release notes says there is no “approved” release for WP7608 and WP7609. (Search WP7608/WP7608-1 Approved, within the release notes). There is no error during installation but it doesn’t seem to work? Even Legato DS seems to default to release 8 for WP7608.

Getting that error when I call AT+CFUN later.

logread -f output:

Jan 6 00:20:01 swi-mdm9x28 user.warn kernel: [ 481.601399] PSM: Modem oprt mode - 0
Jan 6 00:20:01 swi-mdm9x28 user.warn kernel: [ 481.601399] PSM: Modem oprt mode - 0
Jan 6 00:20:01 swi-mdm9x28 user.warn Legato: -WRN- | posDaemon[917]/le_pa_gnss T=unknown | pa_gnss_qmi.c PositionHandler() 1359 | Bad position indication
Jan 6 00:20:01 swi-mdm9x28 user.warn kernel: [ 481.779591] PSM: Modem oprt mode - 1
Jan 6 00:20:01 swi-mdm9x28 user.warn Legato: -WRN- | posDaemon[917]/le_pa_gnss T=unknown | pa_gnss_qmi.c PositionHandler() 1359 | Bad position indication
Jan 6 00:20:01 swi-mdm9x28 user.warn kernel: [ 481.779591] PSM: Modem oprt mode - 1

@mallets, thanks - good point. Sorry for the confusion - the WP7608 is actually GCF certified and Release 9 is valid:
https://www.globalcertificationforum.org/pub_product/7211.html

The upgrade should work - what version are you upgrading from? Can you run a few diagnostic commands after the attempt, to try to narrow it down?
ati
at!image?
at!priid?
at!impref?

Regarding the log, unfortunately it just shows that state changing, so it’s not much help so far. Let’s see if we can get your device updated first though.

Yeah, seems like you are correct. It did update fine (the original firmware was something 0X.14.0X afaik). Didn’t solve the main issue, but seems like there is no error now with +CFUN=1, with persist on and off (the radio switching off after a few seconds is still there). +CFUN on first run, radio switches off immediately within 0.2secs. Run it immediately after, will stay on for 2-3secs. AT!PCINFO? always shows LPM persistence - User:1 as the cause. No apps, other than devMode, installed. Did a factory reset from developer studio after upgrade.

Results of all the requested commands, with release 9 firmware:

ati
Manufacturer: Sierra Wireless, Incorporated
Model: WP7608
Revision: SWI9X07Y_02.16.02.00 000000 jenkins 2018/04/19 19:59:02
IMEI: XXXXXXXXXXXXX
IMEI SV: 4
FSN: XG814285121610
+GCAP: +CGSM

OK
at!image?
TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
FW 1 GOOD 3 0 0 ?? 02.14.04.00?
FW 2 GOOD 4 0 0 002.032_000 02.16.02.00_GENERIC
FW 3 EMPTY 0 0 0
Max FW images: 3
Active FW image is at slot 2

TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
PRI FF GOOD 0 0 0 002.032_000 02.16.02.00_GENERIC
Max PRI images: 50

OK
at!priid?
PRI Part Number: 9907762
Revision: 001.002
Customer: Qualified

Carrier PRI: 9999999_9907152_SWI9X07Y_02.16.02.00_00_GENERIC_002.032_000

OK
at!impref?
!IMPREF:
preferred fw version: 02.16.02.00
preferred carrier name: GENERIC
preferred config name: GENERIC_002.032_000
current fw version: 02.16.02.00
current carrier name: GENERIC
current config name: GENERIC_002.032_000

Thank you

@mallets, thanks, everything looks fine there. The Legato log doesn’t show an issue, and I still don’t see a reason that the device has entered LPM, other than “User”, which means some client has requested LPM, and that could be Legato app or on a host platform via USB. Legato logs show the transition event, but no request, though it might be hidden by the debug level. Could you first try narrowing down the software interfaces to the modem, to try to locate this client? Disabling the USB driver (eg. disable the Network interface and Modem interface in Windows) would prevent a Windows client from requesting LPM. You could similarly try disabling apps in Legato (“app stop ” from console). I’ve not seen this behaviour before, so sorry I don’t have a better idea yet.

Ryan

1 Like

Thanks for the reply. Got it working, unexpectedly. Left it running for a more than 24 hours and fiddled with getting other stuff working (Ethernet IoT card, wifi etc). The modem (WWAN) led lit right around the time the Wifi AP was successfully configured. Don’t know exactly what part of the software configuration enabled it, but all I remember was that it happened while following this guide: mangOH Red mt7697 WiFi · mangOH/mangOH Wiki · GitHub (maybe while setting up the UART??). Maybe anyone with more technical knowledge about this can figure out what it was… or if it was completely unrelated.

Tried to recreate the problem again by re-flashing the firmware and clearing the user data partition, but the modem has been working as it should since then (no more user LPM switching automatically during boot). Thank you for the replies though, learned a lot more about debugging this module.

1 Like

So this was it! I didn’t disable the USB driver, but turning off flight mode was the solution. The Windows driver is automatically shutting down the modem whenever I put my dev Laptop into Flight mode (which is almost always). The module “magically” switched on during wifi config part, because I disabled the flight mode to test the WiFi AP. Can’t believe this was the issue, didn’t expect the flight mode of my laptop to affect the module too. :expressionless: Would’ve been more obvious if the logs showed the exact reason/initiator for the LPM.

Hope this helps anyone else, though I am guessing the chances of anyone encountering this scenario is very rare.

1 Like

Hey @rkirk, we are running into this similar problem. I did have my computer in “Airplane Mode”, which I thought might have caused the problem… But I’m still finding that our LPM Persistent is set to 1. Is this the correct state? When we run our hardware through our test jig, should we be sending an AT command that disables low power mode? We are finding that we are sending units into the field that have the radios turned off and they never attempt to turn on and I’m suspicious that this is the issue.

Note: We are using legato version: 18.09.0_ac58c6590244364cce0c737da0534543

root@swi-mdm9x15:~# microcom /dev/ttyAT

State: LowPowerMode
LPM force flags - W_DISABLE:0, User:1, Temp:0, Volt:0, BIOS:0, GOBIIM:0
W_DISABLE: 0
Poweroff mode: 0
LPM Persistent: 1

OK
root@swi-mdm9x15:~# cm radio
Power:                         OFF
Current Network Operator:
Current RAT:                   Module not registered on network, RAT not available
Status:                        Not registered and not currently searching for new operator (LE_MRC_REG_NONE)
Signal:                        No signal strength (0)
PS:                            Packet Switched Unknown state (LE_MRC_REG_UNKNOWN)

root@swi-mdm9x15:~# cm radio on

root@swi-mdm9x15:~# cm radio
Power:                         ON
Current Network Operator:
Current RAT:                   Module not registered on network, RAT not available
Status:                        Not registered and not currently searching for new operator (LE_MRC_REG_NONE)
Signal:                        No signal strength (0)
PS:                            Packet Switched Unknown state (LE_MRC_REG_UNKNOWN)

root@swi-mdm9x15:~# microcom /dev/ttyAT

State: Online
LPM force flags - W_DISABLE:0, User:0, Temp:0, Volt:0, BIOS:0, GOBIIM:0
W_DISABLE: 0
Poweroff mode: 0
LPM Persistent: 1

OK
root@swi-mdm9x15:~#

Hi @coastalbrandon, I’m stressing the memory banks here, but if this first thought doesn’t help I’ll look into it deeper - I think this sounds related to the CFUNPERSIST behaviour. With the values shown above for PCINFO? response, the device would boot up in LPM everytime, even though it allows software to request Online mode successfully once powered up. Can you check AT!CUSTOM? and specifically the “CFUNPERSISTEN” customization value (it’s 0 if not listed in the response). I have two guesses:

  1. CFUNPERSISTEN is disabled, but it was disabled while persistence was set to 1. That basically disables the ability to clear persistence. For that, you can try the workaround listed above (for WP76xx, but same idea would apply).
  1. CFUNPERSISTEN is still enabled, but persistence was set by AT command (AT+CFUN=0) and not getting cleared by Legato APIs (eg. cm radio on). If this is the case, simply AT+CFUN=1 should clear the persistence.

If those don’t help, let me know your Modem firmware version (ATI), and AT!CUSTOM? response, and I’ll look closer.

Ryan

Hey @rkirk,

It looks like the CFUNPERSISTEN is not in the list, meaning it must be 0. We have about 100 units that we have configured, are we going to have to manually run those 5 commands on each one? We can run the units through our test jig again if necessary, but will they each need to have this process applied to them? We have seen this on only a few of our units so far and can’t explain why it’s happening on some and not on others.

Here’s our !CUSTOM response:

!CUSTOM:
            ISVOICEN            0x01
            GPIOSARENABLE       0x01
            GPSENABLE           0x01
            WAKEHOSTEN          0x83
            NMEAENABLE          0x01
            GOBIIMEN            0x01
            USBECMRNDISOPTION   0x01
            HSICENABLE          0x01
            SINGLEAPNSWITCH     0x01
            SIMLPM              0x01
            BOOTQUIETDISABLE    0x01
            FASTBOOTEN          0x01

Here’s our ATI response:
Manufacturer: Sierra Wireless, Incorporated
Model: WP8548
Revision: SWI9X15Y_07.13.07.00 92cfd2c jenkins 2018/08/22 19:18:52

@coastalbrandon, if there’s uncertainty about how the devices entered this state, I think it would be necessary to update, or at least test, them all. The CFUNPERSISTEN is set in some carrier PRIs (ATT, off the top of my head) - are your devices being configured with different Carriers active? (e.g. half configured with Carrier “X” PRI, half with Generic). One suspicion would be that you’re switching carriers from one with CFUNPERSISTEN=1 to one without CFUNPERSISTEN set, while in persistent LPM. If you can prove the scenario that’s triggering this, it might isolate the set that needs to be retouched.

Ryan

Hey @rkirk, all of our devices are simply run through our test jig in the office then the SIM cards activated through Air Vantage. We use all Sierra SIMs.

Here’s an example of a unit that I manually turned on the radio with cm radio on and it connected to the network right away:

State: Online
LPM force flags - W_DISABLE:0, User:0, Temp:0, Volt:0, BIOS:0, GOBIIM:0
W_DISABLE: 0
Poweroff mode: 0
LPM Persistent: 1

OK

!CUSTOM:
            ISVOICEN            0x01
            GPIOSARENABLE       0x01
            GPSENABLE           0x01
            WAKEHOSTEN          0x83
            NMEAENABLE          0x01
            GOBIIMEN            0x01
            USBECMRNDISOPTION   0x01
            HSICENABLE          0x01
            SINGLEAPNSWITCH     0x01
            SIMLPM              0x01
            BOOTQUIETDISABLE    0x01
            FASTBOOTEN          0x01

OK

If we force cm radio on whenever we want to push data would this potentially kick units out of low power mode? When the device reboots after manually doing a cm radio on it seems like the LPM is disabled:

State: Online
LPM force flags - W_DISABLE:0, User:0, Temp:0, Volt:0, BIOS:0, GOBIIM:0
W_DISABLE: 0
Poweroff mode: 0
LPM Persistent: 0

OK

Hi @coastalbrandon, yes - you’re right. I had to prove it to myself on a device, because I didn’t remember this quirk on WPx5, but the “LPM Persistent” value in the !PCINFO response is cached, and not updated immediately when it changes. I caused the problem on my device by enabling Airplane Mode on my PC, which put the modem into LPM with Persistent=1. AT!PCINFO? does not show the persistent flag until after a reboot. I then booted up in LPM as expected, and then tested both “AT+CFUN=1” and “cm radio on” to exit Persistent LPM, and in both cases the modem went online, and cleared the LPM Persistence flag. On the next reboot the radio was on as expected, with the persistence flag still clear.

So it should be safe to install an application that enables the radio when necessary, that’s a good idea. I would still suggest running tests on as many devices as you can find with that problem, just to ensure there isn’t a trigger for the LPM persistence here that hasn’t been uncovered yet, unless the procedure that leads to this mode (Windows Airplane mode?) is well-understood.

Thanks,
Ryan

@rkirk - Very interesting. So we were loading the firmware on a large percentage of units from my laptop, which was in Airplane Mode… Likely I’ll just have to run all those units through our test jig again, in our test jig we will add a cm radio on command (just to be safe) and add it into our firmware as well.

I’ll have our test jig check for low power mode on all 100 units that I’ll run through again in the next couple of days. Thanks very much for your help!

1 Like

@rkirk I have a MC7455 stuck in the LPM as well. Will this tool help in getting this modem back online? I to get an error with trying the GOBIIMEN” not shown in the AT!CUSTOM.