I'm currently building a satellite clock based on a module which has a label "ubox Neo 6M" stuck on it and I am trying to understand the validity of the time stamps it delivers under circumstances of limited satellite coverage.
When it first starts, it delivers only empty NMEA sentences.
After a certain period it appears to deliver partly populated $GPRMC messages which contain time and stamps and the Data Status field is set to 'V' (navigation receiver warning) . It appears that this happens after 2 or more satellites have come into view but that is not totally clear to me.
After a fix has been achieved, with more satellites coming into view, the $GPRMC messages are fully populated and the Data status field is set to 'A' (active).
If the fix is subsequently lost the Data status field reverts to 'V'.
That is all more or less clear to me. The question is what happens next if the number of satellites in view further diminishes? The module appears to continue to deliver these messages. I'm guessing that at a particular point, these messages can no longer supported by supported by a satellite (or satellites) and are derived wholly from the module's own oscillator.
So, the question is, is there an easy way to determine the status of a timestamp when the Data Status is set to 'V' (navigation receiver warning)?
The reason I want to understand this better is that I will use a real time clock to handle the start up during a power failure. However, there may also be a point at which the RTC would deliver more accurate results that the GPS module with data status "warning"
Sample from http://aprs.gids.nl/nmea/ $GPRMC Recommended minimum specific GPS/Transit data eg1. $GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E*62 eg2. $GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E*68 225446 Time of fix 22:54:46 UTC A Navigation receiver warning A = OK, V = warning 4916.45,N Latitude 49 deg. 16.45 min North 12311.12,W Longitude 123 deg. 11.12 min West 000.5 Speed over ground, Knots 054.7 Course Made Good, True 191194 Date of fix 19 November 1994 020.3,E Magnetic variation 20.3 deg East *68 mandatory checksum eg3. $GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,130694,004.2,W*70 1 2 3 4 5 6 7 8 9 10 11 12 1 220516 Time Stamp 2 A validity - A-ok, V-invalid 3 5133.82 current Latitude 4 N North/South 5 00042.24 current Longitude 6 W East/West 7 173.8 Speed in knots 8 231.8 True course 9 130694 Date Stamp 10 004.2 Variation 11 W East/West 12 *70 checksum eg4. $GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,ddmmyy,x.x,a*hh 1 = UTC of position fix 2 = Data status (V=navigation receiver warning) 3 = Latitude of fix 4 = N or S 5 = Longitude of fix 6 = E or W 7 = Speed over ground in knots 8 = Track made good in degrees True 9 = UT date 10 = Magnetic variation degrees (Easterly var. subtracts from true course) 11 = E or W 12 = Checksum