Environment
- My hardware is the nRF9151DK dev kit and a custom board with nRF9151 (Monkeytronics Airsmart Cellular Beta 3).
- Using nRF tools and SDK v3.1.1.
- Using Onomondo and softsim - which incidentally is causing some trouble.
- Based in New Zealand and currently on Spark network.
Goal (simplified) - this is what I want to achieve.
- Wake every hour, take some readings and send uplink packet of 100 - 500 bytes.
- Occasionally, a downlink packet will be sent upon receipt of uplink. Will be held pending in Monkeytronics cloud.
- Achieve lowest possible average power consumption.
Power Saving Plan
- PSM enabled.
- Periodic tau = 24 hours ("00111000")
- Active time = 12 s ("00000110")
- eDRX enabled.
- eDRX period = 5.12 s ("0000")
- PTW = 1.28 s ("0000")
- RAI Enabled.
Questions
- Are the above settings sensible? And well suited to achieving lowest power consumption?
- Is there any reason why these settings might be unachievable with Spark NZ? I will also contact them to check.
- Note a): the lte event handler sees "network is rejecting the PSM paramaters (with active time = -1)".
- Note b) the lte event handler see RAI event only once and logs: "MCC: 530, MNC: 5, AS RAI: false, CP RAI: false".
- Can you confirm if either or both of the following approaches will successfully implement the above power saving plan:
## PSM CONFIG_LTE_PSM_REQ=y CONFIG_LTE_LC_PSM_MODULE=y ## eDRX CONFIG_LTE_EDRX_REQ=y CONFIG_LTE_LC_EDRX_MODULE=y ## RAI CONFIG_LTE_RAI_REQ=y CONFIG_LTE_LC_RAI_MODULE=y
/* just after nrf_modem_lib_init() */
lte_lc_psm_param_set("00111000", "00000110"); // 24 hours &12 seconds
lte_lc_psm_req(true);
lte_lc_ptw_set(LTE_LC_LTE_MODE_LTEM, "0000"); // 1.28 seconds
lte_lc_edrx_param_set(LTE_LC_LTE_MODE_LTEM,"0000"); // 5.12 seconds
lte_lc_edrx_req(true);
rai_set();