Menu

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Narrowband Power Optimizations for Massive IoT: eDRX and PSM

Narrowband IoT (NB-IoT) cellular technology was designed with very low-power devices in mind. It contains a number of features which developers of Massive IoT devices — for example, location trackers, low-cost sensor nets, utilities meters, and preventative maintenance monitors — can use to keep their products’ power draw to an absolute minimum.

This guide describes two of these optimization features, Power Save Mode (PSM) and Extended Discontinuous Reception (eDRX), to help you assess how they can benefit your Massive IoT application — and if so how to utilize them.

PSM

Typically Massive IoT devices send or receive data intermittently. Between periods of data transmission and reception, the device can be put to sleep to minimize power consumption and thus maximize battery charge.

Power Save Mode (PSM) is a feature of the cellular modem that turns off the device radio and puts the device to sleep without having the need to re-attach itself to the network when it next wakes up. The re-attach procedure consumes only a small amount of energy, but the cumulative energy consumption of re-attachments can become significant over the lifetime of a device. Therefore, battery life could be extended if re-attachment could be avoided. PSM delivers exactly that.

  • PSM is a device-side mechanism to reduce radio energy consumption. The device reports top the network how often and for how long it needs to be active in order to transmit and receive data. However, the final values are determined by the network.
  • PSM mode is similar to power-off, but the device remains registered with the network. When the device becomes active again there is no need to re-attach or re-establish PDN (Packet Data Network) connections.
  • The PSM feature was introduced in 3GPP Release 12 and is available for all LTE device categories. The device requests PSM simply by including a timer with the desired value in the attach, tracking area update (TAU) or routing area update.

PSM-dia.png

PSM FAQs

How does it work?

When a device initiates PSM with the network, it provides two preferred timers (T3324 and T3412); PSM time is the difference between these timers (T3412 minus T3324). The network may accept these values or set different ones. The network then retains state information and the device remains registered with the network. If a device awakes and sends data before the expiration of the time interval it agreed with the network, a re-attachment procedure is not required.

Can a device receive messages when it’s in an active PSM cycle?

No. A device is unreachable during this period.

Can a device be reached via NIDD (Non-IP Data Delivery) when it’s in an active PSM cycle?

No. NIDD works over the paging channel which leverages the radio. In an active PSM cycle, the radio is fully shut down and the device cannot be reached.

What happens to data packets that get sent to a device when it’s in an active PSM cycle?

3GPP requirements mandate that the data packets must be stored by the network. Recommendations are for the network operator to set aside storage for at least the last packet of 100 bytes.

How long can a device stay in a PSM cycle?

On the T-Mobile NB-IoT network, a device can remain in PSM cycle for a maximum of 12 hours.

Working with PSM

PSM has to be supported on the cellular module. It can be enabled using AT Commands on the device.

For example, if you are using the the Quectel BG96 modem, you would issue:

AT+QCFG="psm/urc"[enable].

AT+QPSMTIMER: <tau_timer>,<T3324_timer>

No network configuration need be done by the user; enabling PSM on the device is sufficient.

The requested periodic TAU timer value is encoded per the GPRS Timer 3 specification (see section 10.5.7.4a of 3GPP TS 24.008) as follows:

Bits 5 to 1 represent the binary coded timer value. Bits 6 to 8 defines the timer value unit for the timer as follows:

Timer 3 value:

Timer value is incremented in multiples of:

000xxxxx

10 minutes

001xxxxx

1 hour

010xxxxx

10 hours

011xxxxx

2 seconds

100xxxxx

30 seconds

101xxxxx

1 minute

110xxxxx

320 hours*

111xxxxx

Timer is deactivated

*See the note in the 3GPP TS 24.008 specification, table 10.5.163a for additional information on this value.

The requested active time is a single binary string byte value defined by octet 3 of the GPS Timer 2 specification (see section 10.5.7.4 of 3GPP TS 24.008) as follows:

Bis 5 to 1 represent the binary coded timer value. Bits 6 to 8 defines the timer unit for the timer as follows:

Timer value:

Timer value is incremented in multiples of:

000xxxxx

2 seconds

001xxxxx

1 minute

010xxxxx

1 decihour (6 minutes)

111xxxxx

Timer is deactivated

Examples

AT+CPSMS=1,,,"01000011","01000011"

This enables (1) PSM with a periodic TAU value of 30 hours (01000011) with a requested active time of 3 decihours (18 minutes, ie. 01000011)

AT+CPSMS=0

This disables (0) PSM mode.

eDRX

Extended Discontinuous Reception (eDRX) is an extension of an existing LTE feature that can be used by IoT devices to reduce power consumption. eDRX can be used without PSM or in conjunction with PSM to obtain additional power savings.

eDRX allows the time interval during which a device is not listening to the network to be greatly extended. For a Massive IoT application, it might be quite acceptable for a device to be unreachable for several seconds or longer. While not providing the same levels of power reduction as PSM, eDX may offer a good compromise between device reachability and power consumption for some applications. Networks and devices negotiate when devices can sleep. The device keeps its receiver circuitry switched off for a defined period of time; during this time, the device is not listening for paging or downlink control channels. When the device wakes up, the receiver will listen for the Physical Control Channel.

eDRX dia.png

Only certain periods are allowed for eDRX; these are listed in the table below:

eDRX Permitted Periods

20.48 seconds

40.96 seconds

81.92 seconds (~1 minute)

163.84 seconds (~ 3 min)

327.68 seconds (~ 5 min)

655.36 seconds (~ 11 min)

1310.72 seconds (~22 min)

2621.44 seconds (~44 min)

5242.88 seconds (~87 min)

10485.76 seconds (~175 min)

Working with eDRX

eDRX support varies between carriers. The device requests the network for a given eDRX cycle; the network responds with the actual applied eDRX cycle and paging time window (PTW).

Enabling eDRX does not adversely affect the module’s ability to send data, but turns off reception for the configured cycle interval, saving power.

T-Mobile supports all documented (see Table 10.5.5.32 of 3GPP TS 24.008) values for the narrowband eDRX cycle, NB-S1 mode, ranging from ~20s (20.48s) to ~3hrs (10485.76s). Values are represented by bit strings of the form:

"0010"

20.48s

"0011"

40.96s

"0101"

81.92s

"1001"

163.84s

"1010"

327.68s

"1011"

655.36s

"1100"

1310.72s

"1101"

2621.44s

"1110"

5242.88s

"1111"

10485.76s (~175min)

Depending on the NB-IoT module your product uses, the requested eDRX cycle may be stored in non-volatile memory and persisted between sessions. Modules typically support disabling eDRX with a subsequent AT command along with an option to restore the default value.

To configure eDRX on both the u-blox SARA-N410-02b and Quectel BG96 for NB modules, you use the AT+CEDRXS command as follows:

AT+CEDRXS=2,5,"1001"

This requests eDRX be enabled with URC feedback (2) for Narrowband (5) and an eDRX cycle time of 163.84s ("1001").

The network will respond, via a URC if configured, by repeating the requested cycle interval along with the actual effective cycle interval and the network specified PTW time. An example URC for the above command is:

+CEDRXP: [5,"1001","1001","0111"]

The returned PTW value returned for NB-S1 corresponds to the following timings:

"0000"

2.56s

"0001"

5.12s

"0010"

7.68s

"0011"

10.24s

"0100"

12.8s

"0101"

15.36s

"0110"

17.92s

"0111"

20.48s

"1000"

23.04s

"1001"

25.6s

"1010"

28.16s

"1011"

30.72s

"1100"

33.28s

"1101"

35.84s

"1110"

38.4s

"1111"

40.96s

To disable eDRX for narrowband, issue:

AT+CEDRXS=0,5

eDRX is indicted by the 0 and narrowband by the 5.

Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.