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 Reply Children
  • 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.

Related