<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<title>Ultralink Clock</title>
		<link href="scripts/style.css" type="text/css" rel="stylesheet">
	</head>

	<body>
		<h3>Ultralink Clock</h3>
<p>Last update:
  <!-- #BeginDate format:En2m -->31-Dec-2007  19:43<!-- #EndDate -->
  UTC</p>
		<hr>
		<h4>Synopsis</h4>
		<p>Address: 127.127.34.<i>u</i><br>
				Reference ID: <tt>WWVB</tt><br>
				Driver ID: <tt>ULINK</tt><br>
				Serial Port: <tt>/dev/wwvb<i>u</i></tt>; 9600 bps, 8-bits, no parity<br>
				Features: <tt>(none)</tt></p>
		<h4>Description</h4>
		<p>This driver supports the Ultralink Model 325 (replacement for Model 320) RS-232 powered WWVB receiver. PDF specs available on <a href="http://www.ulio.com/">http://www.ulio.com/</a>. This driver also supports the Model 320, 330,331,332 decoders in both polled or continous time code mode.Leap second and quality are supported. Most of this code is originally from refclock_wwvb.c with thanks. Any mistakes are mine. Any improvements are welcome.</p>
		<h4>Model 325 timecode format</h4>
		<p><tt>&lt;cr&gt;&lt;lf&gt;RQ_1C00LYYYY+DDDUTCS_HH:MM:SSL+5</tt></p>
		<p>R = Signal readability indicator, ranging from R1 to R5 Q R1 is unreadable, R5 is best reception<br>
				_ = Space<br>
			1 = prev. received data bit, values: 0, 1 ,M or ? unknown
		C = Signal reception from (C)olorado or (H)awaii 0 = Hours since last WWVB time and flag code update, values 0 00 to 99 (hopefully always 00)<br>
				L = HEX A5 if receiver is locked to WWVB, Space if not<br>
				YYYY = Year from 2000 to 2099<br>
				+ = '+' if current year is a leap year, else ' '<br>
				DDD = current day in the year from 1 to 365/366<br>
				UTC = timezone (always UTC)<br>
				S = Daylight savings indicator, (S)TD, (D)ST, (O) transition into DST, (I) transition out of DST<br>
				_ = Space<br>
				HH = UTC hour 0 to 23<br>
				: = Time delimiter, ':' if synced, Space if not<br>
		   MM = Minutes of current hour from 0 to 59<br>
				: = Time delimiter, ':' if synced, Space if not<br>
				SS = Seconds of current minute from 0 to 59<br>
				mm = 10's milliseconds of the current second from 00 to 99<br>
				L = Leap second pending at end of month, (I)nsert, (D)elete or Space<br>
				+5 = UT1 correction, +/- .1 sec increments</p>
		<p>Note that Model 325 reports a very similar output like Model 33X series. The driver for this clock is similar to Model 33X behavior. On a unmodified new ULM325 clock, the polling flag (flag1 =1) needs to be set.</p>
		<h4>Model 320 timecode format</h4>
		<p><tt>&lt;cr&gt;&lt;lf&gt;SQRYYYYDDD+HH:MM:SS.mmLT&lt;cr&gt;</tt></p>
		<p>S = 'S' -- sync'd in last hour, '0'-'9' - hours x 10 since last update, else '?'<br>
				Q = Number of correlating time-frames, from 0 to 5<br>
				R = 'R' -- reception in progress,'N' -- Noisy reception, ' ' -- standby mode<br>
				YYYY = year from 1990 to 2089<br>
				DDD = current day from 1 to 366 + = '+' if current year is a leap year, else ' '<br>
				HH = UTC hour 0 to 23<br>
				MM = Minutes of current hour from 0 to 59<br>
				SS = Seconds of current minute from 0 to 59<br>
				mm = 10's milliseconds of the current second from 00 to 99<br>
				L = Leap second pending at end of month -- 'I' = insert, 'D'=delete<br>
			T = DST &lt;-&gt; STD transition indicators</p>
		<p>Note that this driver does not do anything with the T flag. The M320 also has a 'U' command which returns UT1 correction information. It is not used in this driver.</p>
		<h4>Model 33x timecode format</h4>
		<p><tt>S9+D 00 YYYY+DDDUTCS HH:MM:SSl+5</tt></p>
		<p>S = sync indicator S insync N not in sync the sync flag is WWVB decoder sync nothing to do with time being correct </p>
		<p>9+ = signal level 0 thru 9+ If over 9 indicated as 9<br>
				D = data bit (fun to watch but useless ;-) space<br>
				00 = hours since last GOOD WWVB frame sync space<br>
				YYYY = current year + = leap year indicator<br>
				DDD = day of year<br>
				UTC = timezone (always UTC)<br>
				S = daylight savings indicator space<br>
				HH = hours : = This is the REAL in sync indicator (: = insync)<br>
				MM = minutes : = : = in sync ? = NOT in sync<br>
				SS = seconds<br>
				L = leap second flag<br>
				+5 = UT1 correction (sign + digit ))</p>
		<p>This driver ignores UT1 correction, DST indicator,Leap year and signal level.</p>
		<h4>Fudge factors</h4>
		<p>flag1 polling enable (1=poll 0=no poll)</p>
		<hr>
		<script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
	</body>
</html>
