LTE-M consuming way to much power to transmit 100 bytes UDP every 15 seconds, please help me understand why.

I'm using the UDP sample from SDK 1.8.0 with the following modifications:

  • No PSM
  • No eDRX
  • Send 100 bytes every 15 seconds

This is on the nrf9160-DK board.

I suspect I can improve power consumption by disabling RRC idle mode, but I cannot find any documentation on how to do this.

I am unsure of the actual cDRX timing parameters as what seems like DRX events are sporadic.

Here are some power profile images and a modem trace if that's helpful.

The above image shows large period of almost continuous activity after the TX event for ~5 seconds and then iDRX activity until the next TX event.

This is the activity while RRC connected. 

I am seeing an average of 10mA, with 22mA during the connection period. I was expecting the average current consumption to be 2.5 - 4mA.

7723.trace-2022-02-14T21-46-37.030Z.bin

Parents Reply Children
  • The network is mostly in control of the timing so cDRX is not something that the device has control over. I dont have a good answer i am consulting our internal experts and i will update. 

    Regards,
    Jonathan

  • Sorry for the slow response, 

    There is a way to get an indication when the modem goes to sleep wit one of the power saving features. The XMODEMSLEEP AT command. Its part of the link controller and can be enabled through Kconfig option CONFIG_LTE_LC_MODEM_SLEEP_NOTIFICATIONS. 

    ```

    config LTE_LC_MODEM_SLEEP_NOTIFICATIONS
            bool "Modem sleep notifications"
            help
                    If this option is enabled the application will get notifications when the modem
                    enters and exits sleep. The application will also get pre-warning notifications
                    prior to when the modem exits sleep depending on the configured pre-warning time.
    config LTE_LC_MODEM_SLEEP_PRE_WARNING_TIME_MS
            int "Modem sleep pre-warning time"
            range 500 3600000
            default 5000
            help
                    Time before modem exits sleep that a pre-warning is to be received.
    config LTE_LC_MODEM_SLEEP_NOTIFICATIONS_THRESHOLD_MS
            int "Modem sleep notifications threshold"
            range 10240 3456000000
            default 1200000
            help
                    Minimum value of the duration of the scheduled modem sleep that triggers a
                    notification.



            /** @brief Modem sleep pre-warning
             *         This event will be received a configurable amount of time before
             *         the modem exits sleep. The time parameter associated with this
             *         event signifies the time until modem exits sleep.
             *         The associated payload is the modem_sleep member of type @ref lte_lc_modem_sleep
             *         in the event.
             */
            LTE_LC_EVT_MODEM_SLEEP_EXIT_PRE_WARNING,
            /** @brief This event will be received when the modem exits sleep.
             *         The associated payload is the modem_sleep member of type @ref lte_lc_modem_sleep
             *         in the event.
             */
            LTE_LC_EVT_MODEM_SLEEP_EXIT,
            /** @brief This event will be received when the modem enters sleep.
             *         The time parameter associated with this event signifies
             *         the duration of the sleep.
             *         The associated payload is the modem_sleep member of type @ref lte_lc_modem_sleep
             *         in the event.
             */
            LTE_LC_EVT_MODEM_SLEEP_ENTER,


    So this way you can make sure that it does not surpass the threshold. Not sure if it will solve the inconsistency in the power consumption you have. 
    Regards,
    Jonathan

Related