HL7800 GNSS NMEA Masks

We are writing an application to grab a stationary location and send it out through cellular.
The location data is nicely within the CGA NMEA string however the HL7800 insists on spitting out all the strings.

We try to issue the command:
AT+gnssnmea=4,1000,0,1

But we receive the error: +CME Error : 60

is there anyway to make the mask work so only the CGA string appears?

Also, as I think of it, is there a AT string to do a reboot of the HL78?
Thanks.

Hi Rique,

My workaround is as below: ie. AT+GNSSNMEA=04,1000,0,1 and then AT+GNSSNMEA=04.

You can try AT+CFUN=1,1 to do a reset of HL7800.

+CEREG: 2
+KSUP: 0
+SIM: 1
+CEREG: 0
+CEREG: 2
+CEREG: 1,“7821”,“077F5F53”,9
ATI3
BHL7800.3.6.2.0.20190827
OK
at+cfun=0
OK
+CEREG: 0
+CEREG: 0
AT+GNSSNMEA?
+GNSSNMEA: 0,1000,0,6D
OK
AT+GNSSNMEA=04,1000,0,1
CONNECT
+++
OK
at+gnssstart=0
OK
+GNSSEV: 0,1
+GNSSEV: 1,1
+GNSSEV: 3,0
AT+GNSSNMEA=04
CONNECT
$GPGGA,000005.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*55
$GPGGA,000006.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*56
$GPGGA,000007.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*57
$GPGGA,000008.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*58
$GPGGA,000009.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*59
$GPGGA,000010.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*51
+++
OK
AT+GNSSNMEA=04,1000,0,1
+CME ERROR: 60
AT+GNSSNMEA=04
CONNECT
$GPGGA,083903.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*51
$GPGGA,083904.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*56
$GPGGA,083905.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*57
$GPGGA,083906.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*54
$GPGGA,083907.00,2232.4054,N,11357.0011,E,0,00,1.8,261.4,M,0.0,M,*55
+++
OK
+GNSSEV: 3,3

I tied exactly your commands but didn’t get the same results. It looks like you a running a newer version of the firmware than I am.

The latest I have is.
3.4.5.1.20190617

We need to get version
3.6.2.0.20190827

Are you able to send that?
My support rep is out of the office.

Hi Rique, I could get the exact same result with V3.4.5.1. Please share with your full AT logs.

Hi we were able to get it working, using your steps.

HOWEVER,

We can only ever get into a GNSS session ONCE.
When we issue an AT+GNSSSTOP, then later retry to get into the GNSS session with a AT+GNSSSTART=0, we will never get a satellite lock again until we reset the entire module with AT+CFUN=1,1

Here is our output:

at+cfun=1,1
OK
at
OK
at+cfun=0
OK
at+gnssnmea=04,1000,0,8
CONNECT

OK
at+gnssstart=0
OK

+GNSSEV: 0,1

+GNSSEV: 1,1

+GNSSEV: 3,0
at+gnssloc?
+GNSSLOC:
FIX NOT AVAILABLE

OK

+GNSSEV: 3,3
at+gnssnmea=04
CONNECT
$GPRMC,130407.00,A,4323.9381,N,08028.3758,W,0.7,325.3,270919,A,5.83e-0231*
$GPRMC,130408.00,A,4323.9364,N,08028.3768,W,0.0,325.3,270919,A,6.77e-0239*
$GPRMC,130409.00,A,4323.9344,N,08028.3777,W,0.6,353.6,270919,A,8.50e-023D*
$GPRMC,130410.00,A,4323.9372,N,08028.3769,W,0.7,8.8,270919,A,1.87e-0834*
$GPRMC,130411.00,A,4323.9388,N,08028.3763,W,0.7,20.3,270919,A,-2.99e-082A*
$GPRMC,130412.00,A,4323.9402,N,08028.3757,W,0.7,28.5,270919,A,-3.89e-0825*
$GPRMC,130413.00,A,4323.9413,N,08028.3752,W,0.7,34.9,270919,A,-2.83e-082B*

OK
at+gnssstop
OK

+GNSSEV: 2,1

+GNSSEV: 3,0
at+cfun=1
OK
at+cfun=0
OK
at+gnssstart=0
OK

+GNSSEV: 1,0

—> It will stay here forever.

If we issue an AT+gnssloc?, we get the following output:
+GNSSLOC:
Latitude:
Longitude:
GpsTime:
FixType: 3D
HEPE:
Altitude:
AltUnc:
Direction:
HorSpeed:
VerSpeed:

The only way we can get a second GPS reading is if we reset the module with AT+CFUN=1,1
or power cycle the module

We ar running the following firmware:
ati9
HL7800.3.6.2
BHL78xx.3.6.2.0.RK_02_01_01_00_70.20190827
2019/08/27 17:21:56
IMEI-SV: 3546160901028307
Legato RTOS: 18.09.2.ALT1250.rc19 2019/07/29 13:51:59
atSwi: 20.00
UBOOT: 01.03
Apps: RKAPP_02_01_01_00_62__8e4ca7ca99abca5bcc37ad7c3cc2939c6d2e43d9
MAC: ALT1250_02_01_01_00_63_FW
PHY: 12.50.215753
PMP: 215780
SBUB: 0
SBFW: 0
RPuK:
FPuK:
RBUB: 0
RBFW: 0

For the later retry of at+gnssstart=0, you need to remove the at+cfun=1.

Okay what you suggest does work, but… what the purpose of AT+CFUN=1 is to switch back to cellular operation and send the GPS information we just received to a server.

We are just trying to simulate the scenario where we:

  1. acquire a GPS location.
  2. switch to cellular and send it.
  3. go to sleep
  4. Loop back to 1.

Our understanding is that in order to use the cellular operation we need to enable everything of the module with AT+CFUN=1

replacing at+cfun=0 with at+cfun=0,0 seems to fix things.

1 Like