Potential bug entering PMS while searching network

I discovered weird modem behavior when testing my application with a weak or undetectable signal. Mine testing was as follows:

  • modem connected to the network
  • communication with the server started
  • signal was shielded during communication

On most attempts modem transitioned to the limited service sleep and again connected to the network after unshielding.

Log:

[      334.604][D] LTE: RSRP=-120dBm (1), RSRQ=-16.5dB (0)
[      335.617][D] LTE: RSRP=-123dBm (0), RSRQ=-19dB (0)
[      336.646][D] LTE: RSRP=-131dBm (0), RSRQ=-19.5dB (0)
[      336.942][D] LTE: SNR=-9dB (0)
[      337.455][D] LTE: RSRP=-136dBm (0), RSRQ=-19.5dB (0)
[      337.456][D] LTE: SNR=-12dB (0)
[      343.855][D] LTE: SNR=-22dB (0)
[      374.461][D] UDP: sending 133B
[      374.472][D] UDP: sendto() successful
[      376.181][D] LTE: RRC=IDLE
[      377.457][D] LTE: RSRP=255dBm (0), RSRQ=255dB (0)
[      377.458][D] LTE: SNR=127dB (0)
[      377.458][D] LTE: Status=CEREG_SEARCHING, TAC=0002, Cell=00000002, reject=2, T3324=00000000, T3412=00000000
[      377.461][D] LTE: Band=0
[      388.282][D] LTE: Status=CEREG_UNKNOWN, TAC=0004, Cell=00000004, reject=4, T3324=00000000, T3412=00000000
[      388.290][D] LTE: Band=0
[      404.058][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=11599
[      415.157][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=500
[      415.682][D] LTE: Sleep exited
[      434.459][E] ND-IoT: Timeout on COM receive
[      455.411][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=16699
[      471.610][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=500
[      472.135][D] LTE: Sleep exited
[      511.934][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=22399
[      533.834][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=500
[      534.359][D] LTE: Sleep exited
[      534.739][D] LTE: RSRP=-112dBm (1), RSRQ=-11.5dB (2)
[      534.741][D] LTE: SNR=3dB (2)
[      534.741][D] LTE: Status=CEREG_REGISTERED_ROAMING, TAC=FDE8, Cell=044EB3AC, reject=0, T3324=00011111, T3412=01011000
[      534.744][D] LTE: Band=20
[      534.748][I] LTE: Connected (took 157s)
[      534.751][D] UDP: using socket 0
[      534.752][D] UDP: sending 5B
[      534.753][D] UDP: sendto() successful
[      535.561][D] LTE: RRC=CONNECTED
[      537.086][D] UDP: received 3B
[      537.087][D] ND-IoT: RTT=2.337s

But in one attempt the modem entered limited service sleep and then transitioned to the PSM, while it wasn't connected. This is problematic, because the application knows, that there is no service, so it will not try to send data (and wakeup the modem), so I guess, that the modem would wakeup with TAU, which was in my case 24h. I would think, that the modem should go to the PSM only when it is connected to the network?

Log:

[       69.632][D] UDP: sending 133B
[       69.642][D] UDP: sendto() successful
[       70.731][D] UDP: received 3B
[       70.732][D] ND-IoT: RTT=1.102s
[       70.736][I] ND-IoT: End of communication (took 3s)
[       76.637][D] LTE: RSRP=-115dBm (1), RSRQ=-13.5dB (1)
[       77.037][D] LTE: RSRP=-118dBm (1), RSRQ=-16.5dB (0)
[       77.039][D] LTE: SNR=-1dB (1)
[       79.040][D] LTE: RSRP=-123dBm (0), RSRQ=-19.5dB (0)
[       79.041][D] LTE: SNR=-4dB (1)
[       79.440][D] LTE: RSRP=-128dBm (0), RSRQ=-19.5dB (0)
[       79.640][D] LTE: SNR=-7dB (1)
[       80.040][D] LTE: RSRP=-133dBm (0), RSRQ=-19.5dB (0)
[       80.041][D] LTE: SNR=-10dB (0)
[       80.640][D] LTE: SNR=-13dB (0)
[       81.240][D] LTE: SNR=-16dB (0)
[       81.264][D] LTE: RRC=IDLE
[       81.284][D] LTE: RSRP=255dBm (0), RSRQ=255dB (0)
[       81.285][D] LTE: SNR=127dB (0)
[       81.384][D] LTE: Status=CEREG_SEARCHING, TAC=0002, Cell=00000002, reject=2, T3324=00000000, T3412=00000000
[       81.386][D] LTE: Band=0
[       87.006][D] LTE: Status=CEREG_UNKNOWN, TAC=0004, Cell=00000004, reject=4, T3324=00000000, T3412=00000000
[       87.015][D] LTE: Band=0
[      102.751][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=11599
[      113.850][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=500
[      114.376][D] LTE: Sleep exited
[      143.285][D] LTE: Status=CEREG_SEARCHING, TAC=0002, Cell=00000002, reject=2, T3324=00000000, T3412=00000000
[      143.288][D] LTE: Band=0
[      154.570][D] LTE: Status=CEREG_UNKNOWN, TAC=0004, Cell=00000004, reject=4, T3324=00000000, T3412=00000000
[      154.578][D] LTE: Band=0
[      154.579][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=16799
[      154.580][D] LTE: Sleep entered, type=PSM, time=863926697

Development setup:

  • NRF9160 SIBA B1A
  • mfw 1.3.7
  • ncs 2.9.1
Parents
  • I would think, that the modem should go to the PSM only when it is connected to the network?

    One point with cellular may be considered as very nasty:

    There are different situations, the device can't distinguish, because the effect at the device is the same.

    You may consider, that the device should continue to search for a network, because you assume it's there an the device will find it soon. But if the device doesn't find a network, staying idle will drain the battery.

    This is problematic, because the application knows, that there is no service, so it will not try to send data (and wakeup the modem), so I guess, that the modem would wakeup with TAU, which was in my case 24h.

    A cellular application must explicitly consider the network state in order to apply the right strategy for the device to search for networks. There is a "%PERIODICSEARCHCONF" which helps. In the past %PERIODICSEARCHCONF - relation to EMM reject cause my result was, that the device stuck in idle and drains the battery. Maybe that has changed.

  • Hi,

    I would think, that the modem should go to the PSM only when it is connected to the network?

    PSM is deep sleep state where UE is allowed to keep its connectivity state. Do you use periodic cell search in your application?

    Best regards,
    Dejan

  • If you don't use a custom setup, the modem applies a default one.

    See %PERIODICSEARCHCONF - default configurations (bottom of page):

    The modem uses specific periodic search patterns for each power level defined in the %XDATAPRFL command. The following commands correspond to the search pattern configurations used for each power level. They are default configurations, and any specific periodic cell search configuration overrides them.

    Ultra low power:

    AT%PERIODICSEARCHCONF=0,0,0,1,"0,10,40,,5","1,300,600,1800,1800,3600"

    Low power:

    AT%PERIODICSEARCHCONF=0,0,0,1,"0,10,40,,5","1,300,600"

    Normal:

    AT%PERIODICSEARCHCONF=0,0,0,1,"0,10,40,5,15","1,60,90,300"

    Performance:

    AT%PERIODICSEARCHCONF=0,0,0,1,"0,10,40,5,15","1,60,90"

    High performance:

    AT%PERIODICSEARCHCONF=0,0,0,1,"1,10","0,10,40,,15"

    ==================================================================

    So, taking your description, the modem will search for a network, and once it finds one, you may need to trigger sending a message. Rely on a PSM wakeup isn't working, but that's not a bug, it's only your assumption, how that should work.

Reply
  • If you don't use a custom setup, the modem applies a default one.

    See %PERIODICSEARCHCONF - default configurations (bottom of page):

    The modem uses specific periodic search patterns for each power level defined in the %XDATAPRFL command. The following commands correspond to the search pattern configurations used for each power level. They are default configurations, and any specific periodic cell search configuration overrides them.

    Ultra low power:

    AT%PERIODICSEARCHCONF=0,0,0,1,"0,10,40,,5","1,300,600,1800,1800,3600"

    Low power:

    AT%PERIODICSEARCHCONF=0,0,0,1,"0,10,40,,5","1,300,600"

    Normal:

    AT%PERIODICSEARCHCONF=0,0,0,1,"0,10,40,5,15","1,60,90,300"

    Performance:

    AT%PERIODICSEARCHCONF=0,0,0,1,"0,10,40,5,15","1,60,90"

    High performance:

    AT%PERIODICSEARCHCONF=0,0,0,1,"1,10","0,10,40,,15"

    ==================================================================

    So, taking your description, the modem will search for a network, and once it finds one, you may need to trigger sending a message. Rely on a PSM wakeup isn't working, but that's not a bug, it's only your assumption, how that should work.

Children
No Data
Related