Power management

Power saving control (Power SaVing) +UPSV

+UPSV
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
partial
No
No
-

Description

Sets the UART power saving configuration, but it has a global effect on the module power saving configuration. When the power saving is enabled, the module automatically enters the low power idle mode whenever possible, reducing the power consumption. Three different and incremental levels of power saving are supported, called deep-sleep modes (Sleep-1, Sleep-2, Hibernate). For further details, see the system integration manual [54].
  • If the power saving is disabled (+UPSV: 0), the UART interface is always enabled and the module does not enter any deep-sleep mode.
  • When power saving is enabled using <mode>=1, the UART interface is enabled and the module does not enter any deep-sleep mode before the <timeout> parameter. Receiving data on the UART interface or pressing PWR_ON input line keeps awake the module for another <timeout> since last character received or last PWR_ON press. To wake up the module it is necessary to press the PWR_ON input line.
  • When power saving is enabled using <mode>=5, the UART interface is enabled and the module does not enter any deep-sleep mode as long as the properly configured GPIO is high.

Syntax

TypeSyntaxResponseExample
Generic syntax
Set
AT+UPSV=[<mode>[,<timeout>[,<max_sleep_mode>]]]
OK
AT+UPSV=0
OK
Power saving disabling
Set
AT+UPSV=0
OK
AT+UPSV=0
OK
Power saving controlled by the UART RX line
Set
AT+UPSV=1[,<timeout>[,<max_sleep_mode>]]
OK
AT+UPSV=1,5000,4
OK
Power saving controlled by the GPIO input
Set
AT+UPSV=5[,<timeout>[,<max_sleep_mode>]]
OK
AT+UPSV=5,5000,3
OK
Read
AT+UPSV?
+UPSV: <mode>
OK
+UPSV: 0
OK
Test
AT+UPSV=?
+UPSV: (list of supported <mode>s), (range of allowed timeout values)
OK
+UPSV: (0,1,5),(200-65535),(2-4)
OK

Defined values

ParameterTypeDescription
<mode>
Number
Power saving configurations:
  • 0: (default and factory-programmed value): power saving disabled.
  • 1: power saving is automatically entered when conditions allow power saving but not before <timeout> parameter.
  • 5: power saving is controlled by the GPIO pin configured with <GPIO_mode>=34.
<timeout>
Number
Sets inactivity timeout after which the module returns to power saving state. The allowed range is 200-65535 (expressed in ms). If the parameter is omitted, timeout value is set to 5000.
<max_sleep_mode>
Number
Maximum achievable deep-sleep mode. Allowed values:
  • 2: it corresponds to Sleep-1 mode
  • 3: it corresponds to Sleep-2 mode
  • 4: it corresponds to Hibernate mode
For the default value, see Notes.

Notes

Power Saving Mode Setting +CPSMS

+CPSMS
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
partial
Yes
NVM / OP
No

Description

Controls the setting of the UEs Power Saving Mode (PSM) parameters. The command controls whether the UE wants to apply PSM or not, as well as:
  • The requested extended periodic RAU value in GERAN/UTRAN
  • The requested GPRS READY timer value in GERAN/UTRAN
  • The requested extended periodic TAU value in E-UTRAN
  • The requested Active Time value.
The +CPSMS <mode> parameter defines whether the Power Saving Mode (PSM) feature usage is requested to the network.
  • If Power Saving Mode (PSM) is requested (+CPSMS: 1) and granted by the network, i.e. Active Time has been assigned, PSM deep-sleep can be entered: after the expiry of the assigned Active Time (T3324) every SW and HW component on the device powers down except for the real time clock (RTC) (notified via the +UUPSMR URC if enabled). It stays powered down until the expiry of the assigned extended periodic TAU value (T3412_ext) or the assigned periodic TAU value (T3412) (if the former has not been assigned) or an early wake-up event (which consists in a proper toggling of the PWR_ON input line).
  • Per 3GPP it is not possible to negotiate an T3412_ext timer without specifying a valid Active Time (T3324). The opposite is allowed.
  • PSM deep-sleep is not entered if PSM is disabled (+CPSMS: 0) or not granted by the network.
Check whether the Active Time and the extended periodic TAU have been assigned to the UE by means of the AT+CEREG=4 AT command.
The assigned extended periodic TAU value and periodic TAU value can be checked by means of the AT+UCGED=8 AT command.
See the +UPSCONFIG AT command to enable "PSM without network coordination": this feature allows to enter PSM even if Power Saving Mode is not granted by the network.
Use the +UPSV AT command to enable PSM deep-sleep. Use the +UUPSMR URC to monitor the state of the module with respect to PSM.

Syntax

TypeSyntaxResponseExample
Set
AT+CPSMS=[<mode>[,<Requested_Periodic_RAU>[,<Requested_GPRS_READY_timer>[,<Requested_Periodic_TAU>,[<Requested_Active_Time>]]]]]
OK
AT+CPSMS=1,,,"01000011","01000011"
OK
Read
AT+CPSMS?
+CPSMS: <mode>,[<Requested_Periodic_RAU>],[<Requested_GPRS_READY_timer>],[<Requested_Periodic_TAU>],[<Requested_Active_Time>]
OK
+CPSMS: 1,,,"01000011","01000011"
OK
Test
AT+CPSMS=?
+CPSMS: (list of supported <mode>s),(list of supported <Requested_Periodic_RAU>s),(list of supported <Requested_GPRS_READY_timer>s),(list of supported <Requested_Periodic_TAU>s),(list of supported <Requested_Active_Time>s)
OK
+CPSMS: (0,1,2),,,("00000000"-"11111111"),("00000000"-"11111111")
OK

Defined values

ParameterTypeDescription
<mode>
Number
Indication to disable or enable the use of PSM in the UE. Allowed values:
  • 0 (default value): disable the use of PSM
  • 1: enable the use of PSM
  • 2: disable the use of PSM and reset all parameters for PSM to factory-programmed values.
Factory-programmed value:
  • 0
<Requested_Periodic_RAU>
String
One byte in an 8 bit format. Requested extended periodic RAU value (T3312_ext) to be allocated to the UE in GERAN/UTRAN. The requested extended periodic RAU value is coded as one byte (octet 3) of the GPRS Timer 3 information element coded as bit format (e.g. "01000111" equals 70 hours). For the coding and the value range, see the GPRS Timer 3 IE in 3GPP TS 24.008 table 10.5.163a/3GPP TS 24.008 [12]. See also 3GPP TS 23.682 [12]. See also 3GPP TS 23.682 [51] and 3GPP TS 23.060 [46]. The factory-programmed value is:
  • The parameter is not supported.
<Requested_GPRS_READY_timer>
String
One byte in an 8 bit format. Requested GPRS READY timer value (T3314) to be allocated to the UE in GERAN/UTRAN. The requested GPRS READY timer value is coded as one byte (octet 2) of the GPRS Timer information element coded as bit format (e.g. "01000011" equals 3 decihours or 18 minutes). For the coding and the value range, see the GPRS Timer IE in 3GPP TS 24.008 table 10.5.172/3GPP TS 24.008 [12]. See also 3GPP TS 23.060 [46]. The factory-programmed value is:
  • The parameter is not supported.
<Requested_Periodic_TAU>
String
One byte in an 8 bit format. Requested extended periodic TAU value (T3412_ext) to be allocated to the UE in E-UTRAN. The requested extended periodic TAU value is coded as one byte (octet 3) of the GPRS Timer 3 information element coded as bit format (e.g. "01000111" equals 70 hours). For the coding and value range, see the GPRS Timer 3 IE in 3GPP TS 24.008 table 10.5.163a/3GPP TS 24.008 [12]. See also 3GPP TS 23.682 [51] and 3GPP TS 23.401 [52].
  • The default and factory-programmed value is "00110100" (20 hours).
<Requested_Active_Time>
String
One byte in an 8 bit format. Requested Active Time value (T3324) to be allocated to the UE in GERAN/UTRAN or in EUTRAN. The requested Active Time value is coded as one byte (octet 3) of the GPRS Timer 2 information element coded as bit format (e.g. "00100100" equals 4 minutes). For the coding and value range, see the GPRS Timer 2 IE in 3GPP TS 24.008 table 10.5.163/3GPP TS 24.008 [12]. See also 3GPP TS 23.682 [51], 3GPP TS 23.060 [46] and 3GPP TS 23.401 [52].
  • The default and factory-programmed value is "00100101" (5 minutes).

Notes

  • The <mode> parameter is mandatory.
  • The <Requested_Periodic_RAU> and <Requested_GPRS_READY_timer> parameters are not supported and must be left empty.
  • The PIN insertion is not mandatory before the command execution.
  • The maximum achievable deep-sleep level is configured independently from the PSM feature by +UPSV AT command. For more details, see the corresponding application development guide.

Deep-sleep mode indication +UPSMR

+UPSMR
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
No
No
-

Description

Enables or disables the URC that conveys information on deep-sleep (RTC-only) mode states, i.e. deep-sleep entry, exit and notification if there is some embedded SW client or peripheral activity postponing the entrance into deep-sleep mode.

Syntax

TypeSyntaxResponseExample
Set
AT+UPSMR=<mode>
OK
AT+UPSMR=1
OK
Read
AT+UPSMR?
+UPSMR: <mode>
OK
+UPSMR: 1
OK
Test
AT+UPSMR=?
+UPSMR: (list of supported <mode>s)
OK
+UPSMR: (0-1)
OK
Generic syntax
URC
+UUPSMR: <state>[,<param1>]
+UUPSMR: 1
Module exiting deep-sleep mode
URC
+UUPSMR: 0
+UUPSMR: 0
Module entering deep-sleep mode
URC
+UUPSMR: 1[,<image>]
+UUPSMR: 1,1
Client preventing deep-sleep mode entry (<state>=2 or <state>=3)
URC
+UUPSMR: <state>,<client_id>
+UUPSMR: 2,2

Defined values

ParameterTypeDescription
<mode>
Number
Indication to disable or enable the +UUPSMR URC:
  • 0 (factory-programmed value): the +UUPSMR URC is disabled
  • 1: the +UUPSMR URC is enabled
<state>
Number
Indication of the state of the module with respect to deep-sleep mode:
  • 0: the module is out of deep-sleep mode
  • 1: the module is entering deep-sleep mode. The FW image that will be loaded when exiting deep-sleep mode is indicated by the <image> parameter (where supported)
  • 2: deep-sleep client identified by <client_id> is preventing module from entering deep-sleep mode
  • 3: the module entered PSM/eDRX and the protocol stack is in suspension, but the deep-sleep client identified by <client_id> is preventing module from entering the deep-sleep mode
Allowed values:
  • 0, 1
<image>
Number
Identifies the FW image loaded when exiting deep-sleep mode:
  • 1: full image is being loaded
  • 2: paging only image is being loaded (only possible in case of eDRX deep-sleep)
<client_id>
Number
Identifies the deep-sleep client that is preventing the module from entering deep-sleep mode:
<param1>
Number
Supported content depends on the related <state> (details are given above).

Notes

  • The <image> and <client_id> parameters are not supported.
  • The URC is printed at PSM entry (<state>=1) and exit (<state>=0).

Deep-sleep URCs configuration +USLPURC

+USLPURC
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
Full
No
No
-

Description

Enables or disables URCs to be sent when the module enters and exits deep-sleep modes. For further details about entering deep-sleep modes, see the +UPSV AT command and the System Integration Manual [54].
The command settings are stored in the profile. Issue the AT&W AT command to save the command setting.

Syntax

TypeSyntaxResponseExample
Set
AT+USLPURC=<deep_sleep_mode>,<enable_urc>
OK
AT+USLPURC="SLEEP1",1
OK
Read
AT+USLPURC?
+USLPURC: <deep_sleep_mode>,<enable_urc>
OK
+USLPURC: "SLEEP1":0,"SLEEP2":0,"HIBNATE":0
OK
Test
AT+USLPURC=?
+USLPURC: (list of supported <deep_sleep_mode>s),(list of supported <enable_urc> values)
OK
+USLPURC: ("SLEEP1","SLEEP2","HIBNATE"),(0-1)
OK
URC
+UUSLPURC: <deep_sleep_mode_short> <mode_transition>
+UUSLPURC: HIB 1

Defined values

ParameterTypeDescription
<deep_sleep_mode>
String
Configures URCs related to the selected deep-sleep mode:
  • "SLEEP1": configure URCs related to Sleep-1 mode
  • "SLEEP2": configure URCs related to Sleep-2 mode
  • "HIBNATE": configure URCs related to Hibernate mode
<enable_urc>
Number
Enables or disables URC when the module enters and exits the selected <deep_sleep_mode>:
  • 0 (default and factory-programmed value): disable URC
  • 1: enable URC
<deep_sleep_mode_short>
String
Deep-sleep mode indication in URC:
  • SLP1: Sleep-1
  • SLP2: Sleep-2
  • HIB: HIbernate
<mode_transition>
Number
Deep-sleep mode transition:
  • -1: fail to enter deep-sleep mode
  • 0: wake up from deep-sleep mode
  • 1: enter deep-sleep mode

Notes

  • Sleep URCs are discarded on the AT interfaces with an ongoing command. The URCs are normally issued on all the other AT interfaces.

Sleep-mode voting+USLPVOTE

+USLPVOTE
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
No
No
No
-

Description

Allows the DTE to prevent the module from entering the specified deep-sleep mode (the maximum achievable deep-sleep level is configured with +UPSV AT command).
In case the DTE votes down for Sleep-2/Hibernate on one or more AT terminals, the module can enter Sleep-1 mode.
In case the DTE votes down for Sleep-1 on one or more AT terminals, the module will not enter any deep-sleep mode.
All negative votes are counted and their number determines the module behavior, but it is possible to clear all votes with a single AT command issued on any AT terminal.

Syntax

TypeSyntaxResponseExample
Set
AT+USLPVOTE=<op_cmd>,<param>[,<reset_vote_state>]
OK
AT+USLPVOTE=0,0
OK
Read
AT+USLPVOTE?
+USLPVOTE: <current_voted_state>,<vote_cnt>,<configured_vote_state>
OK
+USLPVOTE: 3,2,3
OK
Test
AT+USLPVOTE=?
+USLPVOTE: 0,(list of supported <vote> values)
+USLPVOTE: 1,(list of supported <configured_vote_state> values),(list of <reset_vote_state> modes)
OK
+USLPVOTE: 0,(0-2)
+USLPVOTE: 1,(2-3),(0-1)
OK

Defined values

ParameterTypeDescription
<op_cmd>
Number
Voting operation:
  • 0: select voting mode (up/down/reset) for <configured_vote_state>
  • 1: configure vote state
<param>
Number
Voting mode when <op_cmd>=0:
  • 0: vote down <configured_vote_state>
  • 1: vote up <configured_vote_state>
  • 2: reset all votes for <configured_vote_state>
<configured_vote_state> when <op_cmd>=1:
  • 2: vote state is configured against Sleep-1
  • 3 (default value): vote state is configured against Sleep-2/Hibernate
<reset_vote_state>
Number
Optional parameter to allow change of <configured_vote_state> only when <op_cmd>=1:
  • 0 (default value): do not allow change of vote state if there is at least one vote down
  • 1: allow change of configured vote state regardless the number of votes, next vote down will reset previous vote state counter
<current_voted_state>
Number
Current actual voted state value:
  • 2: current voted state is against Sleep-1
  • 3: current voted state is against Sleep-2/Hibernate
<vote_cnt>
Number
Number of votes against current voted state:
  • 0: minimum vote against current voted state
  • 255: maximum vote against current voted state
<configured_vote_state>
Number
Configured vote state value (terminal specific):
  • 2: vote against Sleep-1
  • 3: vote against Sleep-2/Hibernate
Last updated: 13 January 2025
Need help?Contact Support
Questions?Contact us