RTCM Message format and CRC

Hi

I have a LG290P GNSS module working as rover and another one as base station.
I want to forward RTK messages from the base station to the Rover.

Could i have more details about the RTCM message format ? (it is very hard to find resources online) ?
Also couldn’t find more details about the CRC

Is it necessary to forward only complete RTCM frames to the rover or can the rover handle partial frames sent consecutively ?

…GNSS module supports the RTCM protocol that is in accordance with RTCM Standard 10403. Version 3…
so can handle MSM3…to MSM7 ;but also tested that 1004 and 1012 will be received for correction.
RTCM frames are crc incapsulated and need to be received integrally…

1 Like

When you say RTCM frames need to be encapsulated integrally, do you mean that the rover must receive only complete frames and not partial frames ?

I get RTCM data from the serial port of the base station. Can i just forward them as is to the rover or should i ensure a complete frame ? This is just a rewording of the point above.

If base is set properly it emits complete rtcm as protocol and U can inject to rover “as is”;later will send example and docs…

1 Like

First check that the base has a good submetric fix, (if you followed the survey); otherwise if you don’t have the accurate coordinates you can use the PPP_Galileo_HAS with the PPP firmware.
on that forum U can read all of 290p…quectel doc included.
Set the base with the fix satus

$PQTMGNSSSTOP*09
Set the base in ecef  $PQTMCFGSVIN,W,2,0,0,x,y,z*<Checksum>
$PQTMCFGSVIN,R*26 check if ecef base is correct
$PQTMSAVEPAR*5A
$PQTMSRR*4B
set rtcm msm7 and ephemerides output  at 5°
$PQTMCFGRTCM,W,7,0,5,07,06,2,1*35
$PQTMCFGMSGRATE,W,RTCM3-1033,0*5D
$PQTMCFGMSGRATE,W,RTCM3-1005,1*59
$PQTMSAVEPAR*5A
$PQTMSRR*4B
ensure all msm7 are outputted
$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
$PQTMSAVEPAR*5A
$PQTMSRR*4B
enable ephemerides output
$PQTMCFGMSGRATE,W,RTCM3-1019,0*55
$PQTMCFGMSGRATE,W,RTCM3-1020,0*5F
$PQTMCFGMSGRATE,W,RTCM3-1041,0*58
$PQTMCFGMSGRATE,W,RTCM3-1042,0*5B
$PQTMCFGMSGRATE,W,RTCM3-1044,0*5D
$PQTMCFGMSGRATE,W,RTCM3-1046,0*5F
$PQTMSAVEPAR*5A
$PQTMSRR*4B

quectel_lg290p03lgx80p03_gnss_protocol_specification_v1-1.pdf (736.3 KB)

Thanks Marco

I was using version 1.0 of the above document. I don’t think there’s that much difference between versions 1.0 and 1.1

Do you have more details about the CRC implementation used on LG290P for RTK messages ?
In my setup, i don’t use a dedicated RF link between base and rover

Rather, the base station sends RTK packets to a GCS (Ground control station), which in turn repackages it along with other messages and transmits it to the rover.
The rover after unpacking the message sends the RTK message to the rover. Therefore to send integral messages to the rover, it is necessary for me to ensure complete messages are packed from the base station, for which i need to know the CRC implementation.

The first reference you shared talks about possible CRC implementations, but could you confirm which specific one is used on LG290P ?

I don’t really understand your needs; but packing or manipulating rtcm data requires programs and in-depth knowledge of the protocol, generally the crc follows a like nmea protocol but different in structure:


The first 24 bits are packet header, which consists of three parts:
8 Bits Preamble begins with D3 00
6 reserved bits complement 0
10 Bits Message Length is the valid data length of the message
Data: the 24-bit parity bit 0-1023 Bytes of Data
24 Bits QualComm CRC-24Q

there are program like @Clive1

https://software.rtcm-ntrip.org/export/6615/ntrip/trunk/BNC/src/bnchelp.html of https://igs.bkg.bund.de/

IMHO a lot of stuff which I have never explored, starting with the cost of the rights of the protocol.
Regards