GNSS start timing issue on HL78xx (LTE still active?)

Hi,

I’m having trouble with the GNSS setup on an HL7812.5.7.4.0. Right after boot, if I put the modem into airplane mode using AT+CFUN=4 and then immediately try to start GNSS with AT+GNSSSTART=0, it fails. I get the error/URC that indicates LTE is still active (+GNSSEV: 1,0).

See the log from my tesT:

[00:00:05.109,000] : +WDSI: 0
[00:00:05.218,000] : +KSUP:  0
[00:00:05.256,000] : +KSRAT:  0
[00:00:05.256,000] : KSRAT: +KSRAT:  0
[00:00:05.256,000] : hl78xx_post_restart_chat_script: step: 2
[00:00:05.256,000] : sending: AT+KSTATEV=1
[00:00:05.256,000] : OK
[00:00:05.257,000]  HL78XX modem rat mode changed: 0
[00:00:05.291,000] : OK
[00:00:05.291,000] : sending: AT+CFUN=4,0
[00:00:05.327,000] : OK
[00:00:05.327,000] : sending: AT+CFUN?
[00:00:05.361,000] : +CFUN:  4
[00:00:05.361,000] : OK
[00:00:05.361,000] : dynamic_script: step: 0
[00:00:05.361,000] : sending: AT+GNSSNMEA=0,1000,0,4d
[00:00:05.418,000] : OK
[00:00:05.418,000] : sending: AT+GNSSNMEA?
[00:00:05.458,000] : +GNSSNMEA:  0 1000 0 4D
[00:00:05.458,000] : dynamic_script: complete
[00:00:05.458,000] : OK
[00:00:05.558,000]  : sending: AT%STATUS="RRC"
[00:00:05.565,000]  modem_chat_log_received_command: RRC: UNKNOWN
[00:00:05.565,000]  dynamic_script: aborted
[00:00:05.560,000]  : sending: AT+GNSSSTART=0
[00:00:05.605,000]  modem_chat_on_unknown_command_received: OK
[00:00:05.605,000]  modem_chat_log_received_command: +GNSSEV:  0 1
[00:00:05.605,000]  evnt_listener: GNSS engine initialized
[00:00:05.605,000]  modem_chat_log_received_command: +GNSSEV:  1 0

If I add a delay before sending the GNSS start command, it works fine, so it looks like LTE just needs some time to settle into idle.

The documentation says to check that LTE is idle before starting GNSS using:

AT%STATUS="RRC"

But when I try that, I just get:

RRC: UNKNOWN
OK

So my questions are:

  • Why does AT%STATUS="RRC" return an error (UNKNOWN) on the HL78xx? (It is not in the at command reference guider28.pdf but it is the AirPrime HL78xx GNSS Behavior 2174294-1)
  • Is there another reliable way to confirm LTE is idle before starting GNSS?
  • Is this delay-before-GNSS-start approach expected/normal for HL78xx? If yes, how long is the max waitiging time before starting the gnss search?

Thanks for any tips!

are you saying this app note?
https://source.sierrawireless.com/resources/airprime/application_notes_and_code_samples/airprime_hl78xx_gnss_behavior/#sthash.4JZtKypy.dpbs

I saw it is for HL780x only…

Actually i don’t quite see such issue:

[2026-01-28 01:42:53.139] at+cfun?
[2026-01-28 01:42:54.646] +CFUN: 0
[2026-01-28 01:42:54.646] 
[2026-01-28 01:42:54.646] OK
[2026-01-28 01:42:55.460] at+cfun=1
[2026-01-28 01:42:58.039] OK
[2026-01-28 01:42:58.039] 
[2026-01-28 01:42:58.039] +CEREG: 2
[2026-01-28 01:42:58.039] 
[2026-01-28 01:42:58.039] +CREG: 2
[2026-01-28 01:43:02.443] 
[2026-01-28 01:43:02.443] +CEREG: 0
[2026-01-28 01:43:02.443] 
[2026-01-28 01:43:02.443] +CREG: 0
[2026-01-28 01:43:02.460] 
[2026-01-28 01:43:02.460] +CEREG: 2
[2026-01-28 01:43:02.460] 
[2026-01-28 01:43:02.460] +CREG: 2
[2026-01-28 01:43:03.732] 
[2026-01-28 01:43:03.732] +CEREG: 1,"C672","0188A9DF",9
[2026-01-28 01:43:03.732] 
[2026-01-28 01:43:03.732] +CREG: 1,"C672","0188A9DF",9
[2026-01-28 01:43:05.763] at+cfun=4
[2026-01-28 01:43:05.971] OK
[2026-01-28 01:43:05.971] 
[2026-01-28 01:43:05.971] +CEREG: 0
[2026-01-28 01:43:05.972] 
[2026-01-28 01:43:05.972] +CREG: 0
[2026-01-28 01:43:05.972] 
[2026-01-28 01:43:05.972] +CEREG: 0
[2026-01-28 01:43:05.972] 
[2026-01-28 01:43:05.972] +CREG: 0
[2026-01-28 01:43:06.581] at+gnssnmea=0,1000,0,4F
[2026-01-28 01:43:06.819] OK
[2026-01-28 01:43:07.396] AT+gnssstart=0
[2026-01-28 01:43:07.396] OK
[2026-01-28 01:43:07.412] 
[2026-01-28 01:43:07.412] +GNSSEV: 0,1
[2026-01-28 01:43:07.700] 
[2026-01-28 01:43:07.700] +GNSSEV: 1,1
[2026-01-28 01:43:10.425] 
[2026-01-28 01:43:10.425] +GNSSEV: 3,0
[2026-01-28 01:44:02.005] ati3
[2026-01-28 01:44:02.439] HL7812.5.7.3.0
[2026-01-28 01:44:02.439] 
[2026-01-28 01:44:02.439] OK

Yes, that’s the document I’m referring to. I didnt see anywhere that cmd or the document is specific to the HL780x only. It is not clear anyway.

You’re not seeing the same issue because you start GNSS quite a bit later after KSUP. I don’t have this problem either if I start GNSS after the LTE search or about ~5 seconds after bootup. From your log, it’s not clear how long after receiving the +KSUP: 0 URC GNSS was started.

But again I dont like putting some random delays into my code. Thats why I am looking for a reliable way/time to run GNSSStart.

btw, just correction: my modem + fw version: HL7812.5.7.4.0

Maybe you can make a 1000 times of your testing to find out the average time for the delay

:smiley: This is crap. I didnt see those little tags; it wouldnt be too difficult to put a title on something that starts with HL780X.
Then it means there is no gnss document we can refer to for hl781x series?

here is the list of application note of HL7812:
https://source.sierrawireless.com/resources//#tags=HL7812|Application+Notes+%26+Code+Samples

BTW, maybe you can make a 1000 times of your testing to find out the average time for the delay

What do you mean? I didnt get it

I tested AT%STATUS=“RRC” on my HL7800.4.7.2 module. I don’t think this works for it. It always returns “IDLE”, doesn’t make sense.

> AT+KUDPCFG=1,0,,0,,,0,0

+KUDPCFG: 1

OK

+KCNX_IND: 1,1,0

+KUDP_IND: 1,1
> AT%STATUS="RRC"

RRC: IDLE

OK
> at+kcellmeas=0

+KCELLMEAS: -114.0,136.0,21.0,23.0,-8.0

OK
> at+cereg?

+CEREG: 5,5,"C73A","02E9F833",7

OK

Previously you said that you want to find out the correct delay time, so you can do a test of 1000 loops to record the time needed for successful gnss start +GNSSEV: 1,1 after module changed to flight mode, then you will get a average delay time, then you can use this value as your delay time

For example, in my log above, I used 2 seconds to see +GNSSEV: 1,1 after AT+CFUN=4. Then the 1st record of this 1000 loops is 2 seconds. Of course for the rest 999 loops, you can test some delay smaller than 2 seconds.

Then can you do GNSSSTART after seeing this “IDLE”?