Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GPGGA message has a negative age in the "age" field #739

Open
aaryaapg opened this issue Feb 6, 2024 · 0 comments
Open

GPGGA message has a negative age in the "age" field #739

aaryaapg opened this issue Feb 6, 2024 · 0 comments

Comments

@aaryaapg
Copy link

aaryaapg commented Feb 6, 2024

Hello,
I have a base and rover (each connected to a Raspberry Pi). The base has an RTK fix and sends corrections to the rover via str2str on the RPi.
str2str -in serial://ttyACM0:115200:8:o:1:off -out tcpsvr://<Rover's IP>:<PORT>

The Raspberry Pi connected to the rover has this rtkrcv command running: rtkrcv -s -o rover_rtkrcv.conf (config file given below)
According the rover_rtkrcv.conf, I am logging the output to a log file called pos.log and also monitoring the output on a telnet port. The RTKRCV console recognizes the base and I get a fix solution after a while.
rover_rtkrcv.conf

# Configuration of Rover

console-passwd     =
console-timetype   =gpst    # (0:gpst,1:utc,2:jst,3:tow)
console-soltype    =deg    # (0:dms,1:deg,2:xyz,3:enu,4:pyl)
console-solflag    =1      # (0:off,1:std+2:age/ratio/ns)

# Rover input
inpstr1-type       =serial                      # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr1-path       =ttyACM0:115200:8:o:1:off
inpstr1-format     =ubx                      # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:gw10,9:javad,10:nvs,15:sp3)

# Base input
inpstr2-type       =tcpcli              # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr2-path       =10.241.16.156:9011
inpstr2-format     =rtcm3                # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:gw10,9:javad,10:nvs,15:sp3)

# Corrections input
inpstr3-type       =off        # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr3-path       =
inpstr3-format     =sp3        # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:gw10,9:javad,10:nvs,15:sp3)

# Output 1
outstr1-type       =file    # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
outstr1-path       =pos.log  # Telnet 
outstr1-format     =llh       # (0:llh,1:xyz,2:enu,3:nmea)

# Output 2
outstr2-type       =off       # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
outstr2-path       =
outstr2-format     =llh       # (0:llh,1:xyz,2:enu,3:nmea)

# Logging
logstr1-type       =off        # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr1-path       =
logstr2-type       =off        # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr2-path       =
logstr3-type       =off        # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr3-path       =

# Rover solution options
pos1-posmode    =kinematic              # (0:single,1:dgps,2:kinematic,3:static,4:movingbase,5:fixed,6:ppp-kine,7:ppp-static)
pos1-frequency  =2                     # (1:l1,2:l1+l2,3:l1+l2+l5)
pos1-soltype    =forward                # (0:forward,1:backward,2:combined)
pos1-elmask     =15                     # (deg)
# apply SNR mask to rover
pos1-snrmask_r  =off                    # (0:off,1:on)
# apply SNR mask to base
pos1-snrmask_b  =off                    # (0:off,1:on)
pos1-snrmask_L1 =30                     # (dBHz)
#pos1-snrmask_L1=38,38,38,38,38,38,38,38,38     # (dBHz)
pos1-snrmask_L2 =0,0,0,0,0,0,0,0,0      # (dBHz)
pos1-snrmask_L5 =0,0,0,0,0,0,0,0,0      # (dBHz)
pos1-dynamics   =on                     # (0:off,1:on)
pos1-tidecorr   =off                    # (0:off,1:on)
pos1-ionoopt    =brdc                   # (0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec,5:ionex-tec,6:qzs-brdc,7:qzs-lex,8:vtec_sf,9 :vtec_ef,10:gtec)
pos1-tropopt    =saas                   # (0:off,1:saas,2:sbas,3:est-ztd,4:est-ztdgrad)
pos1-sateph     =brdc                   # (0:brdc,1:precise,2:brdc+sbas,3:brdc+ssrapc,4:brdc+ssrcom)
pos1-posopt1    =off                    # (0:off,1:on)
pos1-posopt2    =off                    # (0:off,1:on)
pos1-posopt3    =off                    # (0:off,1:on)
pos1-posopt4    =off                    # (0:off,1:on)
pos1-posopt5    =off                    # (0:off,1:on)
pos1-exclsats   =                       # (prn ...)
pos1-navsys     =7                      # (1:gps+2:sbas+4:glo+8:gal+16:qzs+32:comp)

# Base station solution options
pos2-armode     =continuous           # (0:off,1:continuous,2:instantaneous,3:fix-and-hold,4:ppp-ar)
pos2-gloarmode  =on           # (0:off,1:on,2:autocal)
pos2-arthre     =1.3
pos2-arlockcnt  =0
pos2-thresar2   =0.9999
pos2-thresar3   =0.2
pos2-lockcntfixamb      =0
pos2-fixcntholdamb      =10
pos2-arelmask           =15             # (deg)
pos2-arminfix           =0
pos2-elmaskhold         =0
pos2-aroutcnt           =100
pos2-maxage             =0.1
pos2-slipthres          =0.05
pos2-rejionno           =1000
pos2-rejgdop            =30
pos2-niter              =3
pos2-baselen            =0
pos2-basesig            =0

# Output solution format
out-solformat   =nmea                    # (0:llh,1:xyz,2:enu,3:nmea)
out-outhead     =on                     # (0:off,1:on)
out-outopt      =on                     # (0:off,1:on)
out-timesys     =gpst                   # (0:gpst,1:utc,2:jst)
out-timeform    =hms                    # (0:tow,1:hms)
out-timendec    =3
out-degform     =deg                    # (0:deg,1:dms)
out-fieldsep    =
out-height      =ellipsoidal            # (0:ellipsoidal,1:geodetic)
out-geoid       =internal               # (0:internal,1:egm96,2:egm08_2.5,3:egm08_1,4:gsi2000)
out-solstatic   =all                    # (0:all,1:single)
out-nmeaintv1   =0                      # (s)
out-nmeaintv2   =0                      # (s)
out-outstat     =residual               # (0:off,1:state,2:residual)

# Statistics
stats-errratio     =100
stats-errphase     =0.003      # (m)
stats-errphaseel   =0.003      # (m)
stats-errphasebl   =0          # (m/10km)
stats-errdoppler   =1          # (Hz)
stats-stdbias      =30         # (m)
stats-stdiono      =0.03       # (m)
stats-stdtrop      =0.3        # (m)
stats-prnaccelh    =0.25       # (m/s^2)
stats-prnaccelv    =0.1        # (m/s^2)
stats-prnbias      =0.0001     # (m)
stats-prniono      =0.001      # (m)
stats-prntrop      =0.0001     # (m)
stats-clkstab      =5e-12      # (s/s)

# Misc options
misc-timeinterp         =off    # (0:off,1:on)
misc-sbasatsel          =0      # (0:all)
misc-rnxopt1            =
misc-rnxopt2            =
misc-svrcycle      =10         # (ms)
misc-timeout       =10000      # (ms)
misc-reconnect     =10000      # (ms)
misc-nmeacycle     =5000       # (ms)
misc-buffsize      =32768      # (bytes)
misc-navmsgsel     =rover       # (0:all,1:rover,2:base,3:corr)
misc-proxyaddr     =
misc-fswapmargin   =30         # (s)
misc-startcmd      =
misc-stopcmd       =

# Rover antenna
ant1-postype    =llh                            # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm)
ant1-pos1       =0                              # (deg|m)
ant1-pos2       =0                              # (deg|m)
ant1-pos3       =0                              # (m|m)
ant1-anttype    =
ant1-antdele    =0                              # (m|m)
ant1-antdeln    =0                              # (m|m)
ant1-antdelu    =0                              # (m|m)

# Base station antenna
# use "rtcm" if base station position transmitted in RTCM stream
# use "llh" and specify position in ant2-pos[123] (lat,lon.hgt) if not
ant2-postype    =rtcm                          # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm)
ant2-pos1       =                              # (deg|m) 49.4286786
ant2-pos2       =                              # (deg|m) 7.7510678
ant2-pos3       =                              # (m) 303.1 
ant2-anttype    =
ant2-antdele    =0                              # (m|m)
ant2-antdeln    =0                              # (m|m)
ant2-antdelu    =                               # (m|m)

# Files
file-cmdfile1           =
file-cmdfile2           =
file-cmdfile3           =
file-satantfile         =/usr/share/rtklib/ngs_abs.pcv
file-rcvantfile         =/usr/share/rtklib/igs05.atx
file-staposfile         =
file-geoidfile          =
file-ionofile           =
file-dcbfile            =/usr/share/rtklib/P1C1_ALL.DCB
file-eopfile            =
file-blqfile            =
file-tempdir            =
file-geexefile          =
file-solstatfile        =
file-tracefile          =

RTKRCV log file:
image

Questions:

  1. Why am I seeing GPGGA messages instead of GNGGA messages? (When I use str2str, I see GNGGA messages)
  2. Why is my "age" in the log file negative?
  3. How can I check from the log file if I am receiving corrections from the base?
  4. Why is the frequency of logging low, approximately every 20s. GNGGA messages would log every 1 second.

Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant