This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Verifying nRF9160 going into PSM

Hi everyone

We're developing an IoT device with an nRF9160 embedded in it. We're trying to make sure we're implementing PSM.

We set our preferred values for TAU as you can see in the next image. And in our code we call lte_lc_psm_req(true);  when configuring the modem.

We understand that the network is overriding the TAU values.

From this I can tell that TAU is 180 min and Active Timer is disabled.

My questions are:

1. Will my modem go into sleep mode immediately? 

2. How can we verify that my modem is sleeping?

Any information that will help us broaden our knowledge will be appriciated.

Regards.

  • Hello Zabdiel,

    1. Will my modem go into sleep mode immediately? 

    When the modem is in RRC idle, it will wait until the configured <Active-Time> has passed before entering PSM.

    2. How can we verify that my modem is sleeping?

    You can e.g. use %XMODEMSLEEP notifications to check if the modem has entered PSM.

    As also described here, since you do not have any <Active-Time>, the negotiation with the network for PSM values probably wasn’t successful. You should check with your network service provider which PSM values are allowed.

    Regards,

    Markus

  • Hello Albrecht

    First of all, thank you for your reply.

    I have more questions.

    As also described here, since you do not have any <Active-Time>, the negotiation with the network for PSM values probably wasn’t successful.

    I found on nordic's infocenter some information that backs up what you just told me: The device can enter Power Saving Mode (PSM) state in LTE idle mode when the <Active-Time> parameter has a valid value where at least one of bits 6–8 is set to 0

    https://infocenter.nordicsemi.com/index.jsp?topic=%2Fref_at_commands%2FREF%2Fat_commands%2Fnw_service%2Fxmonitor.html

    1. Is there any chance that the device could enter PSM even if it doesn't have a valid Active Time?

    2. What is the difference between CEREG and XMONITOR?

    3. To verify that my modem is sleeping you suggested %XMODESLEEP. Is this command similar or related to Modem sleep and TAU prewarning notifications (https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/nrf/libraries/modem/lte_lc.html?highlight=config_lte_psm#enabling-power-saving-features) ??? 

    4. Do you have some sample code that uses %XMODESLEEP?

    I truly appriciate your time and effort to help me understand these concepts.

    Regards,

    Zabdiel

  • zabdielfavela said:
    First of all, thank you for your reply.

    My pleasure, Zabdiel :-) I’m glad I can help.

    zabdielfavela said:
    I truly appriciate your time and effort to help me understand these concepts.

    Yes, there is a lot of information available and sometimes it’s not that easy to find the specific parts needed. So let me try to narrow it down a little bit for you:

    zabdielfavela said:
    1. Is there any chance that the device could enter PSM even if it doesn't have a valid Active Time?

    No. If the network doesn’t assign a valid <Active-Time> to the UE, PSM is not allowed. With that said, some networks allow an active time of zero, corresponding to the value 000 00000.

    zabdielfavela said:
    2. What is the difference between CEREG and XMONITOR?

    +CEREG basically is the network registration status. You can configure it subscribe unsolicited result codes, meaning that the modem will send +CEREG updates if something has changed. +CEREG will feedback the <Active-Time> negotiated with the network during registration, but to read the <Periodic-TAU> value you should use %XMONITOR. This due to that <Periodic-TAU> is used in different formats.

    %XMONITOR are the configured modem parameters. It is similar to +CEREG, but as already mentioned, will give you some extra information regarding <Periodic-TAU>. For mfw > 1.2.x, the <Periodic-TAU-ext> will show the actual negotiated PSM time, and as confusing as this might be, the value doesn’t necessary match the <Periodic-TAU> value of +CEREG. This is why the description of <Periodic-TAU> in +CEREG also states The configured value of T3412 can be read with the %XMONITOR command..

    zabdielfavela said:

    Yes. The LTE link controller basically is a wrapper that in the end uses AT commands to send and receive information to and from the modem. So there are two ways to go, either you use AT commands directly with your application, or you make help of the e.g. the LTE link controller library. Which way you might want to choose depends a bit on your use case, preferences and needs. If you would like to do the latter, I generally refer to and recommend its documentation, as it covers most of the use cases. Otherwise, see next point.

    zabdielfavela said:
    4. Do you have some sample code that uses %XMODESLEEP?

    We do not have any concrete example here, but you can for instance use our AT Client or Serial LTE modem application to try this. Let me give you a terminal output example with the AT Client:

    *** Booting Zephyr OS build v2.7.99-ncs1-1  ***
    The AT host sample started
    AT+CEREG=5
    OK
    AT%CESQ=1
    OK
    AT%XMODEMSLEEP=1,1000,60000
    %XMODEMSLEEP: 4,0
    OK
    AT+CFUN=1
    %XMODEMSLEEP: 4,0
    OK
    %CESQ: 59,2,25,3
    +CEREG: 2,"7AA9","01444000",7
    +CEREG: 1,"7AA9","01444000",7,,,"00001010","11000001"
    AT%XMONITOR
    %XMONITOR: 1,"","","24201","7AA9",7,20,"01444000",177,6400,58,43,"","00001010","11000001","01011111"
    OK
    %CESQ: 255,0,255,0
    %XMODEMSLEEP: 1,1151979975

    Otherwise, if you want your application to communicate directly with the modem using AT commands, you can us the AT interface of our modem library.

    I hope my answer will help you.

    Regards,

    Markus

  • Thanks again for your prompt reply.

    My team and I redacted the attached document that describes PSM as we understand it. We would appreciate if you read it and pointed out any gaps in our understanding.
    We also came up with more questions:

    1. What happens when we send data before the periodic TAU timer is up? Will the TAU timer restart or will it continue with the remaining time from the previous cycle?
    2. We’ve come up with an indirect way to detect modem transition into PSM. First we subscribe to RSRP notifications. Next, we query the signal connection status (CSCON). And if the connection state is IDLE, then we judge sudden signal values of 255 as modem entering deep sleep.
      Do you think our method detects PSM accurately?
    3. In one of your replies you said: If the network doesn’t assign a valid <Active-Time> to the UE, PSM is not allowed.
      We understand that receiving either invalid TAU or Active timer means that PSM is not allowed. Is there another way to verify that network doesn’t support PSM? If we receive valid timer values, should we assume PSM is supported? If not, is there a way to verify PSM is supported?

    I want to thank you once again for your help.

    Regards,

    Zabdiel

    PSM Understanding and questions.pdf

  • Hello Zabdiel,

    zabdielfavela said:
    What happens when we send data before the periodic TAU timer is up? Will the TAU timer restart or will it continue with the remaining time from the previous cycle?

    The T3412 (Periodic Tracking Area Update) value is a negotiation between the UE and the network indicating after which time the UE has to wake up from sleep mode to transmit a tracking area update. If the UE does so before that time has passed, because it e.g. will transmit user data, then there is no need for a tracking area update within that cycle and the timer will be reset and start over again when the UE enters sleep mode.

    You might find this link interesting, as it describes the basis of PSM and eDRX.

    zabdielfavela said:
    We’ve come up with an indirect way to detect modem transition into PSM. First we subscribe to RSRP notifications. Next, we query the signal connection status (CSCON). And if the connection state is IDLE, then we judge sudden signal values of 255 as modem entering deep sleep.
    Do you think our method detects PSM accurately?

    My recommendation would be to use modem sleep notifications, %XMODEMSLEEP. Additionally, you could subscribe to signal quality notifcations, %CESQ, as the signal strength values will switch to 255 when the UE enters PSM.

    zabdielfavela said:
    If we receive valid timer values, should we assume PSM is supported?

    Yes.

    zabdielfavela said:
    If not, is there a way to verify PSM is supported?

    No. You have to get in touch with the carrier in this case.

    Regards,

    Markus

Related