EM7455 GNSS: GLONASS and Galileo support

Dear fellow Sierra users,

I’m fiddling with the EM7455’s GNSS reception capability and NMEA output, to see what it’s capable of.
And, I’d like to focus this topic on support of multiple GNSS systems.

Hereby I’d like to share what I’ve found out so far, and ask the polite audience for comments / corrections / additions :slight_smile:

At first I was intrigued by notes in the Product Technical Specification, that the module supports GLONASS and Galileo, apart from the obvious GPS. Actually even BeiDou is mentioned in some paragraphs, but I have no material evidence that BeiDou really is supported…

Out of the box, the modules coming my way happily produce GPS-flavoured NMEA. GPS only.

The key command to unlatch support for other systems is AT!GPSNMEASENTENCE . A few examples from my log:

AT!GPSNMEASENTENCE?
!GPSNMEASENTENCE: 0x3F

OK
AT!GPSNMEASENTENCE=?
!GPSNMEASENTENCE: (00-FFFF)

OK

AT!GPSNMEASENTENCE=7F
OK

AT!GPSNMEASENTENCE?
!GPSNMEASENTENCE: 0x7F

OK

AT!GPSNMEASENTENCE=7FFF
OK

The value is a bitmask:

It is a bit of a mystery to me, whether this command enables/disables the operation of the “solution engine” (receiver) for the individual systems, or if they keep running all the time. I haven’t found a separate command that would allow me to enable or disable a particular flavour of the engine under the hood.

Actually, there’s the AT!GPSSATINFO? command, which shows a summary of SV’s in view.

Satellites in view:  18 (2023 02 17 4 17:11:51)
* SV:  2  ELEV: 30  AZI:   57  SNR: 44
* SV:  5  ELEV: 12  AZI:   33  SNR: 37
* SV: 10  ELEV: 11  AZI:  168  SNR: 43
* SV: 16  ELEV:  0  AZI:    0  SNR: 47
* SV: 18  ELEV: 72  AZI:   75  SNR: 47
* SV: 23  ELEV: 33  AZI:  142  SNR: 46
* SV: 26  ELEV: 61  AZI:  206  SNR: 48
* SV: 27  ELEV: 32  AZI:  282  SNR: 46
* SV: 29  ELEV: 19  AZI:   91  SNR: 41
* SV: 74  ELEV: 40  AZI:  199  SNR: 36
* SV:255  ELEV:  0  AZI:    0  SNR: 42
* SV: 73  ELEV:  2  AZI:  174  SNR: 39
* SV: 76  ELEV:  9  AZI:  334  SNR: 29
* SV: 75  ELEV: 53  AZI:  292  SNR: 43
* SV: 69  ELEV: 12  AZI:  105  SNR: 33
* SV: 84  ELEV: 66  AZI:   22  SNR: 29
* SV: 85  ELEV: 37  AZI:  260  SNR: 43
* SV: 68  ELEV: 23  AZI:   56  SNR: 37

Quoting the AT command guide:

<SV n> (Satellite vehicle number for the nth satellite in the list)

  • Valid ranges:
    • 1–32 (GPS)
    • 65–96 (GLONASS)
    • 201–237 (Beidou)
    • 301–336 (Galileo)

From that listing, it’s clear that at least GPS and GLONASS are received and “solved” continuously, regardless of what sententences are permitted. I am slightly perplexed by an SV #255, which is out of the ranges given for AT!GPSSATINFO. Reported with AZ=0/EL=0 but SNR 42 dB :slight_smile:

Based on my practical tests, looking at the NMEA output:

  • GPS works fairly well, I see between 7 and 10 satellites all the time
  • GLONASS (the GL talker) appears to work too - the number of satellites is lower for GLONASS compared to GPS, but it does work
  • Galileo reception (the GA talker), surprisingly to me, shows only basic signs of life. GSV messages for the the GA talker only appear sporadically.
  • BeiDou is non-existent. The documentation of AT!GPSNMEASENTENCE does not lie. (The Product Tech Spec probably does.)

Motivated by the sketchy performance of the Galileo receiver, I have tried:

  1. increasing the nominal baud rate of the virtual COM port. Unsurprisingly to me, this did not have any effect. (Curiously, increasing the baud did have an effect on a uBlox 8-series receiver, in a similar situation - apparently the config option is related to the physical UART, and although I accessed the module via USB, increasing the unused UART’s baud rate did get rid of NMEA buffer overflows)

  2. removing all sentences except those related to Galileo, i.e. GPSNMEASENTENCE=5E . After that, I did end up with only galileo-flavoured GSV messages (GAGSV) on the screen, but still they only appeared sporadically, not every second. Or rather, hardly ever. I have comparison to uBlox receivers - their 8th generation also has some quirks (?) in Galileo support, but overall it’s already working.

It’s early 2023, Galileo has about 24 satellites in orbit. The Galileo satellite segment is no longer a joke. Apparently, receivers introduced before the recent(ish ~2017) major Galileo launch activity may have trouble coping, now that a plausible number of satellites are in view :->

Enough for today, comments welcome :slight_smile:

Hi @frr,

From what you describe, I understand you are concerned that BeiDou is mentioned in PTS in some paragraph but in GNSS command detail does not show any material evidence that BeiDou really is supported, is it right?

Also, could you please tell me what firmware you are using? If not the latest, please download and install the latest FW at the following link: https://source.sierrawireless.com/resources/airprime/minicard/74xx/em_mc74xx-approved-fw-packages/#sthash.7q4aFID8.dpbs

Thanks,

@jerdung thanks for your polite response :slight_smile:

This “request” actually evolved while I was writing.

Initially, I could only see GPS satellites - which was in contrast to the docs, saying that all four GNSS should be supported. I have comparison to uBlox receivers that do indeed show a number of Galileo satellites (though not all of them “good”) and even some Beidou.

Then I found out about AT!GPSNMEASENTENCE - and I started getting GLONASS satellites too. But Galileo satellites are just a sporadic appearance, and I don’t recall receiving any BeiDou. Note that satellite No. 255 is outside the nominal range for both BeiDou (201–237) and for Galileo (301–336).

I’m running the following firmware:

ati3
Manufacturer: Sierra Wireless, Incorporated
Model: EM7455
Revision: SWI9X30C_02.33.03.00 r8209 CARMD-EV-FRMWR2 2019/08/28 20:59:30
MEID: 35982032045226
IMEI: 359820320452269
IMEI SV: 20
FSN: LF143220200210
+GCAP: +CGSM

Looking into the list at source.sierrawireless.com, I can see something called 2.38. This is possibly quite new, I’m gonna try it… thanks for the tip :slight_smile:

So I’ve upgraded to 2.38.

I can see that the GNSS engine now reports many more satellites, but only through the AT command intereface:

AT!GPSSATINFO?
Satellites in view:  35 (2023 02 20 0 14:07:48)
* SV:  2  ELEV: 49  AZI:  154  SNR: 46
* SV:  5  ELEV:  6  AZI:  104  SNR: 37
* SV: 11  ELEV: 25  AZI:   46  SNR: 43
* SV: 18  ELEV: 13  AZI:  184  SNR: 43
* SV: 20  ELEV: 16  AZI:   74  SNR: 37
* SV: 25  ELEV: 57  AZI:  111  SNR: 45
* SV: 26  ELEV: 19  AZI:  292  SNR: 45
* SV: 28  ELEV: 54  AZI:  258  SNR: 47
* SV: 29  ELEV: 84  AZI:  230  SNR: 48
* SV: 31  ELEV: 52  AZI:  275  SNR: 48
* SV: 39  ELEV: 14  AZI:  122  SNR: 37
* SV: 40  ELEV: 19  AZI:  130  SNR: 32
* SV: 49  ELEV: 30  AZI:  191  SNR: 45
* SV:255  ELEV:  0  AZI:    0  SNR: 39
* SV: 86  ELEV: 67  AZI:  181  SNR: 40
* SV: 77  ELEV: 28  AZI:  316  SNR: 31
* SV: 76  ELEV: 79  AZI:  322  SNR: 41
* SV: 75  ELEV: 37  AZI:  133  SNR: 41
* SV: 87  ELEV: 11  AZI:  206  SNR: 34
* SV: 85  ELEV: 56  AZI:   43  SNR: 41
* SV: 67  ELEV:  4  AZI:  299  SNR: 20
* SV: 68  ELEV: 11  AZI:  345  SNR: 30
* SV:208  ELEV: 36  AZI:   64  SNR: 45
* SV:213  ELEV: 36  AZI:   77  SNR: 46
* SV:226  ELEV: 32  AZI:  305  SNR: 53
* SV:229  ELEV: 73  AZI:  178  SNR: 53
* SV:230  ELEV: 39  AZI:   56  SNR: 51
* SV:302  ELEV: 25  AZI:  113  SNR: 41
* SV:307  ELEV:  0  AZI:  236  SNR: 42
* SV:315  ELEV: 24  AZI:  182  SNR: 44
* SV:319  ELEV:  9  AZI:  326  SNR: 27
* SV:327  ELEV: 40  AZI:  295  SNR: 48
* SV:330  ELEV: 79  AZI:  109  SNR: 49
* SV:334  ELEV: 58  AZI:  123  SNR: 48
* SV:336  ELEV: 32  AZI:   47  SNR: 44

That alone looks pretty rad! :slight_smile:
We have all four systems, with plausible SV counts.
That SV #255 is still curious to me: a pretty good signal level, but no azimuth/elevation, not belonging to any range… could this be some SBAS (EGNOS) signal?

Looking at the NMEA output:

  • the GPS alone has possibly improved, I can see more satellites reported “good” (not sure, might be a random deviation, the numbers do fluctuate throughout the day)
  • I’ve tried fiddling with AT!GPSNMEASENTENCE. If I set “all ones” i.e. =7FFF, then apparently, there’s too much data from all the systems, and some sentences “do not squeeze in the serial line” - or some buffer in the firmware, or front-end MCU horsepower, or what. In the stream of NMEA sentences, I can see some Glonass, almost no Galileo, no BeiDou at all. Well at least the basic GPS works. Even if I leave just AT!GPSNMEASENTENCE=5E00, I can only see some GAGSV and that’s all.
  • traditionally, a GPS receiver had a UART and a relatively slow baud rate. So did the GSM modems. I could imagine that transporting a full set of NMEA sentences for four or five talkers would require some minimal baud rate in the UART to even make it. This actually used to be the advice: increase the baud rate, up from the default 4800bps or whatever it was.
    This EM7455 does not seem to have a UART. It only has a native USB gadget port. The USB serial is emulated, there shouldn’t be a baud-constrained physical UART inside. So I’m wondering what could be the limiting factor to the NMEA output. Looking at the NMEA output of the EM7455 in Putty, it seems that the NMEA sentences are received “sentence after sentence” (if not character after character). The screen is visibly “scrolling”. Which is funny. I’d assume that the whole set of NMEA sentences should fit in a single URB = arrive en bloc and get displayed that way.

I also have reservations about the syntax of the AT!GPSNMEASENTENCE command.

Both the NMEA front end in the EM7455 firmware, and the documentation, deserve some crapectomy.

Note that the NMEA talkers are standardized as follows:
$GP = GPS
$GL = GLONASS
$GA = Galileo
$GB or $BD = BeiDou
$GN = a combination of multiple GNSS systems

So, yes I would expect to see the $GN talker in the output, but not in the sense of GLONASS. Note that the GLGSV sentence has the correct talker, but GNGSA and GNGNS have the talker wrong (if they are indeed related to GLONASS). In that case, the “aggregated” GN talker is absent altogether.

Still, looking at the output of AT!GPSSATINFO? , it seems to me that the engine alone is pretty darn good, for a mere “bonus addition” in an LTE WWAN modem…

One last note: looking at AT!GPSCLRASSIST - is there a way to obtain some debug output on what is actually in those datasets? At least get to know if there is some non-zero data actually in there: some Ephemeris, and/or Almanac, and/or SBAS assistance data…

1 Like

Hi @frr,

As far as I’ve tested on EM7455 with latest firmware and I don’t see SV #255 as you mentioned. I will retest more times and let you know the results as soon as possible.

Thanks,

Hi @frr,

After I retested many times, I also saw SV #255. I think it’s also a bug, in this case, it’s better if you send an email to technical support at support@sierrawireless.com for further assistance.

Thanks,

Thanks for your polite responses, for your effort, and for the tip.
Worth a try… though I don’t have a support contract with Sierra.
I mean - even one-way feedback may help them on their job.