[time-nuts] TruePosition and Arduino Progress

Ben Hall kd5byb at gmail.com
Sun May 21 09:45:19 EDT 2017

Good morning all,

A quick update for those interested on my Arduino code development for 
the TruePosition boards.  I've got Arduino code together than can read 
in the serial stream, parse it, and display time, date, number of 
satellites, and TFOM on a 2x16 LCD display.  It does not do multiple 
screens, handle survey, or display lat/long yet.

What I'm having issues with is handling the 1 PPS.  Ideally, I want to 
use the 1PPS signal to trigger the display update.  IE:

void loop()
getSerialString()  // uses serial.available to pull in the serial data

parser()  // this parses the data

wait for 1PPS tick to go high

if there has been a clock message, updateDispay()  // update the display

This works great when there is a just a clock message.  But when there 
is a clock message, an extstatus message, and a status message, it seems 
like it is still parsing when the 1PPS tick comes in...so it will 
display seconds as follows:  30, 31, 33, 34, 35, 36, 37, 39, etc...

(If I don't wait for the 1PPS tick, it seems that my clock is one second 
fast.  I say "seems" to be fast, as the time agrees with an NTP clock on 
one computer, but seems a half second slow per GPSCon's time display on 
the Z3801.  I think I need to put up the antenna and check against WWV.)

I've got one of those cheap little USB logic analyzers on order to 
figure out how much time elapses between the clock, extstatus, status, 
and 1PPS tick.  I may need something faster than an Arduino Uno to do this.

I'm sure there is a way to do this with an interrupt...but I couldn't 
make that work yesterday.  More to follow.

thanks much and 73,
ben, kd5byb

More information about the time-nuts mailing list