Had a breakthrough. When I pressed some of the buttons on the door, it magically got the correct time on the screen. I changed the startup code to wait for serial data to be available by using the feedgps function, then called the gps.encode line for the Time library to read, and now it seems to be getting the correct time at startup.
Serial.println("Waiting for GPS Time..."); // debug
setSyncProvider(gpsTimeSync);
while(feedgps() != true) { // if feedgps is false
delay(50); // take a breath
}
gps.encode(Serial3.read()); // process gps messages
Thanks,
Eddie Schnell