I’m running into another issue with PSM on the HL7812.
-
During the first entry into PSM hibernate, the current consumption drops to around 1.60 µA, which is great and seems to match the expected behavior.
-
However, after the modem wakes up (in my case, to send an MQTT ping when the 120-second keepalive timer expires), the next entries into PSM no longer reach the low current levels.
-
Instead, the current consumption stays at around 20 µA in all subsequent PSM cycles.
-
PSM Settings:
- Active Timer (T3324): 30 seconds
- TAU (T3412): 15 minutes
-
After waking up and completing the MQTT ping (triggered by the 120s keepalive), I correctly pull the wake-up pin low and suspend UART communication upon receiving
+PSMEV: 1
. -
I’ve also confirmed that both GPIO6 and VGPIO go low, which typically indicates the modem is entering hibernate mode again.
However, despite these indicators, the current draw remains at ~20 µA, rather than returning to the expected 1.60 µA seen during the first PSM cycle.
and also, I’ve reviewed and compared the logs from the first successful PSM cycle and the following one. On the surface, there’s no noticeable difference in modem activity or PSM signaling, and both transitions appear clean in the logs. The key differences are only evident in power consumption, something internally seems to prevent the modem from fully returning to deep hibernate mode after waking up once.
this is the logs at first psm entery
[00:00:27.770,000] <dbg> aws: publish_message: Published payload:
7b 22 63 6f 75 6e 74 65 72 22 3a 30 7d |{"counte r":0}
[00:00:27.770,000] <dbg> hl78xx_socket: offload_ioctl: 1506 offload_ioctl 258
[00:00:27.770,000] <dbg> hl78xx_socket: offload_ioctl: poll_prepare: fd=5, events=0x1
[00:00:33.757,000] <dbg> modem_chat: modem_chat_log_received_command: +KSTATEV: 2 1
[00:00:33.757,000] <dbg> hl78xx_dev: hl78xx_on_kstatev: KSTATEV: +KSTATEV: 2 1
[00:00:33.757,000] <dbg> hl78xx_socket: hl78xx_on_kstatev_parser: KSTATEV: socket 6 state 2
[00:00:33.757,000] <dbg> hl78xx_socket: hl78xx_on_kstatev_parser: Unhandled KSTATEV for socket 6 state 2
[00:01:03.717,000] <dbg> modem_chat: modem_chat_log_received_command: +CEREG: 4 "00001111" "00000111"
[00:01:03.718,000] <dbg> hl78xx_dev: hl78xx_on_cxreg: 247 hl78xx_on_cxreg 9 +CEREG:
[00:01:03.718,000] <dbg> modem_chat: modem_chat_log_received_command: +PSMEV: 1
[00:01:03.718,000] <dbg> hl78xx_dev: hl78xx_on_psmev: 289 hl78xx_on_psmev 2
[00:01:03.718,000] <dbg> hl78xx_dev: hl78xx_log_event: event deregistered
[00:01:03.718,000] <dbg> hl78xx_dev: hl78xx_on_state_leave: 1978 hl78xx_on_state_leave 12
[00:01:03.718,000] <dbg> hl78xx_dev: hl78xx_log_state_changed: switch from carrier on to await registered
[00:01:03.818,000] <dbg> hl78xx_dev: hl78xx_log_event: event timeout
[00:01:03.818,000] <dbg> hl78xx_dev: hl78xx_await_registered_event_handler: 1635 hl78xx_await_registered_event_handler: PSM event received, modem is in PSM mode
[00:01:03.818,000] <dbg> hl78xx_dev: hl78xx_on_state_leave: 1978 hl78xx_on_state_leave 10
[00:01:03.818,000] <dbg> hl78xx_dev: hl78xx_on_idle_state_enter: 1822: Wake pin is enabled, setting it to low
[00:01:03.818,000] <dbg> hl78xx_dev: hl78xx_on_idle_state_enter: PM state BF: 0 rc: 0
[00:01:03.818,000] <dbg> hl78xx_dev: hl78xx_log_state_changed: switch from await registered to idle
[00:01:04.507,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: GPIO6 ISR callback gpio@42020000 8 0
[00:01:04.507,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state BF: 1 rc: 0
[00:01:04.507,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM act rc: 0
[00:01:04.507,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state af: 1 rc: 0
[00:01:04.507,000] <dbg> hl78xx_dev: mdm_vgpio_callback_isr: VGPIO ISR callback gpio@42020400 2 0
[00:01:08.602,000] <dbg> hl78xx_dev: mdm_vgpio_callback_isr: VGPIO ISR callback gpio@42020400 2 1
[00:01:08.602,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: GPIO6 ISR callback gpio@42020000 8 1
[00:01:08.602,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state BF: 1 rc: 0
[00:01:08.602,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM act rc: 0
[00:01:08.602,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state af: 1 rc: 0
[00:01:09.461,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: GPIO6 ISR callback gpio@42020000 8 0
[00:01:09.461,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state BF: 1 rc: 0
[00:01:09.461,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM act rc: 0
[00:01:09.461,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state af: 1 rc: 0
[00:01:11.237,000] <dbg> hl78xx_dev: mdm_vgpio_callback_isr: VGPIO ISR callback gpio@42020400 2 0
this is the next one:
[00:02:32.618,000] <dbg> aws: mqtt_event_cb: MQTT event: PINGRESP [9] result: 0
[00:02:32.618,000] <dbg> hl78xx_socket: offload_ioctl: 1506 offload_ioctl 258
[00:02:32.618,000] <dbg> hl78xx_socket: offload_ioctl: poll_prepare: fd=5, events=0x1
[00:02:38.161,000] <dbg> modem_chat: modem_chat_log_received_command: +KSTATEV: 2 1
[00:02:38.161,000] <dbg> hl78xx_dev: hl78xx_on_kstatev: KSTATEV: +KSTATEV: 2 1
[00:02:38.161,000] <dbg> hl78xx_socket: hl78xx_on_kstatev_parser: KSTATEV: socket 6 state 2
[00:02:38.161,000] <dbg> hl78xx_socket: hl78xx_on_kstatev_parser: Unhandled KSTATEV for socket 6 state 2
[00:03:08.152,000] <dbg> modem_chat: modem_chat_log_received_command: +CEREG: 4 "00001111" "00000111"
[00:03:08.152,000] <dbg> hl78xx_dev: hl78xx_on_cxreg: 247 hl78xx_on_cxreg 9 +CEREG:
[00:03:08.152,000] <dbg> modem_chat: modem_chat_log_received_command: +PSMEV: 1
[00:03:08.152,000] <dbg> hl78xx_dev: hl78xx_on_psmev: 289 hl78xx_on_psmev 2
[00:03:08.152,000] <dbg> hl78xx_dev: hl78xx_log_event: event deregistered
[00:03:08.152,000] <dbg> hl78xx_dev: hl78xx_on_state_leave: 1978 hl78xx_on_state_leave 12
[00:03:08.152,000] <dbg> hl78xx_dev: hl78xx_log_state_changed: switch from carrier on to await registered
[00:03:08.252,000] <dbg> hl78xx_dev: hl78xx_log_event: event timeout
[00:03:08.252,000] <dbg> hl78xx_dev: hl78xx_await_registered_event_handler: 1635 hl78xx_await_registered_event_handler: PSM event received, modem is in PSM mode
[00:03:08.252,000] <dbg> hl78xx_dev: hl78xx_on_state_leave: 1978 hl78xx_on_state_leave 10
[00:03:08.252,000] <dbg> hl78xx_dev: hl78xx_on_idle_state_enter: 1822: Wake pin is enabled, setting it to low
[00:03:08.252,000] <dbg> hl78xx_dev: hl78xx_on_idle_state_enter: PM state BF: 0 rc: 0
[00:03:08.252,000] <dbg> hl78xx_dev: hl78xx_log_state_changed: switch from await registered to idle
[00:03:08.940,000] <dbg> hl78xx_dev: mdm_vgpio_callback_isr: VGPIO ISR callback gpio@42020400 2 0
[00:03:08.940,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: GPIO6 ISR callback gpio@42020000 8 0
[00:03:08.940,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state BF: 1 rc: 0
[00:03:08.940,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM act rc: 0
[00:03:08.940,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state af: 1 rc: 0
[00:03:13.048,000] <dbg> hl78xx_dev: mdm_vgpio_callback_isr: VGPIO ISR callback gpio@42020400 2 1
[00:03:13.048,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: GPIO6 ISR callback gpio@42020000 8 1
[00:03:13.048,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state BF: 1 rc: 0
[00:03:13.048,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM act rc: 0
[00:03:13.048,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state af: 1 rc: 0
[00:03:13.822,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: GPIO6 ISR callback gpio@42020000 8 0
[00:03:13.822,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state BF: 1 rc: 0
[00:03:13.822,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM act rc: 0
[00:03:13.822,000] <dbg> hl78xx_dev: mdm_gpio6_callback_isr: PM state af: 1 rc: 0
[00:03:13.822,000] <dbg> hl78xx_dev: mdm_vgpio_callback_isr: VGPIO ISR callback gpio@42020400 2 0
Verson: HL7812.5.5.17
Thanks in advance.