Radio Timecode Formats (README.timecodes)

Following are examples of the serial timecode formats used by various
timecode receivers as given in the instruction manuals. These examples
are intended only for illustration and not as the basis of system
design. The following symbols are used to identify the timecode
character that begins a subfield. The values given after this symbol
represent the character offset from the beginning of the timecode string
as edited to remove control characters.

C         on-time character (start bit)
Y         year of century
T         time of day
D         day of year or month/day
A         alarm indicator (format specific)
Q         quality indicator (format specific)
<LF>      ASCII line feed (hex 0a)
<CR>      ASCII carriage return (hex 0d)
<SP>      ASCII space (hex 20)

In order to promote uniform behavior in the various implementations, it
is useful to have a common interpretation of alarm conditions and signal
quality. When the alarm indicator it on, the receiver is not operating
correctly or has never synchronized to the broadcast signal. When the
alarm indicator is off and the quality indicator is on, the receiver has
synchronized to the broadcast signal, then lost the signal and is
coasting on its internal oscillator.

In the following uppercase letters, punctuation marks and spaces <SP>
stand for themselves; lowercase letters stand for fields as described.
Special characters other than <LF>, <CR> and <SP> are preceded by ^.

Spectracom 8170 and Netclock/2 WWV Synchonized Clock (format 0)

"<CR><LF>i  ddd hh:mm:ss  TZ=zz<CR><LF>"
 C       A  D   T

     poll: ?; offsets: Y = none, D = 3, T = 7, A = 0, Q = none
     i = synchronization flag (<SP> = in synch, ? = out synch)
     ddd = day of year
     hh:mm:ss = hours, minutes, seconds
     zz = timezone offset (hours from UTC)

     Note: alarm condition is indicated by other than <SP> at A, which
     occurs during initial synchronization and when received signal has
     been lost for about ten hours

     example: "   216 15:36:43  TZ=0"
               A  D   T

Netclock/2 WWV Synchonized Clock (format 2)

"<CR><LF>iqyy ddd hh:mm:ss.fff ld"
 C       AQY  D   T

     poll: ?; offsets: Y = 2, D = 5, T = 9, A = 0, Q = 1
     i = synchronization flag (<SP> = in synch, ? = out synch)
     q = quality indicator (<SP> < 1ms, A < 10 ms, B < 100 ms, C < 500
     ms, D > 500 ms)
     yy = year (as broadcast)
     ddd = day of year
     hh:mm:ss.fff = hours, minutes, seconds, milliseconds of day
     l = leap-second warning (L indicates leap at end of month)
     d = standard/daylight time indicator (<SP> standard, D daylight)

     Note: alarm condition is indicated by other than <SP> at A, which
     occurs during initial synchronization and when received signal has
     been lost for about ten hours; unlock condition is indicated by
     other than <SP> at Q, with time since last lock indicated by the
     letter code A < 13 min, B < 1.5 hr, C < 7 hr, D > 7 hr.

     example: "  92 216 15:36:43.640  D"
               AQ   D   T

TrueTime 468-DC Satellite Synchronized Clock (and other TrueTime
receivers)

"<CR><LF><^A>ddd:hh:mm:ssq<CR>"
              D   T       QC

     poll: none; offsets: Y = none, D = 0, T = 4, A = 12, Q = 12
     hh:mm:ss = hours, minutes, seconds
     q = quality/alarm indicator (<SP> = locked, ? = alarm)

     Note: alarm condition is indicated by ? at A, which occurs during
     initial synchronization and when received signal is lost for an
     extended period; unlock condition is indicated by other than <SP>
     at Q

     example: "216:15:36:43 "
               D   T       Q

Heath GC-1000 Most Accurate Clock (WWV/H)

"<CR>hh:mm:ss.f     dd/mm/yy<CR>"
 C   T        A     D

     poll: none; offsets: Y = none, D = 15, T = 0, A = 9, Q = none
     hh:mm:ss = hours, minutes, seconds
     f = deciseconds (? when out of spec)
     dd/mm = day, month
     yy = year of century (from DIPswitches)

     Note: 0?:??:??.? is displayed before synch is first established and
     hh:mm:ss.? once synch is established and then lost again for about
     a day.

     example: "15:36:43.6     04/08/91"
               T        A     D     Y

PST/Traconex 1020 Time Source (WWV/H) (firmware revision V4.01)

"frdzycchhSSFTttttuuxx<CR>" "ahh:mm:ss.fffs<CR>" "yy/dd/mm/ddd<CR>"
          A   Q               T                   Y  D

     poll: "QMQDQT"; offsets: Y = 0, D = 3 T = 1,, A = 11, Q = 13
     f = frequency enable (O = all frequencies enabled)
     r = baud rate (3 = 1200, 6 = 9600)
     d = features indicator (@ = month/day display enabled)
     z = time zone (0 = UTC)
     y = year (5 = 1991)
     cc = WWV propagation delay (52 = 22 ms)
     hh = WWVH propagation delay (81 = 33 ms)
     SS = status (80 or 82 = operating correctly)
     F = current receive frequency (1-5 = 2.5, 5, 10, 15, 20 MHz)
     T = transmitter (C = WWV, H = WWVH)
     tttt = time since last update (minutes)
     uu = flush character (03 = ^C)
     xx = 94 (unknown) (firmware revision X4.01.999 only)

     a = AM/PM indicator (A = AM, P = PM, <SP> - 24-hour format)
     hh:mm:ss.fff = hours, minutes, seconds, milliseconds of day
     s = daylight-saving indicator (<SP> standard, D daylight)

     yy = year of century (from DIPswitches)
     dd/mm/ddd = day of month, month of year, day of year

     Note: The alarm condition is indicated by other than ? at A, which
     occurs during initial synchronization and when received signal is
     lost for an extended period. A receiver unlock condition is
     indicated by other than "0000" in the tttt subfield at Q.

     example: "O3@055281824C00000394 91/08/04/216  15:36:43.640"
                             T       Y        D    T

David L. Mills
University of Delaware
mills@udel.edu
23 October 1993
