### Scratchbuilt CHU Receiver

#### Synopsis

Address: 127.127.7.u
Reference ID: CHU
Driver ID: CHU
Serial Port: `/dev/chuu`; 300 baud, 8-bits, no parity
Features: `chu_clk`

#### Description

This driver supports a shortwave receiver and special modem circuitry described in the ./gadget directory of the xntp3 distribution. It requires the `chu_clk` line discipline or streams module described in the Line Disciplines and Streams Drivers page. It also requires a gadget box and 300-bps modem, such as described in the Pulse-per-second (PPS) Signal Interfacing page.

Unlike the NIST time services, whose timecode requires quite specialized hardware to interpret, the CHU timecode can be received directly via a serial port after demodulation. While there are currently no known commercial CHU receivers, the hardware required to receive the CHU timecode is fairly simple to build. While it is possible to configure several CHU units simultaneously, this is in general not useful.

The `time1` fudge option can be used to set the CHU propagation delay, compensate for inherent latencies in the serial port hardware and operating system. The default value is 0.0025 seconds, which is about right for Toronto. Values for other locations can be calculated using the propdelay program in the util directory of the xntp3 distribution or equivalent means.

The `time2` fudge option can also be used to compensate for inherent latencies in the serial port hardware and operating system. The value, which defaults to zero, is in addition to the propagation delay provided by the time1 option. The default value is 0.0002 seconds, which is about right for typical telephone modem chips.

The `flag1` option can be used to modify the averaging algorithm used to smooth the clock indications. Ordinarily, the algorithm picks the median of a set of samples, which is appropriate under conditions of poor to fair radio propagation conditions. If the clock is located relatively close to the WWV or WWVH transmitters, setting this flag will cause the algorithm to average the set of samples, which can reduce the residual jitter and improve accuracy.

#### Monitor Data

When enabled by the `flag4` fudge flag, every received timecode is written as-is to the `clockstats` file.

#### Fudge Factors

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

`time2 time`
  Not used by this driver.

`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 `CHU`.

`flag1 0 | 1`
  See above.

`flag2 0 | 1`
  Not used by this driver.

`flag3 0 | 1`
  Enable `ppsclock` line discipline/streams module if set.

`flag4 0 | 1`
  Enable `clockstats` recording if set.

Additional Information

Reference Clock Drivers