# rtkrcv options (2022/06/23 07:29:53, v.demo5 b34f.1)
console-passwd =
console-timetype =2 # (0:gpst,1:utc,2:jst,3:tow)
console-soltype =0 # (0:dms,1:deg,2:xyz,3:enu,4:pyl)
console-solflag =2 # (0:off,1:std+2:age/ratio/ns)
inpstr1-type =0 # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripcli,7:ftp,8:http)
inpstr2-type =0 # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripcli,7:ftp,8:http)
inpstr3-type =0 # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripcli,7:ftp,8:http)
inpstr1-path =
inpstr2-path =
inpstr3-path =
inpstr1-format =1 # (0:rtcm2,1:rtcm3,2:oem4,4:ubx,5:swift,6:hemis,7:skytraq,8:javad,9:nvs,10:binex,11:rt17,12:sbf,14,15:sp3)
inpstr2-format =1 # (0:rtcm2,1:rtcm3,2:oem4,4:ubx,5:swift,6:hemis,7:skytraq,8:javad,9:nvs,10:binex,11:rt17,12:sbf,14,15:sp3)
inpstr3-format =1 # (0:rtcm2,1:rtcm3,2:oem4,4:ubx,5:swift,6:hemis,7:skytraq,8:javad,9:nvs,10:binex,11:rt17,12:sbf,14,15:sp3)
inpstr2-nmeareq =0 # (0:off,1:latlon,2:single)
inpstr2-nmealat =0 # (deg)
inpstr2-nmealon =0 # (deg)
inpstr2-nmeahgt =0 # (m)
outstr1-type =0 # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,5:ntripsvr,9:ntripcas)
outstr2-type =0 # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,5:ntripsvr,9:ntripcas)
outstr1-path =
outstr2-path =
outstr1-format =nmea # (0:llh,1:xyz,2:enu,3:nmea,4:stat)
outstr2-format =nmea # (0:llh,1:xyz,2:enu,3:nmea,4:stat)
logstr1-type =0 # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,5:ntripsvr,9:ntripcas)
logstr2-type =0 # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,5:ntripsvr,9:ntripcas)
logstr3-type =0 # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,5:ntripsvr,9:ntripcas)
logstr1-path =
logstr2-path =
logstr3-path =
misc-svrcycle =10 # (ms)
misc-timeout =30000 # (ms)
misc-reconnect =30000 # (ms)
misc-nmeacycle =5000 # (ms)
misc-buffsize =32768 # (bytes)
misc-navmsgsel =0 # (0:all,1:rover,2:base,3:corr) important; this must be 0!!!
misc-proxyaddr =
misc-fswapmargin =30 # (s)
misc-startcmd =
misc-stopcmd =
file-cmdfile1 =
file-cmdfile2 =
file-cmdfile3 =
pos1-posmode =2 # (0:single,1:dgps,2:kinematic,3:static,4:static-start,5:movingbase,6:fixed,7:ppp-kine,8:ppp-static,9:ppp-fixed)
# "l1" for single frequency receivers, "l1+l2" if the rover is dual frequency GPS/GLONASS/Bediou,
# "l1+l2+e5b" if Galileo E5b is included.
# Starting with the dem05 b33 code, Galileo E5b is included in the L2 solution, so "l1+l2" is equivalent to "l1+l2+e5b"
pos1-frequency =2 # (1:l1,2:l1+l2,3:l1+l2+l5,4:l1+l2+l5+l6)
# This is the direction in time that the kalman filter is run. For real-time processing,
# "forward" is your only choice.
pos1-soltype =0 # (0:forward,1:backward,2:combined,3:combined-nophasereset)
# Minimum satellite elevation for use in calculating position. I usually set this to
# 10-15 degrees to reduce the chance of bringing multipath into the solution but this
# setting will be dependent on the rover environment. The more open the sky view,
# the lower this value can be set to.
pos1-elmask =15 # (deg)
# Minimum satellite SNR for rover (_r) and base(_b) for use in calculating position. Can be a more effective criteria for eliminating
# poor satellites than elevation because it is a more direct measure of signal quality but the optimal value will vary with receiver
# type and antenna type so I leave it off most of the time to avoid the need to tune it for each application.
pos1-snrmask_r =off # (0:off,1:on)
pos1-snrmask_b =off # (0:off,1:on)
pos1-snrmask_L1 =0,0,0,0,0,0,0,0,0
pos1-snrmask_L2 =0,0,0,0,0,0,0,0,0
pos1-snrmask_L5 =0,0,0,0,0,0,0,0,0
# Enabling rover dynamics adds velocity and acceleration states to the kalman filter for the rover.
# It will improve "kinematic" and "static-start" results, but will have little or no effect on "static" mode.
# The release code will run noticeably slower with dynamics enabled but the demo5 code should be OK.
# Be sure to set "prnaccelh" and "prnaccelv" appropriately for your rover acceleration characteristics.
# Rover dynamics is not compatible with "movingbase" mode, so turn it off when using that mode.
pos1-dynamics =1 # (0:off,1:on)
pos1-tidecorr =off # (0:off,1:on,2:otl)
pos1-ionoopt =brdc # (0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec,5:ionex-tec,6:qzs-brdc)
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,2:precise)
pos1-posopt4 =off # (0:off,1:on)
pos1-posopt5 =off # (0:off,1:on)
pos1-posopt6 =off # (0:off,1:on)
pos1-exclsats = # (prn ...)
pos1-navsys =41+32 # (1:gps+2:sbas+4:glo+8:gal+16:qzs+32:bds+64:navic)
#------------------------------------------------------------------------pos2
# I prefer to use "fix-and-hold" and adjust the tracking gain (pos2-varholdamb) low enough to minimize
# the chance of a false fix. If "armode" is not set to "fix-and-hold" then any of the options below
# that refer to holds don't apply, including pos2-gloarmode.
pos2-armode =3 # (0:off,1:continuous,2:instantaneous,3:fix-and-hold)
pos2-gloarmode =off # (0:off,1:on,2:autocal,3:fix-and-hold)
pos2-bdsarmode =1 # (0:off,1:on)
# I generally always leave this at the default value of 3.0 and adjust all the other parameters to
# work around this one. Although a larger AR ratio indicates higher confidence than a low AR ratio,
# there is not a fixed relationship between the two.
# The larger the errors in the kalman filter states, the lower the confidence in that solution will
# be for a given AR ratio. Generally the errors in the kalman filter will be largest when it is first
# converging so this is the most likely time to get a false fix. Reducing pos2-arthers1 can help avoid this.
pos2-arthres =3.0 #?
pos2-arthresmin =1.5
pos2-arthresmax =5.0
# Number of samples to delay a new sat or sat recovering from a cycle-slip before using it for integer
# ambiguity resolution. Avoids corruption of the AR ratio from including a sat that hasn?ft had time to
# converge yet. Use in conjunction with "arfilter". Note that the units are in samples, not units
# of time, so it must be adjusted if you change the rover measurement sample rate. I usually set this
# to zero for u-blox receivers which are very good at flagging questionable observations but set it to
# at least five for other receivers. If not using the demo5 RTKLIB code, set this higher since the
# arfilter feature is not supported.
pos2-arlockcnt =0 #Note that the units are in samples, not units of time
# Functionally no different from the default of zero, since elevations less than "elmask" will not be
# used for holding ambiguity resolution results but I changed it to avoid confusion.
pos2-arelmask =15 # (deg)
# Number of consecutive fix samples needed to hold the ambiguities. Increasing this is probably the
# most effective way to reduce false holds, but will also increase time to first hold and time to
# reacquire a hold. As the ambiguity tracking gain is reduced (i.e. as pos2-varholdamb is increased),
# and the number of observations increases, arminfix can be reduced. Note that this value should also
# be adjusted if the rover measurement sample rate changes.
pos2-arminfix =50 #pos2-arminfix = 20-100 (5-20*sample rate)
# Functionally no different from the default of zero, since elevations less than "elmask" will not be
# used for holding ambiguity resolution results but I changed it to avoid confusion.
pos2-elmaskhold =15 # (deg)
#slip th dopper hz?
pos2-slipthres =0.05 # (m)
# Maximum delay between rover measurement and base measurement (age of differential) in seconds.
# This usually occurs because of missing measurements from a misbehaving radio link.
# I've increased it from the default because I found I was often still getting good results
# even when this value got fairly large, assuming the dropout occurred after first fix-and-hold.
pos2-maxage =100 # (s) pos2-maxage = 100
#----
#? outs to reset amb
#----
pos2-rejgdop =30
# Reject a measurement if its pre-fit residual is greater than this value in meters. I have found
# thatRTKLIB does not handle outlier measurements well, so I set this large enough to effectively
# disableit.
# With non-ublox receivers which typically are not as good at flagging outliers, I sometimes have
# to set this back to the default of 30 or even lower to attempt to handle the outliers but this is a
# trade-off because it can then cause other issues, particularly with initial convergence of the
# kalman filter.
pos2-rejionno =30.0 # (m) pos2-rejionno = 1000, 0.2
pos2-armaxiter =1
pos2-syncsol =off # (0:off,1:on)
pos2-niter =1
pos2-baselen =0 # (m)
pos2-basesig =0 # (m)
# Minimum number of sats necessary to get a fix. Used to avoid false fixes from a very small number of satellites,
# especially during periods of frequent cycle-slips.
pos2-minfixsats =4
# Minimum number of sats necessary to hold an integer ambiguity result. Used to avoid false holds from a very small
# number of satellites, especially during periods of frequent cycle-slips.
pos2-minholdsats =5
# Minimum number of sats necessary to enable exclusion of a single satellite from ambiguity resolution each epoch.
# In each epoch a different satellite is excluded. If excluding the satellite results in a significant improvement
# in the AR ratio, then that satellite is removed from the list of satellites used for AR.
pos2-mindropsats =10
#----
#? Max pos var for AR ==> pos2-arthres1
#----
# Setting this to on will qualify new sats or sats recovering from a cycle-slip. If a sat significantly
# degrades the AR ratio when it is first added, its use for ambiguity resolution will be delayed.
# Turning this on should allow you to reduce "arlockcnt" which serves a similar purpose but with a blind delay count.
pos2-arfilter =on # (0:off,1:on)
# In the demo5 code, the tracking gain for fix-and-hold can be adjusted with this parameter.
# It is actually a variance rather than a gain, so larger values will give lower gain.
# 0.001 is the default value, anything over 100 will have very little effect.
# This value is used as the variance for the pseudo-measurements generated during a hold which provide
# feedback to drive the bias states in the kalman filter towards integer values.
# I find that values from 0.1 to 1.0 provides enough gain to assist with tracking while still avoiding
# tracking of false fixes in most cases.
pos2-varholdamb =0.1 # (cyc^2)
# In the demo5 code, the gain of the inter-channel bias calibration for the GLONASS satellites can be
# adjusted with this parameter.
pos2-gainholdamb =0.01
#? No matching fields in windows version
# Arthres1 is the "Max Pos Var for AR", arthres2 is the "GLO HW Bias". Arthres3 and arthres4 are not
# adjusted in normal operation and they are not configurable in RTKPOST.
# Number of consecutive missing samples that will cause the ambiguities to be reset. Again, this value needs
# to be adjusted if the rover measurement sample rate changes.
pos2-aroutcnt =100 #pos2-aroutcnt = 100 (20*sample rate)
pos2-dopthres =0 # (m)
# Integer ambiguity resolution is delayed until the variance of the position state has reached this
# threshold. It is intended to avoid false fixes before the bias states in the kalman filter have had
# time to converge. It is particularly important to set this to a relatively low value if you have set
# eratio1 to values larger than 100 or are using a single constellation solution. If you see AR ratios
# of zero extending too far into your solution, you may need to increase this value since it means
# ambiguity resolution has been disabled because the threshold has not been met yet. I find 0.004 to 0.10
# usually works well for me but if your measurements are lower quality you may need to increase this to
# avoid overly delaying first fix or losing fix after multiple cycle slips have occurred.
pos2-arthres1 =0.1 #? pos2-arthres1 = 0.004-0.10
# arthres2 is the "GLO HW Bias"
pos2-arthres2 =0 #?
pos2-arthres3 =1e-09 #?
pos2-arthres4 =1e-05 #?
#------------------------------------------------------------------------pos2
out-solformat =llh # (0:llh,1:xyz,2:enu,3:nmea)
out-outhead =on # (0:off,1:on)
out-outopt =off # (0:off,1:on)
out-outvel =off # (0:off,1:on)
out-timesys =gpst # (0:gpst,1:utc,2:jst)
out-timeform =tow # (0:tow,1:hms)
out-timendec =3
out-degform =deg # (0:deg,1:dms)
out-fieldsep =
out-outsingle =off # (0:off,1:on)
out-maxsolstd =0 # (m)
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 =off # (0:off,1:state,2:residual)
# Ratio of the standard deviations of the pseudorange measurements to the carrier-phase measurements.
# I have found a larger value works better for low-cost receivers, but that the default value of
# 100 often work better for more expensive receivers since they have less noisy pseudorange measurements.
# Larger values tend to cause the kalman filter to converge faster and leads to faster first fixes but
# it also increases the chance of a false fix. If you increase this value, you should set pos2-arthres1
# low enough to prevent finding fixes before the kalman filter has had time to converge.
# I believe increasing this value has a similar effect to increasing the time constant on a pseudorange
# smoothing algorithm in that it filters out more of the higher frequencies in the pseudorange measurements
# while maintaining the low frequency components.
stats-eratio1 =300
stats-eratio2 =300
stats-eratio5 =300
stats-errphase =0.003 # (m)
stats-errphaseel =0.003 # (m)
stats-errphasebl =0 # (m/10km)
stats-errdoppler =1 # (Hz)
stats-snrmax =52 # (dB.Hz)
stats-errsnr =0 # (m)
stats-errrcv =0 # ( )
stats-stdbias =30 # (m)
stats-stdiono =0.03 # (m)
stats-stdtrop =0.3 # (m)
# If receiver dynamics are enabled, use this value to set the standard deviation of the rover
# receiver acceleration in the horizontal components. This value should include accelerations
# at all frequencies, not just low frequencies. It should characterize any movements of the rover
# antenna, not just movements of the complete rover so it may be larger than you think.
# It will include accelerations from vibration, bumps in the road, etc as well as the more
# obvious rigid-body accelerations of the whole rover.
# It can be estimated by running a solution with this value set to a large value, then examining
# the accel values in the solution file with RTKPLOT
stats-prnaccelh =1 # (m/s^2)
# The comments about horizontal accelerations apply even more to the vertical acceleration component
# since in many applications the intentional accelerations will all be in the horizontal components.
# It is best to derive this value from actual GPS measurement data rather than expectations of
# the rigid-body rover. It is better to over-estimate these values than to under-estimate them.
stats-prnaccelv =0.1 # (m/s^2)
stats-prnbias =0.0001 # (m)
stats-prniono =0.001 # (m)
stats-prntrop =0.0001 # (m)
stats-prnpos =0 # (m)
stats-clkstab =5e-12 # (s/s)
ant1-postype =0 # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm,6:raw)
ant1-pos1 =0 # (deg|m)
ant1-pos2 =0 # (deg|m)
ant1-pos3 =0 # (m|m)
ant1-anttype =
ant1-antdele =0 # (m)
ant1-antdeln =0 # (m)
ant1-antdelu =0 # (m)
ant2-postype =5 # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm,6:raw)
ant2-pos1 =0 # (deg|m)
ant2-pos2 =0 # (deg|m)
ant2-pos3 =0 # (m|m)
ant2-anttype =
ant2-antdele =0 # (m)
ant2-antdeln =0 # (m)
ant2-antdelu =0 # (m)
ant2-maxaveep =1
ant2-initrst =on # (0:off,1:on)
misc-timeinterp =off # (0:off,1:on)
misc-sbasatsel =0 # (0:all)
misc-rnxopt1 =
misc-rnxopt2 =
misc-pppopt =
file-satantfile =
file-rcvantfile =
file-staposfile =
file-geoidfile =
file-ionofile =
file-dcbfile =
file-eopfile =
file-blqfile =
file-tempdir =
file-geexefile =
file-solstatfile =
file-tracefile =