This is one of the sentences always supported by GPS / GNSS receivers.
The GSA sentence includes GPS / GNSS receiver operating mode, satellites used for navigation, and DOP values.
In a multi-GNSS receiver the GSA message will be output multiple times, once for each GNSS.
The number of unique SV IDs (or PRNs) should correspond with the number of satellites reported by GGA (possibly limited to 12) and GNS.
In a multi-band receiver the GSA message will be output multiple times, once for each GNSS / signal.
NMEA 4.10 onwards:
1 2 3 14 15 16 17 18 19
| | | | | | | | |
$--GSA,a,a,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x.x,x.x,x.x,x*hh<CR><LF>
Prior to NMEA 4.10:
1 2 3 14 15 16 17 18
| | | | | | | |
$--GSA,a,a,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x.x,x.x,x.x*hh<CR><LF>
| # | Field | Format | Example | Description |
|---|---|---|---|---|
| 0 | Sentence ID | string | $GPGSA | Talker ID (GP) + message ID (GSA) |
| 1 | Op mode | character | A | 2D / 3D operation mode; M = manual, A = automatic |
| 2 | Fix mode | digit | 3 | Fix mode; 1 = no fix, 2 = 2D, 3 = 3D |
| - | # Start of block | - | - | Start of repeated block (12 times) |
| 3 + idx | SV ID | numeric | 12 | Satellite ID or PRN number (leading zeros sent) |
| - | # End of block | - | - | End of repeated block (12 times) |
| 15 | PDOP | numeric | 1.83 | Position dilution of precision (PDOP), typically 1 or 2 dp |
| 16 | HDOP | numeric | 1.09 | Horizontal dilution of precision (HDOP), typically 1 or 2 dp |
| 17 | VDOP | numeric | 1.47 | Vertical dilution of precision (VDOP), typically 1 or 2 dp |
| 18 | System ID | hexadecimal | 1 | GNSS system ID (NMEA 4.10 and later), or maybe signal ID |
| 19 | Checksum | hexadecimal | *7B | Checksum |
Notes:
$GNGSA,A,3,80,71,73,79,69,,,,,,,,1.83,1.09,1.47*17
$GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
$GPGSA,M,3,15,13,14,05,23,24,17,10,,,,,1.7,0.9,1.4*32
The GSA sentence is being used in a number of different ways in modern GPS / GNSS receivers. When parsing the GSA sentence, code should be able to handle all of the scenarios described below.
This example for the BCM4774 was captured from a Samsung Galaxy S7.
$GPGSA,A,3,10,12,13,14,15,17,19,24,32,,,,1.5,0.8,1.3*34
$GNGSA,A,3,10,12,13,14,15,17,19,24,32,,,,1.5,0.8,1.3*2A
$GNGSA,A,3,66,67,68,77,85,,,,,,,,1.5,0.8,1.3*20
Notes:
$GPGSA reports the GPS satellites in use.$GNGSA reports the GPS and GLONASS satellites in use.This example for the Exynos 1280 was captured from a Samsung Galaxy A53.
$GPGSA,A,3,02,03,04,08,14,17,19,21,22,32,,,0.6,0.4,0.6*32
$GNGSA,A,3,65,72,79,80,86,87,88,,,,,,0.6,0.4,0.6*29
$GAGSA,A,3,103,105,108,113,115,121,127,,,,,,0.6,0.4,0.6*18
$BDGSA,A,3,205,209,211,214,216,233,,,,,,,0.6,0.4,0.6*29
Notes:
This example for the Exynos 1380 was captured from a Samsung Galaxy A54.
$GNGSA,A,3,05,13,14,15,20,22,23,24,30,,,,0.8,0.4,0.6,1*3B
$GNGSA,A,3,65,72,75,76,,,,,,,,,0.8,0.4,0.6,2*3D
$GNGSA,A,3,104,109,111,119,121,136,,,,,,,0.8,0.4,0.6,3*3A
$GNGSA,A,3,207,210,223,225,232,237,240,241,,,,,0.8,0.4,0.6,4*3A
Notes:
$GNGSA is used for all of the GNSS constellations.
This example for the SDM845 was captured from a Samsung Galaxy S10 Lite.
$GNGSA,A,3,65,71,72,79,86,87,88,,,,,,0.7,0.5,0.6,2*39
$GNGSA,A,3,03,05,08,13,15,21,27,34,,,,,0.7,0.5,0.6,3*3E
$GNGSA,A,3,09,11,14,16,27,28,,,,,,,0.7,0.5,0.6,4*34
$GNGSA,A,3,02,03,04,08,14,17,19,21,32,,,,0.7,0.5,0.6,1*31
Notes:
$GNGSA is used for all of the GNSS constellations.
This example for the BCM4776 was captured from a Google Pixel 7.
$GPGSA,A,3,04,06,07,09,11,20,30,,,,,,1.8,0.9,1.5*3B
$GPGSA,A,3,04,06,09,11,30,,,,,,,,1.8,0.9,1.5,8*2A
$GAGSA,A,3,103,107,108,113,115,125,126,,,,,,1.8,0.9,1.5,1*02
$GNGSA,A,3,04,06,07,09,11,20,30,,,,,,1.8,0.9,1.5*25
$GNGSA,A,3,71,72,,,,,,,,,,,1.8,0.9,1.5*2B
$BDGSA,A,3,219,221,222,234,236,244,245,246,,,,,1.8,0.9,1.5,5*34
$GAGSA,A,3,103,107,108,113,115,125,126,,,,,,1.8,0.9,1.5*1F
$BDGSA,A,3,211,219,221,222,234,236,244,245,246,,,,1.8,0.9,1.5*1F
Notes:
$PSSGR,GSA which is like $GPGSA, but includes system ID and signal ID.Determining the satellites in use for each system:
$GNGSA to report GNSS or GLONASS satellites that are active.$GPGSA and $GNGSA from chipsets such as the Broadcom BCM4774.
$GNGSA.$PSSGR,GSA will also be available which is like GSA but includes system ID and signal ID.