PSM Current Consumption Issue on HL7812 After Wake-Up

does this affect the operation?
How about adding some delay for your init script?

see this log: I am able to run at cmds before it

[00:00:03.980,000] <dbg> modem_chat: modem_chat_log_received_command: +KSUP:  0
[00:00:03.980,000] <dbg> hl78xx_dev: hl78xx_on_ksup: Module status: 0
[00:00:03.980,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 1
[00:00:03.980,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+KHWIOCFG=3,1,6
[00:00:04.016,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.016,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 2
[00:00:04.016,000] <dbg> modem_chat: modem_chat_script_next: sending: ATE0
[00:00:04.049,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.049,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 3
[00:00:04.049,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGACT=0
[00:00:04.083,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.083,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 4
[00:00:04.083,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CFUN=4
[00:00:04.120,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.120,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 5
[00:00:04.120,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+KSLEEP?
[00:00:04.155,000] <dbg> modem_chat: modem_chat_log_received_command: +KSLEEP:  1 2 0
[00:00:04.155,000] <dbg> hl78xx_dev: hl78xx_on_ksleep: 617 4 [+KSLEEP: ] [1] 
[00:00:04.155,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 6
[00:00:04.155,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CPSMS?
[00:00:04.155,000] <dbg> modem_chat: modem_chat_on_unknown_command_received: OK
[00:00:04.192,000] <dbg> modem_chat: modem_chat_log_received_command: +CPSMS:  1   "10101111" "00001111"
[00:00:04.192,000] <dbg> hl78xx_dev: hl78xx_on_cpsms: 642 6 [+CPSMS: ] [1] ["10101111"] ["00001111"]
[00:00:04.192,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 7
[00:00:04.192,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+KEDRXCFG?
[00:00:04.192,000] <dbg> modem_chat: modem_chat_on_unknown_command_received: OK
[00:00:04.205,000] <dbg> modem_chat: modem_chat_log_received_command: +KEDRXCFG:  0 4 5  0
[00:00:04.205,000] <dbg> hl78xx_dev: hl78xx_on_kedrxcfg: 664 6 [+KEDRXCFG: ] [0] 
[00:00:04.205,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 8
[00:00:04.205,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+KPATTERN="--EOF--Pattern--"
[00:00:04.249,000] <dbg> modem_chat: modem_chat_on_unknown_command_received: +KEDRXCFG: 0,5,5,,0,
[00:00:04.249,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.249,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 9
[00:00:04.249,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CCID
[00:00:04.249,000] <dbg> modem_chat: modem_chat_on_unknown_command_received: OK
[00:00:04.343,000] <dbg> modem_chat: modem_chat_log_received_command: +CCID:  89882390000304618211
[00:00:04.343,000] <dbg> hl78xx_dev: hl78xx_on_iccid: ICCID: +CCID:  89882390000304618211
[00:00:04.343,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 10
[00:00:04.343,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CMEE=1
[00:00:04.343,000] <dbg> modem_chat: modem_chat_on_unknown_command_received: OK
[00:00:04.378,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.378,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 11
[00:00:04.378,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+GNSSCONF=10,1
[00:00:04.424,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.424,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 12
[00:00:04.424,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+GNSSNMEA=0,1000,0,104F
[00:00:04.662,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.662,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 13
[00:00:04.662,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGSN
[00:00:04.697,000] <dbg> modem_chat: modem_chat_log_received_command:  351144440539717
[00:00:04.697,000] <dbg> hl78xx_dev: hl78xx_on_imei: IMEI:  351144440539717
[00:00:04.697,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 14
[00:00:04.697,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.697,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 15
[00:00:04.697,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGMM
[00:00:04.702,000] <dbg> modem_chat: modem_chat_log_received_command:  HL7812
[00:00:04.702,000] <dbg> hl78xx_dev: hl78xx_on_cgmm: cgmm:  HL7812
[00:00:04.702,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 16
[00:00:04.732,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.732,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 17
[00:00:04.732,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGMI
[00:00:04.768,000] <dbg> modem_chat: modem_chat_log_received_command:  Sierra Wireless
[00:00:04.768,000] <dbg> hl78xx_dev: hl78xx_on_cgmi: cgmi:  Sierra Wireless
[00:00:04.768,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 18
[00:00:04.768,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.768,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 19
[00:00:04.768,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGMR
[00:00:04.802,000] <dbg> modem_chat: modem_chat_log_received_command:  HL7812.5.7.3.0
[00:00:04.803,000] <dbg> hl78xx_dev: hl78xx_on_cgmr: cgmr:  HL7812.5.7.3.0
[00:00:04.803,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 20
[00:00:04.803,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.803,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 21
[00:00:04.803,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CIMI
[00:00:04.837,000] <dbg> modem_chat: modem_chat_log_received_command:  901288820006476
[00:00:04.837,000] <dbg> hl78xx_dev: hl78xx_on_imsi: IMSI:  901288820006476
[00:00:04.837,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 22
[00:00:04.837,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.837,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 23
[00:00:04.837,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+KSTATEV=1
[00:00:04.871,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.871,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 24
[00:00:04.871,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+KPSMEV=1
[00:00:04.906,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.906,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 25
[00:00:04.906,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+KCELLMEAS=1,35
[00:00:04.943,000] <dbg> modem_chat: modem_chat_log_received_command: +KCELLMEAS:  35
[00:00:04.943,000] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:04.943,000] <dbg> modem_chat: modem_chat_script_next: hl78xx_init_chat_script: step: 26
[00:00:04.943,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+KSIMDET?
[00:00:04.949,000] <dbg> modem_chat: modem_chat_on_unknown_command_received: +CME ERROR: 3

does this affect the operation?
How about adding some delay for your init script?

Honestly, that doesn’t sit right with me. Adding a random delay is not a real solution, it’s more of a workaround. If we start relying on delays like this, how can anyone guarantee that some other AT command won’t break in a future update? there’s no mention of it in any documentation.

we can’t keep patching over these issues with timeouts and hope nothing else fails later.

you can first test if the original issue has been solved
And then you can report this delay issue to distributor

@jyijyi

I did test it. But before testing it, had to deal with that unexpected issue which cause some delays

The good news with R6.1 is that PSM now works reliably, even across consecutive cycles. The current consumption consistently stays at the expected level of 1.64 µA.

then you can report the delay issue to distributor

I have just noticed that, actually, PSM is still not working for consecutive psm cycles.

Mistakenly I tested it with this test case configuration; that’s why i thought it is working: But changed back to the normal use case configuration, and it s not working, unfortunately.

I initially thought I might be doing something wrong, so I disconnected the host MCU and tested PSM behavior directly on the HL78 dev kit (53003247 Rev 2).

Unfortunately, the result remains the same. The modem only sends the +PSMEV URC during the first PSM cycle—no +PSMEV messages are observed for any subsequent entries.

Is this the expected behavior?

The only difference in this test setup is that, unlike previous tests where the modem was controlled by the host MCU and engaged in TCP communication, this time I simply powered up the dev kit, verified PSM, +KSLEEP, and +KSPSMEV configurations, asserted the wakeup pin low, and waited for the PSM URC.

Another odd behavior I noticed in this test case is that as soon as I release the wakeup assert push button, the modem immediately sends a +CEREG: 4 URC—but nothing else follows after that.

The current consumption then drops to around 20 µA, but it doesn’t improve any further beyond that point.

I also tested with removing USB-uart connection as well, but nothing changed on the current consumption.

finially, the modem went into hibernate mode after ~ 23 mins.

This is the moment when the modem entered PSM. It should have been in PSM Hibernate Dormant mode, with an expected current consumption of around 4 µA, but instead, it was drawing 23 µA:

Below is the reference current level that indicates the modem is correctly in PSM Hibernate Dormant mode. It took approximately 23 minutes to reach this expected low-power state:

So is the first cycle still ok after at+cfun=1,1?

the first cycle is always ok.

Remember to shut down edrx mode.
Does this relate to the timeout value in +ksleep?
Does this 23min relate to the network returm value in +cereg?

Have you reported this issue to distributor?

Yes, i double checked it, AT+CEDRXS? returns only ok. I guess it means it is disable.

The delay timer is set to 0. So doesnt that mean going to sleep straightaway?

I did a couple of hours ago. but havent got back anything yet

No, I dont think, so I had another test for this. In this case, the modem went into hibernate mode after 11mins.

No hibernate but sleeping with 20uA

+++++

Totally random behavior:

Now i have been waiting for +30 minutes, and it still consumes 24 uA.

@jyijyi

Look at this strange behavior:

edrx control at command I ran (mentioned in the previous message). I deasserted the wakeup pin to low after running the at cmds. and then started waiting for psm.

modem just send some urcs:

[2025-06-19 15:31:32.996] +KCELLMEAS: -95.0,118.0,,,8.0,1,1

[2025-06-19 15:31:59.041] at

[2025-06-19 15:32:00.265] OK

[2025-06-19 15:32:16.861] AT+CEDRXS?

[2025-06-19 15:32:16.875] OK

[2025-06-19 15:32:35.837] AT+CEDRXRDP

[2025-06-19 15:32:36.941] +CEDRXRDP: 0

[2025-06-19 15:32:36.941]

[2025-06-19 15:32:36.941] OK

[2025-06-19 15:33:46.361] AT+CEDRXS?=0

[2025-06-19 15:33:55.993] OK

[2025-06-19 15:33:59.543] AT+CEDRXS?

[2025-06-19 15:34:00.185] OK

[2025-06-19 15:34:17.317]

[2025-06-19 15:34:17.317] +CEREG: 4,,,,,,"00001111","00000111"

[2025-06-19 15:34:21.941]

[2025-06-19 15:34:21.941] +CEREG: 5,"2332","02E9F81F",9,,,"00001111","00000111"

[2025-06-19 15:34:21.957]

[2025-06-19 15:34:21.957] +KCELLMEAS: -93.0,120.0,,,7.0,1,1

[2025-06-19 15:34:22.197]

[2025-06-19 15:34:22.197] +CEREG: 4,,,,,,"00001111","00000111"

[2025-06-19 16:06:39.697]

[2025-06-19 16:06:39.698] +PSMEV: 0

[2025-06-19 16:06:42.425]

[2025-06-19 16:06:42.425] +CEREG: 5,"2332","02E9F81F",9,,,"00001111","00000111"

[2025-06-19 16:07:12.824]

[2025-06-19 16:07:12.824] +CEREG: 4,,,,,,"00001111","00000111"

[2025-06-19 16:07:12.824]

[2025-06-19 16:07:12.824] +PSMEV: 1

[2025-06-19 15:34:22.197] +CEREG: 4,,,,,,"00001111","00000111"
This is the exact time I released the wakeup pin.

30 mins later received this urc [2025-06-19 16:06:39.698] +PSMEV: 0 without asserting wakeup pin(I did nothing here)

there should be +KCELLMEAS: -93.0,120.0,7.0,1,1 after cereg: 5 urcs. but nothing reported.

here is psmev: 1 report, and now the modem is in hibernate mode with a current comsumption of 4 uA.

[2025-06-19 16:07:12.824] +CEREG: 4,,,,,,"00001111","00000111"
[2025-06-19 16:07:12.824] 
[2025-06-19 16:07:12.824] +PSMEV: 1

I have no idea whats going on here

could this be related to "+CEREG: 4,“00001111”,“00000111"” where Extended_Periodic-TAU has been set to 70 minutes?
What if you set to a longer value like 24 hours?

ok. I ll test with this at+cpsms=1,,,00111000,00001111

T3412 value: 24 hours (1.00 days)

T3324: 30 s

I just observed that

as soon as I set the new psm config

[2025-06-19 16:58:35.356] +CEREG: 5,"2332","02E9F81F",9,,,"00001111","00000111"

[2025-06-19 16:58:35.378]

[2025-06-19 16:58:35.378] +KCELLMEAS: -91.0,119.0,,,5.0,1,1

[2025-06-19 16:58:40.325] at+cpsms=1,,,00111000,00001111

[2025-06-19 16:58:42.519] OK

[2025-06-19 16:58:42.519]

[2025-06-19 16:58:42.519] +PSMEV: 0

[2025-06-19 16:58:43.655]

[2025-06-19 16:58:43.655] +CEREG: 5,"2332","02E9F81F",9,,,"00001111","00111000"

[2025-06-19 16:59:13.780]

[2025-06-19 16:59:13.780] +CEREG: 4,,,,,,"00001111","00111000"

[2025-06-19 16:59:13.780]

[2025-06-19 16:59:13.780] +PSMEV: 1

I received psmev: 0 and 1 properly, and now the modem is in hibernate mode with 5uA consumption.

So, it means resetting the CPSMS seems to have fixed the issue.

didn’t you say that was not related previously?

Yes, exactly. That time I didn’t observe this behavior. But that time test case was a little bit different than what I have now. In that case, I had tcp comms but now I dont have it.

@jyijyi OK I tested again with the same cpsms config: AT+CPSMS=1,“10101111”,“00001111” that I used at that time.

exactly same issue current consumption still stays around 25 uA even though I recevied psmev: 1 URCs


[2025-06-19 17:07:40.000] +CEREG: 4,,,,,,"00001111","00111000"

[2025-06-19 17:11:08.195]

[2025-06-19 17:11:08.195] +CEREG: 5,"2332","02E9F81F",9,,,"00001111","00111000"

[2025-06-19 17:11:08.211]

[2025-06-19 17:11:08.211] +KCELLMEAS: -91.0,119.0,,,5.0,1,1

[2025-06-19 17:11:10.016] AT+CPSMS=1,,,"10101111","00001111"

[2025-06-19 17:11:12.931] OK

[2025-06-19 17:11:12.931]

[2025-06-19 17:11:12.931] +PSMEV: 0

[2025-06-19 17:11:13.395]

[2025-06-19 17:11:13.395] +CEREG: 5,"2332","02E9F81F",9,,,"00001111","00000111"

[2025-06-19 17:11:43.523]

[2025-06-19 17:11:43.523] +CEREG: 4,,,,,,"00001111","00000111"

[2025-06-19 17:11:43.523]

[2025-06-19 17:11:43.523] +PSMEV: 1