[time-nuts] Four hour cycle in GPS NMEA jitter

Trent Piepho tpiepho at kymetacorp.com
Fri Mar 24 21:08:33 UTC 2017


On Thu, 2017-03-23 at 08:28 +1300, Kiwi Geoff wrote:
> On 3/22/17, Trent wrote:
> > https://goo.gl/photos/JZhBbFKFzkBAykti6
> > Why would a GPS module produce jitter with a pattern like this?
> 
> Trent, I decided to R.T.F.M.    (read the fantastic manual ;-)
> 
> It looks like that in your Telit module, there is a mode called
> 
> -----------------------------------------------
> Client Generated Extended Ephemeris (CGEE)

That sounds very promising!  Your FM is better than my FM, the "JN3
Hardware User Guide" revision 2, which has nothing in it about extended
ephemeris mode.

> CGEE data is always generated for a prediction interval of three days:
> - Consists of 18 blocks of 4-hour EE data blocks
> - Updated when a newly visible satellite is acquired

I'm indoors with a poor view of the sky, so I'm be surprised if new
satellites don't come into view throughout the day.  

> - Updated when new broadcast ephemeris is received from a tracked
> satellite and the current EE data block is nearing expiration

That explains the peak every four hours, assuming the EE data blocks are
synced to start at UTC (n*4):00 and not device power on.

> - On average, it takes 1.2 seconds per satellite for the receiver to
> calculate CGEE

That would easily explain the few outliers at the 4 hour mark.  But
std.dev. sure appears to increase for about 2 hours up to the 4 hour
mark, then rests back to a lower value for about 2 hours before
increasing again.  See attached graphs.  It's even more apparent when I
overlay each hour period on the same X axis.

That doesn't seem to fit the description of CGEE mode, but then again we
don't really know the algorithms used in the GPS receiver.  It's
possible that a calculation involving a 4 hour EE data table takes
longer, and thus produces more jitter in competing threads like NMEA
output, when the computation is using the end of the interval vs the
beginning.  E.g., a linear search for a line in the table to use.

> >From a quick glance at the manual, it looks like this mode can be
> turned off with:
> 
> AT$GPSIFIX=0

Unfortunately, the GPS's design as part of the IRU means I can't write
to it :(.  I'd really like to try that and see what happens.

Obviously the proper fix is to get PPS working and I've known that all
along.  I'm really more interested in the WHY of the four hour cycle.  I
think turning off CGEE will be the only way to know if that's the sole
explanation, or if there is more at play.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stddev.png
Type: image/png
Size: 23984 bytes
Desc: stddev.png
URL: <http://febo.com/pipermail/time-nuts_lists.febo.com/attachments/20170324/80af54c5/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stddev_overlay.png
Type: image/png
Size: 30332 bytes
Desc: stddev_overlay.png
URL: <http://febo.com/pipermail/time-nuts_lists.febo.com/attachments/20170324/80af54c5/attachment-0001.png>


More information about the Time-nuts_lists.febo.com mailing list