Hello CircuitDojo Community,

I am a good ways into development of an nRF9160 based project’s firmware, which I developed some ways on a Sparkfun Thing Plus nRF9160 and later on a somewhat similar custom hardware. I am yet using both boards for firmware development. I am also at a blocking point as I exercise and test various LTE modem settings, via an AT command API provided by Nordic Semi.

Specifically, with firmware running and compiled with Nordic’s at_cmd_handler API, I’m issuing AT+CPSMS=“…”. I’m confident my command syntax is correct. I am consistently able to read back the Power Savings Mode values I am requesting, by issuing AT+CPSMS?. Most of the time the LTE modem on hand is granted a non-zero PSM or periodic-TAU value, but this value invariably is granted as 54 minutes, “01001001”.

Is it normal for a Mobile Network Operator (MNO) to grant only one, fixed periodic-TAU PSM value to user equipment?

By the way I issue AT%XMONITOR to review which PSM values are granted.

So far given my limited AT command experience, I have only been checking that our LTE modem is in its powered mode, that is AT+CFUN? returns a powered status of 1, rather than 0 or 4 or something else. I have also been checking that the board I’m testing, with SIM of course, is connected to an MNO. The AT command AT_CGDCONT? returns a reliably longer string when the LTE modem has an established connection with a cell tower.

Question 2 - in order to be granted more than one fixed periodic Tracking Area Update value, is there some further before or after AT command sequence I need, around my issuance of AT+CPSMS? ?

  • Ted

    tedhavelka66 good question and I may not have a good answer!

    Is it normal for a Mobile Network Operator (MNO) to grant only one, fixed periodic-TAU PSM value to user equipment?

    You may need to reach out to Hologram or whomever you’re using to determine what modes are available in what countries. I know some places only allow up to 360 minutes whereas the specification is much longer.

    You may also have to reach out to Nordic on Devzone and see what they support. I haven’t spent a ton of time playing with these settings and if I do it’s usually though the device config not direct AT commands.

    Sorry I couldn’t be more helpful!

    Hi @jaredwolff,
    Thanks for getting back to me! At this time my team is using iBasis SIM cards. Sounds like we need to talk with iBasis to see whether there is any blocker to being granted non-zero periodic-TAU and Active Time values in the greater Portland / Vancouver area, in northern Oregon.
    As for reaching out to Devzone I have some posts there on this topic, latest one asks about iBasis’ LPWAN Coverage Document. This Devzone ticket also contains links to three PSM related tickets I opened there this past month.
    I’m a bit confused now though by your recommend “reach out to iBasis”. I’ve heard it is the Mobile Network Operators such as AT&T who support or do not support PSM in certain areas. The iBasis coverage document seems to jive with that notion. It lists MNOs by name in its third column. What is the interplay between iBasis and these MNOs?
    Thanks again, Jared!

    • Ted

    Sounds about right. Every provider has a different idea of how they want to implement CAT-M1 and NB. I always err on the side of not implementing these features unless I’m 100% certain they’ll work for all deployed locations.

    Hi Jared,

    Given our team’s product requirements I am unfortunately not able to forego implementing Power Savings Mode in our LTE modem, nRF9160 based design. Our use case is heavy machinery monitoring in remote locations. Wired power is generally not an option, nor wired networks. So we will rely on finding a way to sustain a functioning sensor product running on battery for a couple three years or longer if possible.

    Ideally we would be able to “listen” not transmit about every ten minutes, and transmit a summary report once a day. Nordic Semi Online Power Profiler for the 91 series System-in-Packages says we can “get there”. As you know though, the caveat is that several of the parameters including PSM periodic-TAU and Active Time which we enter on the on-line profiler must be granted by third parties. We don’t get to configure those from our hardware or firmware.

    Will let the community know if and when I find any solution to this problem. Thanks again!

    • Ted

      tedhavelka66 got it. I’ll add tahat my solution was to disconnect and power down the modem and only power on/transmit on a certain fixed interval. You’re going to get the best quiescent current power usage in this modem power down state.

      Looking forward to any findings you share. 😀

      Hi Jared,

      To your comment on powering down the LTE modem, Nordic engineers in Devzone ticket 87451 confirmed that, at least with nRF9160’s LTE modem, to issue AT+CFUN=0 disconnects and to powers down the modem. I believe I have that step correct when I apply the AT command sequence:

      AT+CFUN=0
      AT+CPSMS=1,,,"10101010","01001010" . . . or other valid T3412 and T3324 values
      AT+CFUN=1

      Our plan is to be powered down and only transmit at certain intervals. We could simply put the modem in flight mode, or turn it off, but then we would need to search for a network and re-register to be connected to our local cell providers. As I understand it, we need to power everything down low as possible, LTE modem included, and wake up a little before our periodic-TAU (Tracking Area Update) timer T34123 expires. Then the modem runs some of its black box firmware from Nordic, and confirms we’re still registered, and we can listen or transmit as needed. Then go back to sleep.

      What is interesting to me is that no where on nordicsemi.com, not Devzone and not their infocenter am I able to find a document or guide which describes the needed AT command sequence(s) to enter low power. More precisely, to configure the modem to request low power. It was not obvious that the modem needed to be turn off – disconnected – in order to be able to negotiate its request for PSM settings from the Mobile Network Operator. The 3GPP documentation does not bridge this knowledge gap either. It does not seem to be a document that wants to define any particular device or hardware implementation, it is much more a general standard.

      Hopefully I can glean some information from iBasis support team too. Beyond this, I am asking myself how often our device could register with available Mobile Network Operator in the case we cannot obtain PSM. Users would not be able to adjust device settings nearly as often, though I hope we would still be able to send event summaries to the cloud once a day.

      • Ted

        tedhavelka66

        What is interesting to me is that no where on nordicsemi.com, not Devzone and not their infocenter am I able to find a document or guide which describes the needed AT command sequence(s) to enter low power.

        It is definitely not clear. What the modem actually does is go into a sleep mode when PSM and/or EDRx is enabled. If you turn on PSM and then subscribe to the MODEMSLEEP notifications, you should get an idea when the MFW is sleeping vs awake:

        5.33 Modem sleep notification %XMODEMSLEEP
        The Nordic-proprietary %XMODEMSLEEP command subscribes modem sleep notifications. Based on the %XMODEMSLEEP indications, the application can optimize its power efficiency by synchronizing its operations to the modem’s sleeps and wake-ups and radio activity and inactivity. v1.3.x

        It does require MFW >= 1.3.x

        For folks using LTE_LC you’ll need to set CONFIG_LTE_LC_MODEM_SLEEP_NOTIFICATIONS=y in prj.conf to get those notifications in your lte_lc_evt handler.

        I added a few printouts to the app I’m working on. Nice to see it in action.

        [00:00:00.599,945] <inf> app_main: LTE_LC_EVT_MODEM_SLEEP_ENTER 4
        [00:00:00.641,296] <inf> app_main: LTE_LC_EVT_MODEM_SLEEP_EXIT 4
        ...doing stuff...
        [00:02:26.686,218] <inf> app_main: LTE_LC_EVT_MODEM_SLEEP_ENTER 1

        The numbers correspond to the sleep type:

        enum lte_lc_modem_sleep_type {
        	LTE_LC_MODEM_SLEEP_PSM			= 1,
        	LTE_LC_MODEM_SLEEP_RF_INACTIVITY	= 2,	/* For example eDRX */
        	LTE_LC_MODEM_SLEEP_FLIGHT_MODE		= 4,
        };
        Terms and Conditions | Privacy Policy