Sineware Time Service


This is the homepage for Sineware's official stratum-1 NTP time service. It provides accurate and reliable time to Sineware infrastructure, and is the default NTP server for ProLinux.

Any NTP-capable device can synchronize to the Sineware Time Service at time.sineware.ca, standard NTP port 123. We recommend using Chrony as an NTP client daemon on Linux, as it tends to provide the most accurate time sync across different network conditions.

Service Configuration Overview

The time server is based on a Raspberry Pi 3 ARM platform. The source of time is derived from GNSS satellites from a U-Blox NEO-M8N receiver with NMEA messages over serial and PPS over GPIO. Additionally there is a DS3231 RTC for local time storage.

The NEO-M8N is currently configured to receive time signals from atomic clocks onboard GPS, GLONASS and Galileo GNSS satellites. gpsd handles the NEO-M8N and Chrony serves as the NTP server.

Raspberry Pi Time Server
The currently deployed Sineware Time Server v1 hardware.

/etc/chrony/chrony.conf


# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usable directives.

# Include configuration files found in /etc/chrony/conf.d.
confdir /etc/chrony/conf.d

# Use time sources from DHCP.
#sourcedir /run/chrony-dhcp

# Use NTP sources found in /etc/chrony/sources.d.
#sourcedir /etc/chrony/sources.d

# Sineware Time Service
refclock SHM 0 refid NMEA offset 0.15 noselect trust
refclock PPS /dev/pps0 refid PPS lock NMEA trust prefer
allow 0.0.0.0/0

# Backup to NRC
server time.nrc.ca iburst

# This directive specify the location of the file containing ID/key pairs for
# NTP authentication.
keyfile /etc/chrony/chrony.keys

# This directive specify the file into which chronyd will store the rate
# information.
driftfile /var/lib/chrony/chrony.drift

# Save NTS keys and cookies.
ntsdumpdir /var/lib/chrony

# Uncomment the following line to turn logging on.
#log tracking measurements statistics

# Log files location.
logdir /var/log/chrony

# Stop bad estimates upsetting machine clock.
maxupdateskew 100.0

# This directive enables kernel synchronisation (every 11 minutes) of the
# real-time clock. Note that it can't be used along with the 'rtcfile' directive.
rtcsync

# Step the system clock instead of slewing it if the adjustment is larger than
# one second, but only in the first three clock updates.
makestep 1 3

# Get TAI-UTC offset and leap seconds from the system tz database.
# This directive must be commented out when using time sources serving
# leap-smeared time.
leapsectz right/UTC
        

/etc/defaults/gpsd


# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyAMA0 /dev/pps0"

# Other options you want to pass to gpsd
GPSD_OPTIONS="-n"

# Automatically hot add/remove USB GPS devices via gpsdctl
USBAUTO="false"
        

/boot/config.txt

(only the [all] section)


[all]
# Enable the RTC
dtoverlay=i2c-rtc,ds3231
# Disable the bluetooth to gain access to the PL011 UART 
# at /dev/ttyAMA0 on the GPIO headers (over the default less reliable Mini-UART)
dtoverlay=pi3-disable-bt 
enable_uart=1
init_uart_baud=9600

# Disable frequency scaling (more consistent timing)
force_turbo=1

# PPS on GPIO
dtoverlay=pps-gpio,gpiopin=18
  
  
        

© 2023 Seshan Ravikumar