Hi,
We are using HL7800 with PSM mode activated.
We can see the module reporting +CEREG: 4 when entering hibernation, which according to the manual is also the indication for out of coverage.
How to distinguish the different states?
Hi,
After enable PSM for device (CPSMS), during T3324 timer (CEREG: 1), module will work in active/idle mode. After T3324 timer, +CEREG: 4 is displayed, module will go to PSM mode. When T3412 is over, module will register to network (+CEREG: 1)
PSM mode can be Sleep or Lite Hibernate or Hibernate mode, it is due to KSLEEP configuration.
KSLEEP=x,0 -> module goes to Sleep mode after CEREG: 4
KSLEEP=x,1 -> module goes to Lite Hibernate mode after CEREG: 4
KSLEEP=x,2 -> module goes to Hibernate mode after CEREG: 4
I am well aware of the +CEREG: 4 due to hibernate.
But according to the AT command interface guide under AT+KNWSCANCFG:
Out of Coverage scenario applies when the module is attached to the network
and loses network connectivity or cell coverage. This is usually marked by
change of registration state to unknown (+CEREG: 4).
In addition to the above post I would say it is more about where you are in the process of operation where you are able to determine if it means out of coverage or entering PSM mode. If you are mobile then you should not be using PSM mode in the first place as it is here that you are most likely to go out of coverage.
Going into PSM when you are stationary is a process and you will know you are going through it to know when you receive the +CEREG: 4 response, going out of coverage at that exact moment would be unlucky and/or you would be in marginal coverage anyway.
Wouldn’t it just be easier to have two different indications for the two different states?
It somehow seems odd to have the application speculating whether or not the +CEREG: 4 means out of coverage or hibernate, something that the modem is well aware of, based on movement detection and timers?
All a given unit might see when it is moving is a changing cellular environment and that can happen when it is stationary as well. Generally when you go out of coverage you will see a lot of CREG/CEREG 0’s and 2’s before the unit eventually decides it cannot see anything and throws out 4.
How long between the OK and the +CEREG: 4 coming out?
So thats almost certainly the unit going into PSM after T3324 has timed out. You will have previously set at+cpsms=1 so that it enters this mode, if you set at+cpsms=0 then it will not go into power save mode and just remain on line.
There is 2.471s between +CEREG: 5 and +CEREG: 4, but the T3324 is 30s and there should also be an inactivity time before the active time starts, right?
That is odd. What are the states of your DTR and WAKE lines when this happens? Can you also send the below?
at+cgmr
at+cpsms?
at+cedrxs?
at+cops?
at+kbndcfg?
at+ksleep?
For sure it’s odd - and I think that this highlights the problem with using the same indication for the two different states.
Could this +CEREG: 4 mean anything other than out of coverage or entering hibernate?
This is version FW version 3.7 (the official) of the HL7800:
I was hoping to get the actual responses from the unit, not what you are sending to it but I think I have got what I wanted to see out of it.
Can you try with the newer 4.3.9 firmware? There have been a lot for changes and improvements in the last 6 months since 3.7.2.3 was generated.
I would say that there is nothing else that would trigger the response other than the unit going into PSM mode, it is highly unlikely it is losing coverage right at that point (I am assuming it is consistently repeatable?), I am also assuming that you have reasonably good coverage/RSSI? To be sure we would need a layer 3 log file which would need to be taken through the second UART, do you have access?
I’m still facing this issue with the FW 4.4.6:
This is an excerpt from my communication with the Hl7800. The application interfacing the modem is configured to send some pieces of data, then wait for either:
Incoming data on the socket
The modem enters hibernate
This output shows how our application falsely identifies the +CEREG: 4 as “the modem enters hibernate” when it in fact should be “out of coverage”.
How can I differentiate these two events WITHOUT relying on timing?