Hl7800 at+kcnxup fw 4.4.6

Hi,
I did the following test:
Configure PSM
Register the device in the network
Await +CEREG: 4
Disconnect the antenna from the modem
Wake the modem up by asserting the wake_up signal
Await KSUP
Configure GPRS connection
Then executing AT+KCNXUP

I still got +KCNX_IND: 1,1,0 which indicates that we are connected?
In our ISP:s service portal I can see that the modem is dead silent during the time of the test.
How can the modem report that the PDP connection status is “Connected” without an antenna and no communication with our ISP?
What does the at+kcnxup command actually do?
How come I get no indication (besides the absence of +CEREG: 5) that the UDP send has failed?

Full log attached below:

2020-09-08T13:01:46 - +CEREG: 4,“00000100”,“00111000”
2020-09-08T13:02:35 - +KSUP: 0
2020-09-08T13:02:36 - AT
2020-09-08T13:02:36 -
2020-09-08T13:02:36 - OK
2020-09-08T13:02:36 - AT+KCNXCFG=1,“GPRS”,""
2020-09-08T13:02:36 -
2020-09-08T13:02:36 - OK
2020-09-08T13:02:36 - AT+KCNXUP=1
2020-09-08T13:02:36 -
2020-09-08T13:02:36 - OK
2020-09-08T13:02:36 -
2020-09-08T13:02:36 - +KCNX_IND: 1,1,0
2020-09-08T13:02:52 - AT+KUDPCFG=1,0,53439,0,“172.30.0.128”,8899
2020-09-08T13:02:52 -
2020-09-08T13:02:52 - +KUDPCFG: 1
2020-09-08T13:02:52 -
2020-09-08T13:02:52 - OK
2020-09-08T13:02:53 -
2020-09-08T13:02:53 - +KUDP_IND: 1,1
2020-09-08T13:02:53 - AT+KUDPSND=1,51
2020-09-08T13:02:53 -
2020-09-08T13:02:53 - CONNECT
2020-09-08T13:02:53 -
2020-09-08T13:02:53 - OK
2020-09-08T13:03:03 - AT+KUDPSND=1,51
2020-09-08T13:03:03 -
2020-09-08T13:03:03 - CONNECT
2020-09-08T13:03:03 -
2020-09-08T13:03:03 - OK
2020-09-08T13:03:13 - AT+KNMPSD
2020-09-08T13:03:13 -
2020-09-08T13:03:13 - OK

Best regards
Martin

@mapart

So what I think is happening is that AT+KCNXUP brings the PDP context up but because you are coming out of the PSM as far as the unit is concerned there is already a context up regardless of the lack of signal and since you are using UDP with it being connection less there isn’t going to be a problem flagged until you hit a buffer limit because the data is not going.

Regards

Matt

Hi and thanks for your answer.
I have some follow up questions:

  1. So the AT+KCNXUP doesnt do anything when in PSM?
  2. If I understood you correctly, the UDP data should have be sent when the modem could register with the network?
  3. What exactly does “+KCNX_IND: 1,1,0” mean?
    When reading the at command interface guide I was under the impression that the modem was actually connected to the cellular network, but I must be mistaken.

Thanks in advance
Martin

@mapart

So answer.

  1. No it won’t do because as part of PSM the PDP context is preserved on the unit and the network
  2. So when you send the data to the unit it will go into a buffer, if the unit is attached and the data channel is open then yes it will get sent straight away (depending on the triggers set in kipopt), if it is blocked at a lower layer i.e. there is no RF signal, then its invisible to IP so it will sit there until the data times out (which is the TTL of the IP packet which is probably 64 seconds, half the max).
  3. Because you are in PSM it seriously complicates things, the 1,1,0 will indicate that it is ‘connected’ with the context up and an IP address assigned, that’s it, since there is no network activity it is basing the replies on previous states, as I say lack of RF signal is not necessarily something these commands will take into account as there are different commands which gives you this status.

The only way to really make sure is to properly trigger communications which means current consumption and negates the point of PSM. Unless you are stationary and really have to push it for battery life (like meters do), then PSM can easily cause problems which will immediately wipe out any improvements in performance where a simpler, power up, attach, send data, detach scheme is more deterministic. Thats not to say PSM is not worth it, if it works for you and your scenario then its fine but corner cases can be complex i.e. losing signal while it is asleep.

Regards

Matt

1 Like

Many many thanks for your answer. I will for sure investigate the the alternate approach you suggested.
What state do you suggest we keep the modem in between data transmissions?
CFUN=0/4? Power off the modem altogether?
Our application will send data over UDP rarely and need to have very low idle power consumption, but as I can see you have understood, we really need to know the status of the cellular connection when we attempt to send/receive data.
We also need these quick connection times that PSM gives us.

Many thanks
Martin

I just compared the current consumption between being in CFUN=0 compared to being in PSM hibernate and I noticed that the idle current consumption is lower when in PSM hibernate than CFUN=0 on our PCB.
Is there a logical explanation to this or is there a difference in the HL7800 IOs/pin configuration between the two states that I need to take into account?

Best regards
Martin

@mapart

So it depends on whether you are mobile or not and the time between sending data. Assuming you are going to connect to the same cell then there are signalling savings to be made with PSM which add up over time depending on the number of sessions. Its a difficult calculation to make, for the normal use case vs the corner cases vs other anomalies (i.e. network or unit or both losing the context, which should not happen but probably will at some point, etc).

If you aren’t going to use PSM or eDRX then I would power the unit off completely if battery power is critical, the boot time of the unit is pretty quick. Where it does cost you is the attach but this is also here where you get the indication that you are physically connected which is what you are after. The unit will go for the last used cell so it won’t spend time scanning around, assuming you are stationary, but you cannot use PSM when you are mobile anyway (it needs to scan/attach/restart the context if in a different area).

To power up from nothing, attach to the last cell, send some data and shut down again will probably take 15 seconds depending on the network response times.

Regards

Matt