EM7421: GPS: NMEA output does not work

ati3
Manufacturer: Sierra Wireless, Incorporated
Model: EM7421
Revision: SWI9X50C_01.14.03.00 b06bd3 jenkins 2020/09/23 10:53:35
IMEI: 356281110169188
IMEI SV: 13
FSN: 8G1165749502B1
+GCAP: +CGSM

Sending following commands:
AT!CUSTOM=“GPSENABLE”,1
AT!CUSTOM=“GPSSEL”,0
AT!CUSTOM=“GPSLPM”,0
AT!GPSNMEACONFIG=1,1
AT+WANT=1
AT!GPSNMEASENTENCE=1F (GPS sentences only)

I’m not seeing NMEA sentences coming out of ttyUSB1 interface (115200 8N1)

Additionally sending $GPS_START on the GPS tty interface also does not start NMEA sentences.

The above sequence works flawlessly on EM7565.
The AT documentation for EM7421 GPS is identical as for the EM7565 model.

So it looks like it’s simply broken in firmware …
There is also no newer firmware available for EM7421 currently …

Help?

I don’t see problem with my EM7421, I can see the NMEA frame in the NMEA port.


at!gpsfix=1,255,1000
OK
at!custom?
!CUSTOM:
             GPSENABLE          0x01
             GPSLPM             0x01
             IPV6ENABLE         0x01
             UIM2ENABLE         0x01
             SIMLPM             0x01
             USBSERIALENABLE    0x01
             SINGLEAPNSWITCH    0x01
             QXDMLOGENABLE      0x01


OK
ati3
Manufacturer: Sierra Wireless, Incorporated
Model: EM7421
Revision: SWI9X50C_01.14.03.00 b06bd3 jenkins 2020/09/23 10:53:35
IMEI: xxxxxxxxxxxxxx
IMEI SV: 13
FSN: xxxxxxxxxxxxxx
+GCAP: +CGSM


OK

Thanks,

Can you share a print of the nmea output?

hmz …

I’m missing the GPSLPM ?
Edit: Got it now, looks like the bit is not printed if not set

at!custom?
!CUSTOM: 
             GPSENABLE		0x01
             IPV6ENABLE		0x01
             UIM2ENABLE		0x01
             SIMLPM		0x01
             USBSERIALENABLE	0x01
             SINGLEAPNSWITCH	0x01
             QXDMLOGENABLE	0x01


OK
ati3
Manufacturer: Sierra Wireless, Incorporated
Model: EM7421
Revision: SWI9X50C_01.14.03.00 b06bd3 jenkins 2020/09/23 10:53:35
IMEI: 356281110169188
IMEI SV: 13
FSN: 8G1165749502B1
+GCAP: +CGSM

at!hwid?
Revision: 1.0

Here it is:


$GPGGA,,,,,,0,,,,,,,,*66
$GPVTG,,T,,M,,N,,K,N*2C
$GPRMC,,V,,,,,,,,,,N*53
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGGA,,,,,,0,,,,,,,,*66
$GPVTG,,T,,M,,N,,K,N*2C
$GPRMC,,V,,,,,,,,,,N*53
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGGA,,,,,,0,,,,,,,,*66
$GPVTG,,T,,M,,N,,K,N*2C
$GPRMC,,V,,,,,,,,,,N*53
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGGA,,,,,,0,,,,,,,,*66
$GPVTG,,T,,M,,N,,K,N*2C
$GPRMC,,V,,,,,,,,,,N*53
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGGA,,,,,,0,,,,,,,,*66
$GPVTG,,T,,M,,N,,K,N*2C
$GPRMC,,V,,,,,,,,,,N*53
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGGA,,,,,,0,,,,,,,,*66
$GPVTG,,T,,M,,N,,K,N*2C
$GPRMC,,V,,,,,,,,,,N*53
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGGA,,,,,,0,,,,,,,,*66

Hi @koenvandeputte,
are you using the qcserial driver from the mainline Linux kernel? If yes, do the uname -r kernel versions used for the EM7565 (where it works) and the EM7421 differ?

Regards,
Reinhard

Hi @rspmn

Thanks for taking the time to comment.

Yes, they are the same, and I’m using upstream qcserial.
I’m running OpenWRT master (5.15.33) on a Mikrotik RB922 where i’m able to quickly switch modems.

So booting the EM7565 works (having NMEA output on ttyUSB1)
Where for EM7421 there simply is no output.

I have a custom C binary which sends all required AT commands (and checks responses for each of them)

@jyijyi
Is there any knowledge of a specific HW revision required?

It could be bad luck and a faulty modem ofc too … but it’s a bit annoying to test this as it would require buying yet another one …

Hi @koenvandeputte,
then I have no idea why the NMEA output does not work on the EM7421, sorry.

My assumption was that the EM7421 (which unlike older EM74xx devices is also based on a Qualcomm MDM925x chipset like the EM7565) was using an older kernel where the sendsetup = true from upstream commit kernel/git/stable/linux.git - Linux kernel stable tree would not be present.

Regards,
Reinhard

It seems it uses the same composition as the EM7565 iso EM74XX:

[ Test ADB TDtech | node-6 ] lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux 5.15.41 ehci_hcd EHCI Host Controller
Bus 002 Device 002: ID 1199:9091 Sierra Wireless, Incorporated Sierra Wireless EM7421 Qualcomm® Snapdragon™ X16 LTE-A
Bus 002 Device 001: ID 1d6b:0002 Linux 5.15.41 ehci_hcd EHCI Host Controller

qcserial.c:

{DEVICE_SWI(0x1199, 0x9090)},   /* Sierra Wireless EM7565 QDL */
{DEVICE_SWI(0x1199, 0x9091)},   /* Sierra Wireless EM7565 */
{DEVICE_SWI(0x1199, 0x90d2)},   /* Sierra Wireless EM9191 QDL */
{DEVICE_SWI(0x1199, 0xc080)},   /* Sierra Wireless EM7590 QDL */
{DEVICE_SWI(0x1199, 0xc081)},   /* Sierra Wireless EM7590 */

@dl5162
Any idea?

Is this using upstream qcserial or gobi?

same hardware id as yours:


at!entercnd="A710"
OK
at!hwid?
Revision: 1.0


OK

BTW, I used windows platform to test

We’ll order a new sample and return this one for RMA.

Nope, sorry. I have no experience with the EM74x1 modules, but IIUC they should be pretty much the same as the EM7565 wrt chipset and firmware/software features. So what you do on the EM7565 should definitely work on the EM7421 too.

My thoughts exactly.

The RMA has been requested already.
Let’s try again with a new sample in a few days.

I’ll drop a post if it worked or not later on.

Thanks

@koenvandeputte

You might also want to look at the USB configuration with the below commands as the end point might not be enabled.

at!entercnd="A710"
at!usbcomp?

Regards

Matt

Hi all,

Soo … I ordered 2 new modules and the results are identical.

But there is a very interesting catch:

  • Opening the NMEA port on windows works! (Putty)
  • Opening the NMEA port on Linux does not work (5.15.49 - OpenWRT)

Using an EM7565:

  • Opening the NMEA port on windows works! (Putty)
  • Opening the NMEA port on Linux works! (5.15.49 - OpenWRT)

On linux, the QCSERIAL driver is used.

Any idea?

@jyijyi
Please see above post

Have you tried “AT!GPSAUTOSTART=1”?
how about using the following?

  1. Get the CID

owner@ubuntu:~/Downloads$ sudo qmicli -p --device=/dev/cdc-wdm0 --loc-start --client-no-release-cid --loc-session-id=53

[/dev/cdc-wdm0] Successfully started location tracking (session id 53)
[/dev/cdc-wdm0] Client ID not released:
Service: ‘loc’
CID: ‘4’

  1. Put the CID in the following command

owner@ubuntu:~/Downloads$ sudo qmicli -p --device=/dev/cdc-wdm0 --loc-follow-nmea --client-cid=4 --client-no-release-cid --loc-session-id=53
$GPGSV,1,1,03,30,26,203,13,07,10,178,08,163
$GQGSV,1,1,02,02,56,143,24,04,28,1
58
$GBGSV,2,1,08,01,47,122,02,45,234,03,63,188,04,33,108,172
$GBGSV,2,2,08,22,30,125,24,44,286,25,26,50,209,1
4C
$GAGSV,1,1,01,21,27,774
$GNDTM,P90,N,W,W84
4F
$GPGGA,034719.00,0,*40
$GBGGA,034719.00,0,*52
$GNGGA,034719.00,0,*5E

Soo. I just found how to fix it :slight_smile:

EM7565:
After configuration using AT, sending following on the NMEA port starts it up:
$GPS_START\r

EM7421:
After configuration using AT, sending following on the NMEA port starts it up:
$GPS_START\r\n

So it seems that EM7421 actually requires the Newline char at the end while EM7565 does not.