README.parse_clocks revision 7c478bd95313f5f23a4c958a745db2134aa03244
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen ident "%Z%%M% %I% %E% SMI"
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo SirainenThe parse driver currently supports several clocks with different
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenquery mechanisms. In order for you to find a sample that might be
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainensimilar to a clock you might want to integrate into parse i'll sum
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenup the major features of the clocks (this information is distributed
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenin the parse/clk_*.c and xntpd/refclock_parse.c files).
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen---
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Meinberg: 127.127.8. 0- 3 (PZF535TCXO)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 127.127.8. 4- 7 (PZF535OCXO)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 127.127.8. 8-11 (DCFUA31)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 127.127.8.28-31 (GPS166)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Meinberg: start=<STX>, end=<ETX>, sync on start
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen pattern="\2D: . . ;T: ;U: . . ; \3"
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen pattern="\2 . . ; ; : : ; \3"
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen pattern="\2 . . ; ; : : ; : ; ; . . "
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Meinberg is a german manufacturer of time code receivers. Those clocks
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen have a pretty common output format in the stock version. In order to
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen support NTP Meinberg was so kind to produce some special versions of
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen the firmware for the use with NTP. So, if you are going to use a
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Meinberg clock please ask whether there is a special Uni Erlangen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen version.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen General characteristics:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Meinberg clocks primarily output pulse per second and a describing
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen ASCII string. This string can be produced in two modes. either upon
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen the reception of a question mark or every second. NTP uses the latter
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen mechanism. The DCF77 variants have a pretty good relationship between
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen RS232 time code and the PPS signal while the GPS receiver has no fixed
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen timeing between the datagram and the pulse (you need to use PPS with
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen GPS!) on DCF77 you might get away without the PPS signal.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen The preferred tty setting for Meinberg is:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen CFLAG (B9600|CS7|PARENB|CREAD|HUPCL)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen IFLAG (IGNBRK|IGNPAR|ISTRIP)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen OFLAG 0
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen LFLAG 0
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen The clock is run at datagram once per second.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Stock dataformat is:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <STX>D:<dd>.<mm>.<yy>;T:<w>;U:<hh>:<mm>:<ss>;<S><F><D><A><ETX>
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen pos: 0 00 00 0 00 0 11 111 1 111 12 2 22 2 22 2 2 2 3 3 3
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 1 23 45 6 78 9 01 234 5 678 90 1 23 4 56 7 8 9 0 1 2
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <STX> = '\002' ASCII start of text
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <ETX> = '\003' ASCII end of text
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <dd>,<mm>,<yy> = day, month, year(2 digits!!)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <w> = day of week (sunday= 0)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <hh>,<mm>,<ss> = hour, minute, second
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <S> = '#' if never synced since powerup else ' ' for DCF U/A 31
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen '#' if not PZF sychronisation available else ' ' for PZF 535
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <F> = '*' if time comes from internal quartz else ' '
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <D> = 'S' if daylight saving time is active else ' '
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <A> = '!' during the hour preceeding an daylight saving time
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen start/end change
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen For the university of Erlangen a special format was implemented to support
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen LEAP announcement and anouncement of alternate antenna.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Version for UNI-ERLANGEN Software is: PZFUERL V4.6 (Meinberg)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen The use of this software release (or higher) is *ABSOLUTELY*
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen recommended (ask for PZFUERL version as some minor HW fixes have
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen been introduced) due to the LEAP second support and UTC indication.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen The standard timecode does not indicate when the timecode is in
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen UTC (by front panel configuration) thus we have no chance to find
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen the correct utc offset. For the standard format do not ever use
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen UTC display as this is not detectable in the time code !!!
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <STX><dd>.<mm>.<yy>; <w>; <hh>:<mm>:<ss>; <U><S><F><D><A><L><R><ETX>
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen pos: 0 00 0 00 0 00 11 1 11 11 1 11 2 22 22 2 2 2 2 2 3 3 3
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 1 23 4 56 7 89 01 2 34 56 7 89 0 12 34 5 6 7 8 9 0 1 2
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <STX> = '\002' ASCII start of text
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <ETX> = '\003' ASCII end of text
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <dd>,<mm>,<yy> = day, month, year(2 digits!!)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <w> = day of week (sunday= 0)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <hh>,<mm>,<ss> = hour, minute, second
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <U> = 'U' UTC time display
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <S> = '#' if never synced since powerup else ' ' for DCF U/A 31
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen '#' if not PZF sychronisation available else ' ' for PZF 535
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <F> = '*' if time comes from internal quartz else ' '
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <D> = 'S' if daylight saving time is active else ' '
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <A> = '!' during the hour preceeding an daylight saving time
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen start/end change
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <L> = 'A' LEAP second announcement
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <R> = 'R' alternate antenna
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Meinberg GPS166 receiver
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen You must get the Uni-Erlangen firmware for the GPS receiver support
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen to work to full satisfaction !
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <STX><dd>.<mm>.<yy>; <w>; <hh>:<mm>:<ss>; <+/-><00:00>; <U><S><F><D><A><L><R><L>; <position...><ETX>
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen *
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 000000000111111111122222222223333333333444444444455555555556666666
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 123456789012345678901234567890123456789012345678901234567890123456
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen \x0209.07.93; 5; 08:48:26; +00:00; ; 49.5736N 11.0280E 373m\x03
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen *
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <STX> = '\002' ASCII start of text
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <ETX> = '\003' ASCII end of text
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <dd>,<mm>,<yy> = day, month, year(2 digits!!)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <w> = day of week (sunday= 0)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <hh>,<mm>,<ss> = hour, minute, second
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <+/->,<00:00> = offset to UTC
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <S> = '#' if never synced since powerup else ' ' for DCF U/A 31
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen '#' if not PZF sychronisation available else ' ' for PZF 535
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <U> = 'U' UTC time display
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <F> = '*' if time comes from internal quartz else ' '
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <D> = 'S' if daylight saving time is active else ' '
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <A> = '!' during the hour preceeding an daylight saving time
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen start/end change
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <L> = 'A' LEAP second announcement
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <R> = 'R' alternate antenna (reminiscent of PZF535) usually ' '
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen <L> = 'L' on 23:59:60
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen For the Meinberg parse look into clock_meinberg.c
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen---
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen RAWDCF: 127.127.8.20-23 (Conrad receiver module - delay 210ms)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 127.127.8.24-27 (FAU receiver - delay 258ms)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen RAWDCF: end=TIMEOUT>1.5s, sync each char (any char),generate psuedo time
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen codes, fixed format
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen direct DCF77 code input
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen In Europe it is relatively easy/cheap the receive the german time code
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen transmitter DCF77. The simplest version to process its signal is to
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen feed the 100/200ms pulse of the demodulated AM signal via a level
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen converter to an RS232 port at 50Baud. parse/clk_rawdcf.c holds all
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen necessary decoding logic for the time code which is transmitted each
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen minute for one minute. A bit of the time code is sent once a second.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen The preferred tty setting is:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen CFLAG (B50|CS8|CREAD|CLOCAL)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen IFLAG 0
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen OFLAG 0
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen LFLAG 0
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen DCF77 raw time code
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen From "Zur Zeit", Physikalisch-Technische Bundesanstalt (PTB), Braunschweig
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen und Berlin, Maerz 1989
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Timecode transmission:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen AM:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen time marks are send every second except for the second before the
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen next minute mark
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen time marks consist of a reduction of transmitter power to 25%
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen of the nominal level
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen the falling edge is the time indication (on time)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen time marks of a 100ms duration constitute a logical 0
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen time marks of a 200ms duration constitute a logical 1
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen FM:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen see the spec. (basically a (non-)inverted psuedo random phase shift)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Encoding:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Second Contents
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 0 - 10 AM: free, FM: 0
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 11 - 14 free
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 15 R - alternate antenna
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 16 A1 - expect zone change (1 hour before)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 17 - 18 Z1,Z2 - time zone
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 0 0 illegal
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 0 1 MEZ (MET)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 1 0 MESZ (MED, MET DST)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 1 1 illegal
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 19 A2 - expect leap insertion/deletion (1 hour before)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 20 S - start of time code (1)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 21 - 24 M1 - BCD (lsb first) Minutes
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 25 - 27 M10 - BCD (lsb first) 10 Minutes
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 28 P1 - Minute Parity (even)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 29 - 32 H1 - BCD (lsb first) Hours
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 33 - 34 H10 - BCD (lsb first) 10 Hours
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 35 P2 - Hour Parity (even)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 36 - 39 D1 - BCD (lsb first) Days
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 40 - 41 D10 - BCD (lsb first) 10 Days
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 42 - 44 DW - BCD (lsb first) day of week (1: Monday -> 7: Sunday)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 45 - 49 MO - BCD (lsb first) Month
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 50 MO0 - 10 Months
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 51 - 53 Y1 - BCD (lsb first) Years
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 54 - 57 Y10 - BCD (lsb first) 10 Years
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 58 P3 - Date Parity (even)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 59 - usually missing (minute indication), except for leap insertion
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen---
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Schmid clock: 127.127.8.16-19
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Schmid clock: needs poll, binary input, end='\xFC', sync start
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen The Schmid clock is a DCF77 receiver that sends a binary
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen time code at the reception of a flag byte. The contents
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen if the flag byte determined the time code format. The
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen binary time code is delimited by the byte 0xFC.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen TTY setup is:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen CFLAG (B1200|CS8|CREAD|CLOCAL)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen IFLAG 0
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen OFLAG 0
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen LFLAG 0
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen The command to Schmid's DCF77 clock is a single byte; each bit
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen allows the user to select some part of the time string, as follows (the
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen output for the lsb is sent first).
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Bit 0: time in MEZ, 4 bytes *binary, not BCD*; hh.mm.ss.tenths
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Bit 1: date 3 bytes *binary, not BCD: dd.mm.yy
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Bit 2: week day, 1 byte (unused here)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Bit 3: time zone, 1 byte, 0=MET, 1=MEST. (unused here)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Bit 4: clock status, 1 byte, 0=time invalid,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 1=time from crystal backup,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 3=time from DCF77
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Bit 5: transmitter status, 1 byte,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen bit 0: backup antenna
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen bit 1: time zone change within 1h
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen bit 3,2: TZ 01=MEST, 10=MET
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen bit 4: leap second will be
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen added within one hour
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen bits 5-7: Zero
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Bit 6: time in backup mode, units of 5 minutes (unused here)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen---
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Trimble SV6: 127.127.8.32-35
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Trimble SV6: needs poll, ascii timecode, start='>', end='<',
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen query='>QTM<', eol='<'
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Trimble SV6 is a GPS receiver with PPS output. It needs to be polled.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen It also need a special tty mode setup (EOL='<').
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen TTY setup is:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen CFLAG (B4800|CS8|CREAD)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen IFLAG (BRKINT|IGNPAR|ISTRIP|ICRNL|IXON)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen OFLAG (OPOST|ONLCR)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen LFLAG (ICANON|ECHOK)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Special flags are:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen PARSE_F_PPSPPS - use CIOGETEV for PPS time stamping
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen PARSE_F_PPSONSECOND - the time code is not related to
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen the PPS pulse (so use the time code
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen only for the second epoch)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Timecode
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 0000000000111111111122222222223333333 / char
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen 0123456789012345678901234567890123456 \ posn
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen >RTMhhmmssdddDDMMYYYYoodnnvrrrrr;*xx< Actual
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen ----33445566600112222BB7__-_____--99- Parse
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen >RTM 1 ;* <", Check
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen---
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen ELV DCF7000: 127.127.8.12-15
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen ELV DCF7000: end='\r', pattern=" - - - - - - - \r"
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen The ELV DCF7000 is a cheap DCF77 receiver sending each second
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen a time code (though not very precise!) delimited by '`r'
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Timecode
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen YY-MM-DD-HH-MM-SS-FF\r
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen FF&0x1 - DST
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen FF&0x2 - DST switch warning
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen FF&0x4 - unsynchronised
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen