Serial LTE Modem app in NCS main has unexpected power consumption after #XSLEEP=2

NCS main, nRF9160 DK, PPK2

git log -n 1 --oneline
4f916da03 (HEAD -> main, origin/main, origin/HEAD) west.yml: rebase OSS trees

SLM prj.conf changes:
CONFIG_SLM_START_SLEEP=y
CONFIG_SLM_WAKEUP_PIN=6
CONFIG_SLM_INDICATE_PIN=2
CONFIG_NRF_MODEM_LIB_TRACE_ENABLED=y
Power consuption is ~7uA after RESET.
Then after WAKEUP and just AT#XSLEEP=2 power consuption is ~17uA sustained.

Modem is off (No AT+CFUN=1).
Why nRF9160 power consuption increased in sleep ?
Thak you.
Regards,
Michal
[PPK2] Found PPK2 at COM9
[PPK2] Measurement started
0.12 <RESET> Thu May 19 17:47:51 2022
1.03 [PPK2] 100k/s AVG 4.21 mA Max 26.0 mA
2.04 [PPK2] 100k/s AVG 1.54 mA Max 24.9 mA
3.02 [PPK2] 100k/s AVG 0.005mA Max 0.711mA
4.02 [PPK2] 100k/s AVG 0.007mA Max 0.711mA
5.01 [PPK2] 100k/s AVG 0.007mA Max 0.711mA
6.03 [PPK2] 100k/s AVG 0.006mA Max 0.711mA
7.02 [PPK2] 100k/s AVG 0.007mA Max 0.711mA
7.06 <WAKEUP>
8.02 [PPK2] 100k/s AVG 0.914mA Max 20.6 mA
8.44 [RX] Ready
9.03 [PPK2] 100k/s AVG 2.26 mA Max 52.3 mA
10.02 [PPK2] 100k/s AVG 0.704mA Max 15.9 mA
11.02 [PPK2] 100k/s AVG 0.702mA Max 16.1 mA
12.04 [PPK2] 100k/s AVG 0.700mA Max 15.2 mA
13.04 [PPK2] 100k/s AVG 0.703mA Max 13.7 mA
14.03 [PPK2] 100k/s AVG 0.701mA Max 16.6 mA
14.56 [TX] AT#XSLEEP=2
14.57 [RX] OK
15.03 [PPK2] 100k/s AVG 0.473mA Max 16.8 mA
16.01 [PPK2] 100k/s AVG 0.017mA Max 0.030mA
17.04 [PPK2] 100k/s AVG 0.017mA Max 0.030mA
18.03 [PPK2] 100k/s AVG 0.017mA Max 0.027mA
19.03 [PPK2] 100k/s AVG 0.017mA Max 0.030mA
20.04 [PPK2] 100k/s AVG 0.018mA Max 0.032mA
21.02 [PPK2] 100k/s AVG 0.018mA Max 0.031mA
22.03 [PPK2] 100k/s AVG 0.018mA Max 0.031mA
  • Hi,

     

    Here are the functions called when going to sleep:

    https://github.com/nrfconnect/sdk-nrf/blob/v1.9.1/applications/serial_lte_modem/src/slm_at_commands.c#L132-L134

     

    The UART is disabled, SLM (and deps) are uninit'ed, and GPIOs are set to an idle level for the UART that is chosen for the SLM interface.

    However:

    CONFIG_NRF_MODEM_LIB_TRACE_ENABLED=y

    This is not handled by SLM. You need to disable uart1, and set the rxd/txd gpio's to an idle level, similar to what is done in SLM, for instance by calling nrf_gpio_cfg_default() on those pins.

     

    Could you try to either disable tracing, or set those to the default (ie. reset value) state?

     

    Kind regards,

    Håkon

  • With disabled tracing sleep power consuption is more unstable without obvious reason:

    [PPK2] Found PPK2 at COM9
    [PPK2] DUT Powered, Measurement started
    0.16 <RESET> Mon May 23 02:41:30 2022
    1.01 [PPK2] 100k/s AVG 3.99 mA Max 44.3 mA
    2.03 [PPK2] 100k/s AVG 1.57 mA Max 26.3 mA
    3.01 [PPK2] 100k/s AVG 0.008mA Max 0.711mA
    4.03 [PPK2] 100k/s AVG 0.011mA Max 0.711mA
    5.04 [PPK2] 100k/s AVG 0.012mA Max 0.711mA
    6.02 [PPK2] 100k/s AVG 0.007mA Max 0.711mA
    7.01 [PPK2] 100k/s AVG 0.016mA Max 0.711mA
    7.11 <WAKEUP>
    8.04 [PPK2] 100k/s AVG 0.955mA Max 20.5 mA
    8.47 [RX] Ready
    9.01 [PPK2] 100k/s AVG 2.23 mA Max 33.4 mA
    10.02 [PPK2] 100k/s AVG 0.698mA Max 14.6 mA
    11.02 [PPK2] 100k/s AVG 0.693mA Max 16.9 mA
    12.03 [PPK2] 100k/s AVG 0.695mA Max 16.1 mA
    13.03 [PPK2] 100k/s AVG 0.697mA Max 16.0 mA
    13.62 [TX] AT#XSLEEP=2
    13.62 [RX] OK
    14.01 [PPK2] 100k/s AVG 0.509mA Max 16.5 mA
    15.02 [PPK2] 100k/s AVG 0.008mA Max 0.711mA
    16.03 [PPK2] 100k/s AVG 0.009mA Max 0.711mA
    17.03 [PPK2] 100k/s AVG 0.005mA Max 0.711mA
    18.03 [PPK2] 100k/s AVG 0.009mA Max 0.711mA
    19.01 [PPK2] 100k/s AVG 0.008mA Max 0.711mA
    20.02 [PPK2] 100k/s AVG 0.007mA Max 0.711mA
    21.02 [PPK2] 100k/s AVG 0.010mA Max 0.711mA
    22.02 [PPK2] 100k/s AVG 0.007mA Max 0.711mA
    23.03 [PPK2] 100k/s AVG 0.007mA Max 0.711mA
    24.05 [PPK2] 100k/s AVG 0.008mA Max 0.711mA
    25.01 [PPK2] 100k/s AVG 0.022mA Max 21.0 mA
    26.04 [PPK2] 100k/s AVG 0.030mA Max 16.5 mA
    27.04 [PPK2] 100k/s AVG 0.024mA Max 0.711mA
    28.02 [PPK2] 100k/s AVG 0.024mA Max 0.711mA
    29.02 [PPK2] 100k/s AVG 0.026mA Max 0.711mA
    30.04 [PPK2] 100k/s AVG 0.023mA Max 0.711mA
    31.02 [PPK2] 100k/s AVG 0.022mA Max 0.711mA
    32.01 [PPK2] 100k/s AVG 0.023mA Max 0.711mA
    33.03 [PPK2] 100k/s AVG 0.025mA Max 0.711mA

  • Hi,

     

    I think I've found what is floating. Are you connecting this signal to an external host controller?

    CONFIG_SLM_INDICATE_PIN=2

    When starting directly in sleep, this pin is floating, with configuration input buffer disconnected.

    This means that the nRF will not draw extra current, but any external logic connected on this pin can potentially draw added current.

     

    Kind regards,

    Håkon

  • Hi,

    I am using 12k pull-down on INDICATE pin now.

    I do not uderstand, why power consuption after RESET is stable but higher and unstable after #XSLEEP=2.

    Regards,
    Michal

  • Hi Michal,

     

    I am not sure how you're testing this, but I'm unable to reproduce the behavior that you see.

    Here's a sleep period, wake-up condition, and issuing "AT#XSLEEP=2" after wakeup:

     

    Could you explain your test-setup more in-depth? Is this a stock SLM application, running on the nRF9160-DK with no additional sensors?

     

    Kind regards,

    Håkon

Related