TX82 Power save mode (PSM)

Hi all,

I have TX82-W module installed in the DevKit. I’m trying to play test for PSM mode (examples/psm) with such config:

^SCFG: “MEopMode/PowerMgmt/Suspend”,“0”,“1”
^SCFG: “MEopMode/PwrSave”,“enabled”,“52”,“50”

I see that the task (psm client) get Success result for qapi_PSM_Client_Enter_Psm() method (vote for PSM):

^SUSRW: 2,“PSM THREAD: DAM enter into Power save mode request. PSM Active time:[30]s, PSM Duration: [900]s”
^SUSRW: 2,“PSM THREAD: DAM enter result: SUCCESS”

From my point of view the device should enter PSM mode: sleeps for 900s (no activity) and wakes up for 30s. If it is correct then I shouldn’t be able to use ATI commands, but I receive answers for my “ati” command, which I shouldn’t if the device has entered PSM.

Could anyone point where I’m mistaking, what is the correct behavior of this application and where can I search for some explanation regarding the power save mode.

  • the 80-P8101-35 A document describes it briefly without any examples

Kind regards,
Sergey

Hello Sergey,

You can find the documents related to PSM in our Download Zone (https://dz.telit.com/) by entering PSM into the search field. You will see the documents related to Telit modules where the idea of PSM is nicely described.
Additionally you can find PSM related information specific for the TXx2/EXSx2 modules in the related hardware interface description documents (TC_TX62-W_TX82-W-x_Hardware_Interface_Description_User_Guide_v01.200e_r0) and TC_Power_Saving_for_LTE_Cat_M1_and_LTE_Application_Note_r0 document.

PSM depends on the network support and configuration.
Do you have the USB interface connected? Please note that the module is able to switch into SLEEP/SUSPEND mode only if the USB interface is in Suspended or Detached state (i.e., VUSB_IN = 0).

Best regards,
Bartłomiej

Bartlomiej, Thank you for your reply.

I was able to to enter both PSM and eDRX modes, but I would like to know are there any QAPI to watch the status of the network - such as which TAUs and paging window time that are proposed by network.

I found only AT-commands (+CEDRXS, +CPSMS) that allow user to configure power save parameters. And one section of QAPI (qapi_PSM_Client_Register() and qapi_PSM_Client_Enter_Psm()). Is there any possibility to watch status of power save parameters and configure it form the User’s application?

And question regarding the QAPI’s qapi_PSM_Client_Register(). User provides function for server’s callbacks. I receive only PSM_STATUS_READY / NOT_READY messages and never received PSM_STATUS_COMPLETE or PSM_STATUS_ENTER_REQ messages. But I see that the UE goes to PSM (sleep and active intervals are respected, I am observing the power consumption). Why is that? When is message PSM_STATUS_COMPLETE called?

So:

  • Is it possible to configure eDRX mode with the QAPI?
  • Is it possible to configure PSM with QAPI except the qapi_PSM_Client_Register()?
  • Is it possible to observe statuses of the values that network and UE negotiate about (intervals that they agreed on)?
  • why don’t I receive PSM_STATUS_COMPLETE and any other messages from the server except the PSM_STATUS_READY? And what does it mean READY? (/*< Ready to enter PSM mode. */)

upd. - and what is the difference with the values provided by AT^SCFG and QAPI psm_info structure?
at^SCFG=MEopMode/PwrSave,enabled,600,800 (60s PSM and 80s active)
qapi_PSM_Client_Enter_Psm(client, &psm_info);

Kind regards,
Sergei

Hello Sergey,

Thank you for your message and questions. Let me try answering them one by one:

  1. Is it possible to configure eDRX mode with the QAPI? - Unfortunately, the documentation suggests that the SDK we provide only allows you to utilize the PSM feature. It is sometimes the case that the functionalities that are too complex to implement from the software perspective are not directly included in the SDK and can only be used via AT commands - this seems to be the case for eDRX. Therefore if you would be interested in using it, please use our AT commands (as described in the AT Command Specification and “Power Saving for LTE Cat M1 and LTE Application Note”).

  2. Is it possible to configure PSM with QAPI except the qapi_PSM_Client_Register()? - The mentioned qapi_PSM_Client_Register is the main API function for setting up the PSM and no other functions are required/available for the configuration.

  3. Is it possible to observe the statuses of the values that the network and UE negotiate about (intervals that they agreed on)? - There is no way to query that information using available QAPI functions, but you can enable and use the +CEREG URCs for exactly that purpose (monitoring current network details, including cell location info, active time, or requested TAU) and you can do that even from the ThreadX application using our GINA API.

  4. Why don’t I receive PSM_STATUS_COMPLETE and any other messages from the server except the PSM_STATUS_READY? And what does it mean READY? (/*< Ready to enter PSM mode. */) - For all details on that please refer to the documentation available in the IoT SDK, as this is the most comprehensive source of information about QAPI. Generally, if your module is entering the SUSPEND mode immediately after entering the PSM it is possible that your ThreadX application is terminated before it can react to this status and send a debug message.

  5. What is the difference with the values provided by AT^SCFG and QAPI psm_info structure? - The AT^SCFG parameter “MEopMode/PwrSave” refers to and configures the SLEEP mode [mainly refers to the reduced power consumption from modules serial interfaces], whereas the QAPI psm_info structure refers to the Power Save Mode (PSM) [LTE Cat.M/NB power save functionality, network/modem related], which is required to put the module into SUSPEND mode. For more details on that, you can refer to Power Saving for LTE Cat M1 and LTE Application Note 95 in particular Table 2, i.e. “Overview of operating modes”.

Best Regards,
Karol

1 Like

Dear Karol,

Appreciate your help!

I think I’m talking about SLEEP mode, because the device wakes up when RTS0 toggles. Also It’s written that MeOpMode/PwrSave lets the device go to SLEEP mode. For example, if these parameters set to 10s active and 40s PSM, then I see 0mA for 30s and ~17mA for 10s:

I’ve read the Application note that you provided and the SDK docs, but there were no information regarding what each flag means. What does PSM_STATUS_READY mean?

As I using provided example application - what is the correct behavior? Should it be calling the COMPLETE or READY flag? How does the application understand that the device entered or exited the PSM mode? So this is the main question - what is the best practices to control the PSM mode when developing your application (what are the indicators for entering and exiting the PSM)?

It would be nice to have some clear information on how to use it in the user’s applications, because there is not much info in the documents.

Kind,
Sergey

*output from the psm_idle app:

AT^SUSRW=1,“a:/psm_idle.bin”
OK
^SUSRW: 2,“DAM START”
. . .
^SUSRW: 2,"00:00:38:430 INFO:psm_idle.c,441: at^SCFG=MEopMode/PwrSave,enabled
^SCFG: “MEopMode/PwrSave”,“enabled”,“600”,“50”
OK
^SUSRW: 2,“application votes for PSM mode”
^SUSRW: 2,“PSM THREAD: DAM enter into Power save mode request. PSM Active time:[30]s, PSM Duration: [900]s”
^SUSRW: 2,“PSM THREAD: DAM enter result: SUCCESS”
^SUSRW: 2,“PSM THREAD: Wait for psm complete event”
^SUSRW: 2,“PSM THREAD: DAM PSM is ready”
^SUSRW: 2,“PSM THREAD: DAM PSM is ready”
. . .
(it continues to be ready for smth)

Hi Sergey,

Thank you for your message and all the details.

The power consumption plot you have shared indeed suggests that the module enters SLEEP mode (reduced power consumption resulting from hibernation of the hardware responsible for serial interfaces) and not the SUSPEND mode, during which the current flowing into the module would be way lower.

Please keep in mind that PSM is a feature of LTE Cat-M1 (eMTC) and LTE Cat-NB1/2 (NB-IoT) only. So to use it you have to:

  1. Supported bands: Use the module that supports LTE Cat-M1/NB (e.g. TX82-W);
  2. SIM Card: Have the SIM card that support LTE Cat-M1/NB (not all MNOs [Mobile Network Operators] support these technologies and almost always access to such networks will require a special SIM card different from the ones available to individual subscribers);
  3. Coverage: Perform the tests within LTE Cat-M1/NB coverage;
  4. Serving cell: Make sure that the module registered to one of the two listed technologies (keep in mind that TX82-W supports also 2G). You can check the details of the current serving cell with AT^SMONI;
  5. PSM/eDRX support: Confirm that your MNO supports PSM (and eDRX if you wish to use it too). It is quite common that operators launch a Cat.M/NB network but do not support all of its features at the beginning.
  6. Network reply: Keep in mind that it is the network that make final decisions on the PSM configuration (in particular PSM timers) - so it is possible that module’s request to enter PSM will be rejected or modified by the network.
  7. Activity on serial interfaces: As Bartłomiej mentioned in the first response, the module is able to switch into SLEEP/SUSPEND mode only if the USB interface is in Suspended or Detached state (i.e., VUSB_IN = 0).
  8. Module configuration: Finally to make the module request the PSM and enter the SUSPEND mode all required settings must be applied beforehand (as described in AN95, HID and AT Comm. Specification);

The topic is quite complex and there are multiple requirements regarding module’s configuration but also used SIM or features available on the network. Therefore I would suggest you may start by testing PSM using solely our AT commands issued from a PC via USB/ASC0 (following the instructions in Power Saving for LTE Cat M1 and LTE Application Note 95, AT Command Specification and Hardware Interface Description).

You can test if you can successfully request and be allowed by the network to enter a PSM and then force the module to enter the SUSPEND mode. Then you can move to ThreadX (DAM) applications - in particular the psm_suspend.c example from the SDK.

Please also note that going into PSM and entering SUSPEND mode will shut down the main processor of the module, and any running application will be terminated. With autostart feature ( “Userware/Autostart”) you can configure the module to start the application again once it wakes up (^SYSRESUME) from the SUSPEND mode, but I believe there is no way to keep the application running (or retain the state of the volatile memory) while the module is in the SUSPEND mode.

I hope these comments and suggestions will help you a bit in your tests, but please let me know if we could help you with anything else.

Best Regards,
Karol

1 Like