Ceci est une ancienne révision du document !
PPS (Pulse Per Second), envoie une impulsion de synchro.
The PPS signal is extremely useful in accurate timekeeping because the keeping of accurate time using a GPS requires two parts.
1. is the data stream - however its delivered (via ascii, or a binary format) which will typically keep repeating the current time ..(for example, the various NMEA sentence formats) BUT THE TIMING THOSE SENTENCES ARE DELIVERED IN IS UNRELIABLE. (So, you usually dont know when the second changes with any precision.)
2. is the PPS signal which is typically delivered ONLY when the GPS has a high quality fix. *But it does not tell you the time AT ALL* ; however it does tell you *the instant the time changes*, which it is next to impossible to get with regularity from the other stream. (or over USB, because USB's timing changes)
If you have a USB-connected GPS, for that reason, its difficult to impossible, to get a stratum 1 quality time signal from one (which is the whole point, otherwise, just use the net servers) unless you can access the 1PPS pulse.
(Or set up a system based on receiving WWV - which is also pretty easy, just connect the receiver to your sound card to receive the time signals and get the mixer level adjusted correctly. That can be done to test the accuracy of any GPS-based clock you build.)
Any USB-based solution is going to have more jitter than is ideal at best, (45 msec) or be almost as bad as the on board local clock, far worse than a net supplied stratum 2 or 3 server..
The jitter using a stratum 1 time server over the net varies, but it can often be better than that, depending on latency in the intervening hardware “bufferbloat”
So, having a super accurate clock can be super useful in seeing the effects different hardware have on net traffic.
USB can work, it may be more stable than a net connected stratum 1 server under some conditions.. but all bets are off if the USB is connected through a hub or the machine is loaded.
#include <SoftwareSerial.h> // Choose two Arduino pins to use for software serial int RXPin = 2; int TXPin = 3; //Default baud of NEO-6M is 9600 int GPSBaud = 9600; // Create a software serial port called "gpsSerial" SoftwareSerial gpsSerial(RXPin, TXPin); void setup() { // Start the Arduino hardware serial port at 9600 baud Serial.begin(9600); // Start the software serial port at the GPS's default baud gpsSerial.begin(GPSBaud); } void loop() { // Displays information when new sentence is available. while (gpsSerial.available() > 0) Serial.write(gpsSerial.read()); }