PAIR Commands
Comprehensive reference for all PAIR proprietary commands supported by the Quectel LC29H GNSS module family. Derived from the Quectel LC29H GNSS Protocol Specification V1.1, LC29H(BS) Protocol Specification V1.0, and AGNSS Application Note V1.0.
General Format
Section titled “General Format”All PAIR commands follow NMEA-style framing:
$PAIR<CmdID>,<Arg1>,<Arg2>,...*<CS><CR><LF>| Element | Description |
|---|---|
$ | Start delimiter |
PAIR | Talker + sentence identifier |
<CmdID> | Three-digit command number (zero-padded) |
, | Field separator |
* | Checksum delimiter |
<CS> | Two-character hex XOR of all bytes between $ and * |
<CR><LF> | Carriage return + line feed terminator |
Maximum sentence length: 255 bytes (including $ and <CR><LF>).
Checksum Calculation
Section titled “Checksum Calculation”unsigned char checksum(const char *sentence) { unsigned char cs = 0; for (const char *p = sentence + 1; *p != '*' && *p; p++) cs ^= (unsigned char)*p; return cs;}Variant Support Key
Section titled “Variant Support Key”| Abbreviation | Module | Capabilities |
|---|---|---|
| AA | LC29H(AA) | SBAS, EASY/EPO, AGNSS |
| BA | LC29H(BA) | Dead Reckoning + RTK |
| CA | LC29H(CA) | Dead Reckoning only |
| DA | LC29H(DA) | RTK only |
| BS | LC29H(BS) | Base station, raw output |
System Commands
Section titled “System Commands”PAIR001 — Acknowledgment
Section titled “PAIR001 — Acknowledgment”Asynchronous response returned by the module after processing any PAIR command. Not sent by the host.
Direction: Module → Host
$PAIR001,<CmdID>,<Result>*<CS>| Result | Meaning |
|---|---|
| 0 | Command succeeded |
| 1 | Command failed (execution error) |
| 2 | Command ID not supported |
| 3 | Invalid parameter(s) |
| 4 | Command timed out |
Variants: All
PAIR002 — Startup Notification
Section titled “PAIR002 — Startup Notification”Sent automatically after power-on or restart. Indicates the module is ready.
$PAIR002*38Variants: All
PAIR003 — Cold Start (Full Reset)
Section titled “PAIR003 — Cold Start (Full Reset)”Clear all satellite data and restart. Longest TTFF (~26 seconds).
$PAIR003*39Variants: All
PAIR004 — Hot Start
Section titled “PAIR004 — Hot Start”Restart using all cached data. TTFF ~1 second when data is valid.
$PAIR004*3EVariants: All
PAIR005 — Warm Start
Section titled “PAIR005 — Warm Start”Clear ephemeris, retain almanac/position/time. TTFF ~5-10 seconds.
$PAIR005*3FVariants: All
PAIR006 — Cold Start (Preserve Config)
Section titled “PAIR006 — Cold Start (Preserve Config)”Same as PAIR003 but retains user configuration (baud rate, fix rate, constellation selection).
$PAIR006*3CVariants: All
PAIR007 — Factory Reset
Section titled “PAIR007 — Factory Reset”Restore all settings to factory defaults and clear all satellite data.
$PAIR007*3DVariants: All
PAIR010 — Query Aiding Status
Section titled “PAIR010 — Query Aiding Status”$PAIR010*3DResponse: $PAIR010,<EPO_Status>,<Time_Status>,<Position_Status>*<CS>
| Field | Values |
|---|---|
| EPO_Status | 0 = no EPO data, 1 = available |
| Time_Status | 0 = no time aiding, 1 = available |
| Position_Status | 0 = no position aiding, 1 = available |
Variants: AA (primary); DA, BA, CA support time/position fields
PAIR021 — Query Firmware Version
Section titled “PAIR021 — Query Firmware Version”$PAIR021*3AResponse: $PAIR021,<Version>*<CS> (e.g., LC29HAANR11A03S)
Variants: All
GNSS Configuration
Section titled “GNSS Configuration”PAIR050 — Set Position Fix Rate
Section titled “PAIR050 — Set Position Fix Rate”$PAIR050,<FixInterval>*<CS>| Field | Range | Default | Unit |
|---|---|---|---|
| FixInterval | 100–10000 | 1000 | ms |
Examples: $PAIR050,1000*12 (1 Hz), $PAIR050,200*3A (5 Hz), $PAIR050,100*28 (10 Hz)
Variants: All
PAIR051 — Set UART1 Baud Rate
Section titled “PAIR051 — Set UART1 Baud Rate”$PAIR051,<BaudRate>*<CS>Valid values: 4800, 9600, 19200, 38400, 57600, 115200, 921600. Default: 115200.
Variants: All
PAIR062 — Set DGPS Mode
Section titled “PAIR062 — Set DGPS Mode”$PAIR062,<Mode>*<CS>| Mode | Description |
|---|---|
| 0 | Off |
| 1 | RTCM (for RTK — DA, BA variants) |
| 2 | SBAS (AA variant only) |
Variants: All (SBAS functional on AA only)
PAIR066 — Set GNSS Constellation
Section titled “PAIR066 — Set GNSS Constellation”$PAIR066,<GPS>,<GLONASS>,<Galileo>,<BeiDou>,<QZSS>*<CS>Each field: 0 = off, 1 = on. Default: all enabled.
Examples:
$PAIR066,1,1,1,1,1*1A— all constellations$PAIR066,1,0,0,0,0*1E— GPS only$PAIR066,1,0,1,1,1*1B— GPS + Galileo + BeiDou + QZSS
At least one constellation must remain enabled.
Variants: All
PAIR067 — Query Constellation
Section titled “PAIR067 — Query Constellation”$PAIR067*3EVariants: All
NMEA Output Control
Section titled “NMEA Output Control”Rate parameter: 0 = disabled, 1 = every fix, 2 = every 2nd fix, … N = every Nth fix.
| Command | Sentence | Default |
|---|---|---|
| PAIR070 | GLL | 0 (disabled) |
| PAIR071 | RMC | 1 |
| PAIR072 | VTG | 1 |
| PAIR073 | GGA | 1 |
| PAIR074 | GSA | 1 |
| PAIR075 | GSV | 1 |
| PAIR076 | GNS | 0 (disabled) |
| PAIR080 | ZDA | 0 (disabled) |
| PAIR095 | DTM | 0 (disabled) |
Format: $PAIR07X,<Rate>*<CS>
Variants: All
SBAS Configuration (AA Only)
Section titled “SBAS Configuration (AA Only)”PAIR382 — Enable/Disable SBAS
Section titled “PAIR382 — Enable/Disable SBAS”$PAIR382,<Enable>*<CS>0 = disable, 1 = enable (default: 1). Requires PAIR062 mode 2.
SBAS improves accuracy from ~3 m to ~1-2 m CEP in service areas (WAAS, EGNOS, MSAS, GAGAN).
PAIR383 — Query SBAS Status
Section titled “PAIR383 — Query SBAS Status”$PAIR383*35RTCM Output Configuration (DA, BS)
Section titled “RTCM Output Configuration (DA, BS)”PAIR432 — Set RTCM Output Mode
Section titled “PAIR432 — Set RTCM Output Mode”$PAIR432,<Mode>*<CS>| Mode | Description |
|---|---|
| -1 | Disabled (default) |
| 0 | MSM4 — compact observables (lower bandwidth) |
| 1 | MSM7 — full observables (higher precision) |
PAIR433 — Query RTCM Output Mode
Section titled “PAIR433 — Query RTCM Output Mode”$PAIR433*3APAIR434 — Set RTCM Antenna Reference Point (1005)
Section titled “PAIR434 — Set RTCM Antenna Reference Point (1005)”$PAIR434,<Enable>*<CS>Essential for base station operation — provides ARP coordinates to rovers.
PAIR436 — Set RTCM Ephemeris Output
Section titled “PAIR436 — Set RTCM Ephemeris Output”$PAIR436,<Enable>*<CS>Enables output of messages 1019 (GPS), 1020 (GLONASS), 1042 (BeiDou), 1046 (Galileo).
EASY / EPO — Assisted GNSS (AA Only)
Section titled “EASY / EPO — Assisted GNSS (AA Only)”PAIR470 — Query EPO Status
Section titled “PAIR470 — Query EPO Status”$PAIR470*3AResponse includes EPO coverage per constellation (0-72 hours).
PAIR471 — Inject EPO Data Segment
Section titled “PAIR471 — Inject EPO Data Segment”$PAIR471,<SV>,<Type>,<D0>...<D17>*<CS>EPO injection is typically automated by QGNSS. Data valid for up to 3 days.
PAIR472 — Erase EPO Data
Section titled “PAIR472 — Erase EPO Data”$PAIR472*38PAIR490 — Enable/Disable EASY
Section titled “PAIR490 — Enable/Disable EASY”$PAIR490,<Enable>*<CS>EASY extends ephemeris validity from ~2-4 hours to ~3 days by predicting orbits. Default: enabled.
PAIR491 — Query EASY Status
Section titled “PAIR491 — Query EASY Status”$PAIR491*3ATime and Position Aiding
Section titled “Time and Position Aiding”PAIR590 — Inject UTC Time
Section titled “PAIR590 — Inject UTC Time”$PAIR590,<Year>,<Month>,<Day>,<Hour>,<Minute>,<Second>*<CS>Time accuracy within 30 seconds is sufficient. Source from host NTP-synced clock.
Variants: All
PAIR600 — Inject Position
Section titled “PAIR600 — Inject Position”$PAIR600,<Latitude>,<Longitude>,<Altitude>*<CS>Position accuracy within 30 km is sufficient. Combined with PAIR590 for maximum TTFF reduction.
Variants: All
NVRAM / Flash Storage
Section titled “NVRAM / Flash Storage”PAIR511 — Save Navigation Data
Section titled “PAIR511 — Save Navigation Data”$PAIR511*3BSaves ephemeris, almanac, position, time to flash.
PAIR513 — Save Settings to Flash
Section titled “PAIR513 — Save Settings to Flash”$PAIR513*39Power Management
Section titled “Power Management”PAIR650 — Enter RTC Backup Mode
Section titled “PAIR650 — Enter RTC Backup Mode”$PAIR650*31Current drops to ~7 uA. Wake by toggling WAKEUP pin (low >100 ms).
PAIR690 — Set Periodic Power Saving
Section titled “PAIR690 — Set Periodic Power Saving”$PAIR690,<Mode>,<RunTime>,<SleepTime>*<CS>| Mode | Behavior |
|---|---|
| 0 | Continuous tracking (default) |
| 1 | Smart — sleeps but wakes early if fix acquired quickly |
| 2 | Strict — fixed duty cycle |
Example: $PAIR690,1,1000,3000*XX (1s active, 3s sleep)
PAIR691 — Query Power Saving Mode
Section titled “PAIR691 — Query Power Saving Mode”$PAIR691*30PPS Configuration
Section titled “PPS Configuration”PAIR752 — Configure PPS Output
Section titled “PAIR752 — Configure PPS Output”$PAIR752,<Type>,<PulseWidth>*<CS>| Type | Behavior |
|---|---|
| 0 | Disabled |
| 1 | After first fix (default) |
| 2 | On 3D fix only |
| 3 | On 2D or 3D fix |
| 4 | Always (free-running without fix) |
PulseWidth: 1–999 ms (default: 100). PPS accuracy ~10-30 ns when fix is valid.
Raw Measurement Output
Section titled “Raw Measurement Output”PAIR830 — Enable Raw Measurements
Section titled “PAIR830 — Enable Raw Measurements”$PAIR830,<Mode>*<CS>| Mode | Output |
|---|---|
| 0 | Disabled (default) |
| 1 | Raw measurements only |
| 2 | Raw measurements + SV status + PVT |
Variants: BS (primary), DA
PAIR831 — Query Raw Measurement Status
Section titled “PAIR831 — Query Raw Measurement Status”$PAIR831*36UART Port Configuration
Section titled “UART Port Configuration”PAIR864 — Set Port Baud Rate
Section titled “PAIR864 — Set Port Baud Rate”$PAIR864,<PortType>,<PortIndex>,<BaudRate>*<CS>PortType: 0=UART, 1=I2C, 2=SPI. Provides per-port control vs PAIR051.
PAIR866 — Set Flow Control
Section titled “PAIR866 — Set Flow Control”$PAIR866,<PortType>,<PortIndex>,<FlowControl>*<CS>FlowControl: 0=none, 1=XON/XOFF, 2=RTS/CTS (not available on HAT without hardware mod).
Common Configuration Sequences
Section titled “Common Configuration Sequences”Initial Setup (All Variants)
Section titled “Initial Setup (All Variants)”$PAIR021*3A Query firmware version$PAIR067*3E Query current constellation config$PAIR066,1,1,1,1,1*1A Enable all constellations$PAIR050,1000*12 Set 1 Hz fix rate$PAIR073,1*21 Enable GGA every fix$PAIR071,1*23 Enable RMC every fix$PAIR075,5*24 GSV every 5th fix (reduce bandwidth)$PAIR513*39 Save settings to flashRTK Rover Setup (DA Variant)
Section titled “RTK Rover Setup (DA Variant)”$PAIR062,1*3E Enable RTCM DGPS mode$PAIR066,1,1,1,1,1*1A Enable all constellations$PAIR073,1*21 Enable GGA (required for NTRIP)$PAIR513*39 Save settingsRTK Base Station Setup (BS Variant)
Section titled “RTK Base Station Setup (BS Variant)”$PAIR432,1*3A Enable MSM7 RTCM output$PAIR434,1*3A Enable message 1005 (antenna ref)$PAIR436,1*38 Enable ephemeris messages$PAIR513*39 Save settings$PQTMCFGSVIN,W,1,3600,1,0,0,0*16 Start survey-in (1hr, 1m accuracy)Low-Power Tracking (AA Variant)
Section titled “Low-Power Tracking (AA Variant)”$PAIR490,1*3A Enable EASY for fast reacquisition$PAIR050,1000*12 1 Hz fix rate$PAIR690,1,1000,9000*XX Smart mode: 1s on, 9s sleep$PAIR513*39 Save settingsReduce Serial Bandwidth
Section titled “Reduce Serial Bandwidth”$PAIR070,0*23 Disable GLL$PAIR072,0*21 Disable VTG$PAIR074,0*27 Disable GSA$PAIR075,0*26 Disable GSV$PAIR076,0*25 Disable GNS$PAIR071,1*23 Keep RMC$PAIR073,1*21 Keep GGA$PAIR513*39 Save settings