Skip to content

Protocol Overview

Technical reference for the NMEA 0183, PAIR, PQTM, and RTCM3 protocols as implemented by the Quectel LC29H GNSS module family. Protocol constants and internal identifiers are sourced from QNMEA.dll decompilation and the Quectel LC29H GNSS Protocol Specification V1.1.

Applies to: LC29H(AA), LC29H(BA), LC29H(CA), LC29H(DA), LC29H(BS)

Every NMEA 0183 sentence follows this wire format:

$TTSSS,field1,field2,...,fieldN*XX\r\n
ComponentBytesDescription
$1Start delimiter (0x24)
TT2Talker ID
SSS3Sentence ID (e.g. GGA, RMC)
,1 eachField separator (0x2C)
*1Checksum delimiter (0x2A)
XX2Checksum as uppercase hex
\r\n2Line terminator (0x0D 0x0A)

From QNMEA.dll decompilation:

ConstantValueNotes
TALKERID_LEN2Characters before sentence ID
SENTENCEID_LEN3Characters after talker ID
CHECKSUM_LEN2Hex digits after *
MIN_NMEA_LEN12Shortest valid sentence
MAX_NMEA_LEN82Longest valid sentence (NMEA spec limit)

The checksum is the XOR of every byte between $ and *, exclusive of both delimiters:

checksum = 0
for each byte between '$' and '*':
checksum = checksum XOR byte
format as "%02X"

Example$GNRMC,010555.000,A,2232.4682,N,11404.6748,E,0.00,125.29,230822,,,D*71:

XOR all bytes in GNRMC,010555.000,A,2232.4682,N,11404.6748,E,0.00,125.29,230822,,,D yields 0x71.

FieldFormatExampleDecimal
LatitudeDDMM.MMMMM2232.468222 + 32.4682/60 = 22.54114
LongitudeDDDMM.MMMMM11404.6748114 + 04.6748/60 = 114.07791

Hemisphere indicators N/S and E/W follow the numeric field. South and West are negative in decimal degrees.

The LC29H actively uses a subset of 24 registered talker IDs depending on which constellations are enabled.

Talker IDSystemNotes
GPGPS (USA)L1 C/A, L5
GLGLONASS (Russia)L1
GAGalileo (EU)E1, E5a
GBBeiDou (China)B1I, B2a (preferred BeiDou talker)
BDBeiDou (China)Alternate BeiDou talker ID
QZQZSS (Japan)L1 C/A, L5
GNMulti-GNSS combinedUsed when fix includes multiple constellations
GINavIC / IRNSS (India)Registered but not tracked by LC29H
PQProprietary QuectelUsed in $PQ prefixed proprietary sentences

Primary talker IDs in output: GP, GL, GA, GB, QZ, and GN.

From QNMEA.dll, sentence types are assigned numeric indices used by PAIR062 (set output rate) and PAIR063 (query output rate).

IndexSentenceFull Name
0GGAGlobal Positioning System Fix Data
1GLLGeographic Position — Latitude/Longitude
2GSAGNSS DOP and Active Satellites
3GSVGNSS Satellites in View
4RMCRecommended Minimum Specific GNSS Data
5VTGCourse Over Ground and Ground Speed
6ZDATime and Date
7GRSGNSS Range Residuals
8GSTGNSS Pseudorange Error Statistics

PAIR — Quectel/MediaTek Proprietary Commands

Section titled “PAIR — Quectel/MediaTek Proprietary Commands”
$PAIR<NNN>,<param1>,<param2>,...*XX\r\n
ID RangeCategoryExamples
001ACK/NACKResponse to all PAIR set commands
003–007System restartCold/hot/warm start, factory reset
021Version queryFirmware version
050Fix ratePosition fix interval (100–10000 ms)
051Baud rateUART1 baud rate
066–067ConstellationEnable/disable GPS, GLONASS, Galileo, BeiDou, QZSS
070–076NMEA outputPer-sentence output rate
080–081Navigation modeNormal, fitness, stationary, drone
382–383SBASSBAS augmentation (AA variant)
432–437RTCM outputRTCM mode, antenna ref, ephemeris (DA/BS)
470–472EPOExtended Prediction Orbit (AA variant)
490–491EASYSelf-generated ephemeris (AA variant)
511, 513NVRAMSave navigation data / save config to flash
650Backup modeUltra-low-power RTC backup (~7 uA)
690–691Periodic modePower-saving duty cycle
752PPSPulse-per-second output
830–831Raw measurementRaw GNSS observation output
864–867Port configPer-port baud rate and flow control

See PAIR Commands for the complete reference.

$PQTM<NAME>,<params>...*XX\r\n
CommandDirectionDescription
PQTMVERNOQuery/ResponseFirmware version, hardware, SDK
PQTMSAVEPARSetSave all parameters to flash
PQTMRESTOREPARSetRestore factory defaults
PQTMGNSSRESTARTSetRestart GNSS engine
PQTMCFGPORTRead/WritePort protocol and baud rate
PQTMCFGNMEAMSGRead/WritePer-port NMEA message rate
PQTMCFGEAMASKRead/WriteSatellite elevation mask
PQTMCFGDRMODERead/WriteDead reckoning mode (BA/CA)
PQTMCFGSVINRead/WriteSurvey-in configuration (BS)

See PQTM Commands for the complete reference.

Every PAIR set command generates an acknowledgement response:

$PAIR001,<CommandID>,<Result>*XX\r\n
CodeNameDescription
0SuccessCommand accepted and executed
1FailCommand execution failed
2Not SupportedCommand ID not recognized or not available
3Invalid ParameterParameter out of range or wrong type
4TimeoutCommand timed out during execution
Host -> $PAIR066,1,1,1,1,0*3A (enable GPS+GLONASS+Galileo+BeiDou, disable QZSS)
Module<- $PAIR001,066,0*3B (success)
Host -> $PAIR050,500*21 (set fix rate to 500ms / 2Hz)
Module<- $PAIR001,050,0*36 (success)
Host -> $PAIR050,50*14 (set fix rate to 50ms -- out of range)
Module<- $PAIR001,050,3*35 (invalid parameter)

GGA field 5 encodes the GNSS fix quality:

ValueNameDescription
0No FixPosition not available
1GPS FixStandard GNSS autonomous fix (SPS)
2DGPS FixDifferential correction applied (SBAS or RTCM)
3PPS FixPrecise Positioning Service (military GPS)
4RTK FixedCarrier-phase ambiguities resolved; centimeter accuracy
5RTK FloatCarrier-phase ambiguities not resolved; decimeter accuracy
6EstimatedDead reckoning or estimated position
7ManualPosition entered manually
8SimulationSimulator mode

For RTK operation, the typical progression is: 0 (no fix) → 1 (autonomous) → 5 (RTK float) → 4 (RTK fixed).

Out of the box, the LC29H outputs these sentences at 1 Hz on UART1 (115200 baud, 8N1):

SentenceDefault RatePAIR Command
GGA1 (every fix)PAIR073
GLL0 (disabled)PAIR070
GSA1 (every fix)PAIR074
GSV1 (every fix)PAIR075
RMC1 (every fix)PAIR071
VTG1 (every fix)PAIR072
GNS0 (disabled)PAIR076

Rate values: 0 = disabled, 1 = every position fix, 2 = every second fix, up to 20.

FeatureAABACADABS
Standard NMEA (GGA/RMC/GSA/GSV/VTG/GLL)YesYesYesYesYes
GNS outputYesYesYesYesYes
SBAS augmentation (PAIR382)Yes
EASY ephemeris prediction (PAIR490)Yes
Constellation selection (PAIR066)Yes
RTK rover (RTCM3 input)YesYes
RTK base (RTCM3 output)Yes
Dead reckoning (PQTMCFGDRMODE)YesYes
CAN bus interface (PQTMCFGCAN)Yes
Survey-in (PQTMCFGSVIN)Yes
Raw measurement output (PAIR830)Yes
Navigation mode (PAIR080)YesYesYesYesYes
Power management (PAIR650/690)YesYesYesYesYes
PPS output (PAIR752)YesYesYesYesYes