<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
<html><head><title>
Heath WWV/WWVH Receiver
</title></head><body><h3>
Heath WWV/WWVH Receiver
</h3><hr>

<p><h4>Synopsis</h4>

<p>Address: 127.127.19.<var>u</var>
<br>Reference ID: WWV
<br>Driver ID: WWV_HEATH
<br>Serial Port: <code>/dev/heath<var>u</var></code>; 1200 baud, 8-bits,
no parity
<br>Features: <code>tty_clk</code>
<br>Requires: <code>/usr/include/sys/termios.h</code> header file with
modem control

<p><h4>Description</h4>

<p>This driver supports the Heath GC-1000 Most Accurate Clock, with
RS232C Output Accessory. This is a WWV/WWVH receiver somewhat less
robust than other supported receivers. Its claimed accuracy is 100 ms
when actually synchronized to the broadcast signal, but this doesn't
happen even most of the time, due to propagation conditions, ambient
noise sources, etc. When not synchronized, the accuracy is at the whim
of the internal clock oscillator, which can wander into the sunset
without warning. Since the indicated precision is 100 ms, expect a host
synchronized only to this thing to wander to and fro, occasionally being
rudely stepped when the offset exceeds the default CLOCK_MAX of 128 ms.

<p>The internal DIPswitches should be set to operate at 1200 baud in
MANUAL mode and the current year. The external DIPswitches should be set
to GMT and 24-hour format. It is very important that the year be set
correctly in the DIPswitches; otherwise, the day of year will be
incorrect after 28 April of a normal or leap year.

<p>In MANUAL mode the clock responds to a rising edge of the request to
send (RTS) modem control line by sending the timecode. Therefore, it is
necessary that the operating system implement the <code>TIOCMBIC</code>
and <code>TIOCMBIS</code> ioctl system calls and <code>TIOCM_RTS</code>
control bit. Present restrictions require the use of a POSIX-compatible
programming interface, although other interfaces may work as well.

<p>The clock message consists of 23 ASCII printing characters in the
following format:

<pre>
hh:mm:ss.f     dd/mm/yr&lt;cr&gt;

hh:mm:ss.f = hours, minutes, seconds
f = deciseconds ('?' when out of spec)
dd/mm/yr = day, month, year
</pre>

<p>The alarm condition is indicated by '?', rather than a digit, at A.
Note that 0?:??:??.? is displayed before synchronization is first
established and hh:mm:ss.? once synchronization is established and then
lost again for about a day.

<p>A fudge time1 value of .07 s appears to center the clock offset
residuals.

<p><h4>Monitor Data</h4>

<p>When enabled by the <code>flag4</code> fudge flag, every received
timecode is written as-is to the <code>clockstats</code> file.
<p><h4>Fudge Factors</h4>

<dl>

<dt><code>time1 <i>time</i></code>
<dd>Specifies the time offset calibration factor, in seconds and
fraction, with default 0.0.

<p><dt><code>time2 <i>time</i></code>
<dd>Not used by this driver.

<p><dt><code>stratum <i>number</i></code>
<dd>Specifies the driver stratum, in decimal from 0 to 15, with default
0.

<p><dt><code>refid <i>string</i></code>
<dd>Specifies the driver reference identifier, an ASCII string from one
to four characters, with default <code>WWV</code>.

<p><dt><code>flag1 0 | 1</code>
<dd>Not used by this driver.

<p><dt><code>flag2 0 | 1</code>
<dd>Not used by this driver.

<p><dt><code>flag3 0 | 1</code>
<dd>Enable <code>ppsclock</code> line discipline/streams module if set.

<p><dt><code>flag4 0 | 1</code>
<dd>Enable <code>clockstats</code> recording if set.

</dl>

<p>Additional Information

<p><a href="refclock.html"> Reference Clock Drivers</a>

<hr><address>David L. Mills (mills@udel.edu)</address></body></html>
