Network Time from a GPS Micro-Server

Started by t35tB0t, September 18, 2015, 08:02:01 AM

Previous topic - Next topic

t35tB0t

With a bit of effort, we can run a UART GPS puck with precision PPS on the RT5350F and make a network micro time server with usec accuracy!   This project uses the Garmin 18x LVC connected to UARTF and PPS on GPIO0. A level inverter and translator is needed as well as modifying and recompiling the NTP package.  Both stock GPSd and NTPd are broken in the current OpenWRT repositories.  Both will not attach to a PPSAPI device.  This can be fixed with a simple file added to the package include folder.  The device tree file also is modified to assign the GPIO pin as a pps device.  One of the Olimex EVB relays can be used to power cycle the GPS puck if ever needed.  Config file settings and details can be posted if anyone is interested in avoiding late nights and a string of headaches to make this micro time server.

t35tB0t

UPDATE: NTPd with GPS/PPS working on RT5350F.  I'm using direct pull from OpenWrt branch "Designated Driver" w/3.18.21 kernel.  Software stability is great. System default is using systick timer which has 50KHz resolution.  This is limiting NTPd/HardPPS to 20usec (jitter) vs 1 usec possible from the GPS PPS source.  Improving this will require finding or writing code to create systick on RT5350F's timer0 (which appears to unused).  If anyone knows how to mess with systick code, I'd be happy to hear about the details.