# Spectracom

## 1. Synopsis

    Name: spectracom
    Reference ID: GPS
    Serial Port: /dev/spectracomu; 9600 bps 8N1
    Features: Optional PPS signal processing, tty_clk
    Requires: Optional PPS signal processing requires the PPSAPI signal interface.

## 2. Deprecation warning

This refclock is deprecated and obsolete. The NTPsec maintainers plan to remove it in a future release. If you have a requirement for it, please make this known to us.

This driver reports only two-digit years, and is thus reliant on the system clock to be near correct before samples will be processed properly. You will not be able to use it to run autonomously, nor will it reliably recover from a trashed or zeroed system clock.

It is likely any surving instances of this hardware will have era-rollover issues when reporting dates. One or more "g" suffixes on your time1 option may be useful as a workaround.

## 3. Description

This driver supports the "Type 2" format emitted by Spectracom time servers including the 9483, 9489, and SecureSync.

In former times this driver supported the Spectracom 9300 (now end-of-lifed) and several models of Spectracom radio clocks that were obsolesced by the WWVB modulation change at 2012-10-29T15:00:00Z.

There are two timecode formats used by these clocks. Format 0, which is available with all clocks, and format 2, which is available with all clocks except the obsolete Model 8170. Consult your vendor documentation for information on how to enable these formats.

    Format 0 (22 ASCII printing characters):
    <cr><lf>i ddd hh:mm:ss TZ=zz<cr><lf>

    on-time = first <cr>
    i = synchronization flag (' ' = in synch, '?' = out synch)
    hh:mm:ss = hours, minutes, seconds

The alarm condition is indicated by other than ' ' at `i`, which occurs during initial synchronization and when received signal is lost for about ten hours.

    Format 2 (24 ASCII printing characters):
    <cr>lf>iqyy ddd hh:mm:ss.fff ld

    on-time = <cr>
    i = synchronization flag (' ' = in synch, '?' = out synch)
    q = quality indicator (' ' = locked, 'A'...'D' = unlocked)
    yy = year (as broadcast)
    ddd = day of year
    hh:mm:ss.fff = hours, minutes, seconds, milliseconds

The alarm condition is indicated by other than ' ' at `i`, which occurs during initial synchronization and when received signal is lost for about ten hours. The unlock condition is indicated by other than ' ' at `q`.

The `q` is normally ' ' when the time error is less than 1 ms and a character in the set `A…​D` when the time error is less than 10, 100, 500 and greater than 500 ms respectively. The `l` is normally ' ', but is set to `L` early in the month of an upcoming UTC leap second and reset to ' ' on the first day of the following month. The `d` is set to `S` for standard time `S`, `I` on the day preceding a switch to daylight time, `D` for daylight time and `O` on the day preceding a switch to standard time. The start bit of the first <cr> is synchronized to the indicated time as returned.

This driver does not need to be told which format is in use - it figures out which one from the length of the message. A three-stage median filter is used to reduce jitter and provide a dispersion measure. The driver makes no attempt to correct for the intrinsic jitter of the radio itself, which is a known problem with the older radios.

## 4. PPS Signal Processing

When PPS signal processing is enabled; and when the system clock has been set by this or another driver; and the PPS signal offset is within 0.4 s of the system clock offset; then the PPS signal replaces the timecode for as long as the PPS signal is active. If for some reason the PPS signal fails for one or more poll intervals, the driver reverts to the timecode. If the timecode fails for one or more poll intervals, the PPS signal is disconnected.

## 5. Monitor Data

The driver writes each timecode as received to the `clockstats` file. When enabled by the `flag4` option, a table of quality data maintained internally by the Netclock/2 is retrieved and written to the `clockstats` file when the first timecode message of a new day is received.

## 6. Driver Options

`unit` number

  The driver unit number, defaulting to 0. Used as a distinguishing suffix in the driver device name.

`time1` time

  Specifies the PPS time offset calibration factor, in seconds and fraction, with default 0.0.

`time2` time

  Specifies the serial time offset calibration factor, in seconds and fraction, with default 0.0.

`stratum` number

  Specifies the driver stratum, in decimal from 0 to 15, with default 0.

`refid` string

  Specifies the driver reference identifier, an ASCII string from one to four characters, with default `GPS`.

`flag1 {0 | 1}`

  Disable PPS signal processing if 0 (default); enable PPS signal processing if 1.

`flag2 {0 | 1}`

  If PPS signal processing is enabled, capture the pulse on the rising edge if 0 (default); capture on the falling edge if 1.

`flag3 {0 | 1}`

  If PPS signal processing is enabled, use the `ntpd` clock discipline if 0 (default); use the kernel discipline if 1.

`flag4 {0 | 1}`

  Enable verbose `clockstats` recording if set.

`subtype`

  Not used by this driver.

`mode`

  Not used by this driver.

`path` filename

  Overrides the default device path.

`ppspath` filename

  Not used by this driver.

`baud` number

  Overrides the default baud rate.

## 7. Configuration Example

    refclock spectracom

## 8. Author

David L. Mills <mills@udel.edu>

Home Page | Site Map | Contacts