NTP PPS Support

Here are my thoughts:

I’m using Angstrom, but I don’t think that’s a consideration–Linux PPS will work on most distros that I’m aware of.

The way this works is, the NTP daemon would have two clock drivers, one for an NMEA GPS and an ATOM driver which provides the PPS function.

The ATOM driver is marked as a preferred source in ntp.conf.
It points to /dev/pps0.

The Linux kernel will let you set one of your GPIO’s to be the PPS device, so that the pulses from your GPS will or should go to the GPIO’s. You are going to need another MAX232. My GPS module does not do any hardware handshaking so I can use a single MAX232–remember that it has two inputs and two outputs. For my device, I have TxD, one output, RxD and DCD, (the PPS signal), two inputs, so I am set. The level shifter I use downstream from there, the 74LVC245, has more inputs than I need. I only need to transmit to the GPS during configuration so I will toggle the level converter when that needs to happen.

Here is the part I haven’t figured out yet: I have the GPIO, it is, if I recall, /dev/gpio ? Linux, and the NTP daemon, expect to see /dev/pps0. I’m not sure what I need to do to associate the GPIO with the PPS driver. That would be something I have to figure out as I go. I don’t know how to do this yet.

But I’m very confident that this will work, even though I have a lot of work left to do with the extra parts of my project (a status display and configuration web server.)