LG290P (03) — PQTMCFGRTCM MSM_Type=7 accepted, but RTCM output stays MSM4 (1074/1084/…); enabling RTCM3-107X resets MSM_Type to 4

Module: LG290P (03)
Firmware: LG290P03AANR02A01S
Use case: Base station (fixed position), RTCM3 output on UART → NTRIP caster
Baudrate: 460800
FW / environment: Raspberry Pi 4, UART5, base mode via PQTMCFGRCVRMODE,W,2

Summary

We configure full-band multi-GNSS base RTCM with MSM7, but the module continuously emits MSM4 messages (1074, 1084, 1094, 1124, 1134).
PQTMCFGRTCM,R reports MSM_Type=7, yet the on-wire RTCM stream is MSM4.
Also, enabling MSM wildcards via PQTMCFGMSGRATE appears to reset MSM_Type back to 4.

What we send (simplified)

$PQTMCFGCNST,W,1,1,1,1,1,1

$PQTMCFGSIGGRP,W,0

$PQTMCFGSIGNAL,W,7,3,F,3F,F,1

$PQTMCFGRTCM,W,7,0,-90.0,07,06,1,0

$PQTMSAVEPAR

$PQTMSRR # soft reset

# after reboot:

$PQTMCFGMSGRATE,W,RTCM3-1005,1

$PQTMCFGMSGRATE,W,RTCM3-1033,1

$PQTMCFGMSGRATE,W,RTCM3-107X,1,0

$PQTMCFGMSGRATE,W,RTCM3-108X,1,0

$PQTMCFGMSGRATE,W,RTCM3-109X,1,0

$PQTMCFGMSGRATE,W,RTCM3-111X,1,0

$PQTMCFGMSGRATE,W,RTCM3-112X,1,0

$PQTMCFGMSGRATE,W,RTCM3-113X,1,0

$PQTMCFGMSGRATE,W,RTCM3-1230,10

$PQTMCFGRTCM,W,7,0,-90.0,07,06,1,0 # re-apply, see below

All commands return OK.

Observed behavior

1) MSM_Type=7 in config, MSM4 on the wire

After configuration:

$PQTMCFGRTCM,R

$PQTMCFGRTCM,OK,7,0,-90.0,07,06,1,0*…

But parsed RTCM stream (~35–60 s) contains only:

  • 1005, 1033

  • 1074 GPS MSM4

  • 1084 GLO MSM4

  • 1094 GAL MSM4

  • 1124 BDS MSM4

  • 1134 NavIC MSM4

  • 1230

No 1077/1087/1097/1117/1127/1137.
Throughput ~1.0–1.1 kB/s with open sky (~40–45 sats used, HDOP ~0.25). Frame sizes match MSM4 (e.g. GPS ~220–250 B), not MSM7.

2) Enabling RTCM3-107X resets MSM_Type to 4

Sequence:

$PQTMCFGRTCM,W,7,0,-90.0,07,06,1,0 → OK, verify = 7

$PQTMCFGMSGRATE,W,RTCM3-107X,1,0 → OK

$PQTMCFGMSGRATE,W,RTCM3-108X,1,0 → OK

… (other *X)

$PQTMCFGRTCM,R → OK,4,0,-90.0,07,06,1,0

So PQTMCFGMSGRATE for MSM wildcards appears to overwrite PQTMCFGRTCM back to default MSM4.

We re-apply PQTMCFGRTCM,W,7,… after MSGRATE; verify then shows 7 again, but the stream is still MSM4.

3) Explicit MSM7 message names are rejected

$PQTMCFGMSGRATE,W,RTCM3-1077,1,0 → $PQTMCFGMSGRATE,ERROR,1

$PQTMCFGMSGRATE,W,RTCM3-1087,1,0 → ERROR,1

… same for 1097/1117/1127/1137

Only RTCM3-107X / 108X / … wildcards are accepted (as in the protocol spec).

Questions

  1. Is MSM_Type=7 in PQTMCFGRTCM supposed to make RTCM3-107X emit 1077 (MSM7)?

  2. Is it expected that PQTMCFGMSGRATE,W,RTCM3-107X,… resets MSM_Type to 4?

  3. What is the correct sequence to get MSM7 base output (including save/reset order)?

  4. Does base mode (RCVRMODE=2) or UART bandwidth/NMEA+RTCM (OutputProt=7) force MSM4 even when MSM_Type=7?

  5. Is there a FW version where this is fixed? Which version should we use?

Environment notes

  • Open sky, survey antenna, all constellations enabled, elev mask -90.0

  • Base fixed ECEF set via PQTMCFGSVIN

  • RTCM verified both on local UART tap and via NTRIP client downstream

Happy to provide full command log + raw RTCM capture if useful.

Hi @Jan_Semrad do you mind sharing the full command and the NMEA log as well? Thanks

Hi, sure — here are the full PQTM commands with checksums and a live NMEA sample from the base station (LG290P in base mode, open sky).

Full command sequence (UART @ 460800)

$PQTMVERNO*58

$PQTMGNSSVER*50

$PQTMCFGCNST,W,1,1,1,1,1,1*2B

$PQTMCFGSIGGRP,W,0*25

$PQTMCFGSIGNAL,W,7,3,F,3F,F,1*7F

$PQTMCFGRTCM,W,7,0,-90.0,07,06,1,0*38

$PQTMSAVEPAR*5A

$PQTMSRR*4B

# after soft reset / reboot — base mode + RTCM rates:

$PQTMCFGRCVRMODE,W,2*29

$PQTMCFGMSGRATE,W,RTCM3-1005,1*59

$PQTMCFGMSGRATE,W,RTCM3-1033,1*5C

$PQTMCFGMSGRATE,W,RTCM3-107X,1,0*2F

$PQTMCFGMSGRATE,W,RTCM3-108X,1,0*20

$PQTMCFGMSGRATE,W,RTCM3-109X,1,0*21

$PQTMCFGMSGRATE,W,RTCM3-111X,1,0*28

$PQTMCFGMSGRATE,W,RTCM3-112X,1,0*2B

$PQTMCFGMSGRATE,W,RTCM3-113X,1,0*2A

$PQTMCFGMSGRATE,W,RTCM3-1230,10*6D

$PQTMCFGRTCM,W,7,0,-90.0,07,06,1,0*38

# NMEA monitoring while base outputs RTCM:

$PQTMCFGMSGRATE,W,1,2,GGA,1*09

$PQTMCFGMSGRATE,W,1,2,GSA,1*1D

$PQTMCFGMSGRATE,W,1,2,GSV,1*0A

All of the above return OK, except explicit MSM7 message names:

$PQTMCFGMSGRATE,W,RTCM3-1077,1,0*40 → $PQTMCFGMSGRATE,ERROR,1

(same ERROR,1 for 1087/1097/1117/1127/1137)

Verify after config

$PQTMCFGRTCM,R*2C

$PQTMCFGRTCM,OK,7,0,-90.0,07,06,1,0*…

But on-wire RTCM is still MSM4: 1074/1084/1094/1124/1134 (no 1077…).

Also, right after enabling wildcards, readback often becomes MSM4 again until we re-apply PQTMCFGRTCM,W,7,…:

$PQTMCFGMSGRATE,W,RTCM3-107X,1,0*2F → OK

$PQTMCFGRTCM,R*2C → OK,4,0,-90.0,07,06,1,0

NMEA log (base mode, quality=7 = Survey-in / fixed base)

$GNGGA,053728.000,4953.74225322,N,01418.14976989,E,7,42,0.23,389.253,M,45.611,M,*7E

$GNGSA,M,3,01,02,08,10,16,23,27,32,0.41,0.23,0.33,1*01

$GNGSA,M,3,65,66,72,78,79,80,81,87,88,0.41,0.23,0.33,2*03

$GNGSA,M,3,02,05,06,09,15,21,27,30,34,36,0.41,0.23,0.33,3*00

$GNGSA,M,3,02,06,09,13,14,27,28,33,36,37,38,41,0.41,0.23,0.33,4*06

$GNGSA,M,3,0.41,0.23,0.33,5*0D

$GNGSA,M,3,02,09,0.41,0.23,0.33,6*05

$GNGGA,053732.000,4953.74225322,N,01418.14976989,E,7,42,0.24,389.253,M,45.611,M,*72

$GAGSV,3,1,10,02,05,174,42,05,18,109,43,06,12,033,27,09,20,056,39,1*74

$GAGSV,3,2,10,15,45,262,49,21,08,329,38,27,43,286,49,30,41,214,46,2*70

$GAGSV,3,3,10,34,75,044,46,36,23,070,40,1*74

$GBGSV,4,1,13,02,08,107,45,06,11,036,38,09,37,043,35,13,60,100,48,1*71

$GBGSV,4,2,13,14,16,037,36,27,39,289,49,28,85,328,49,33,48,131,50,1*79

$GIGSV,1,1,02,02,08,142,41,09,30,128,38,1*7D

~40–42 sats used, HDOP ~0.23–0.24, open sky. Happy to add a raw RTCM capture / $PQTMVERNO response if needed.

Hi @Jan_Semrad I was able to configure and get MSM7 message. Below are my steps:

  1. Change the mode into Base Station mode.
  2. Run the survey-in test to get the mean X,Y and Z data.
  3. Then configure to have into Fixed mode base station.
  4. Run below commands to configure for message rate for MSM7:
	• Restore parameter: $PQTMRESTOREPAR*13
	• Stop the GNSS enginer: $PQTMGNSSSTOP*09 // Without the stop, the engine keeps running in the old state (MSM4 base-mode default) and may not pick up the new config until something else triggers a re-init.
	• GPS (107X): $PQTMCFGMSGRATE,W,RTCM3-107X,1,0*2F
	• GLONASS (108X): $PQTMCFGMSGRATE,W,RTCM3-108X,1,0*20
	• Galileo (109X): $PQTMCFGMSGRATE,W,RTCM3-109X,1,0*21
	• BDS (112X): $PQTMCFGMSGRATE,W,RTCM3-112X,1,0*2B
	• Station Coordinates (1005): $PQTMCFGMSGRATE,W,RTCM3-1005,1*59

  1. Set Global MSM Type to 7 (Perform this LAST):
	• Command: $PQTMCFGRTCM,W,7,0,-90.0,07,06,1,0*38 
		○ 7: Sets MSM Type to MSM7.
        ○ -90.0: Sets the satellite elevation threshold to report measurements (minimum).
  1. Save Parameters and Reboot
    Configurations on the LG290P take effect only after being saved to Non-Volatile Memory (NVM) and performing a system reset.
  • Save: $PQTMSAVEPAR*5A
  • Reboot: $PQTMSRR*4B

Snapshots of example on how it works:


A few things you may need to try out:

  1. Run $PQTMGNSSSTOP*09 before you start to configure the message rate for MSM7.
  2. Perform this command LAST: $PQTMCFGRTCM,W,7,0,-90.0,07,06,1,0*38
  3. Then can save the parameter and do the reset.

Hope these will help you.

Thank you this helped! Now is everything up and running with MSM7.