This page is for information and code for the Galleon Systems' MSF (Rugby, UK, time signal) clock and the ARCRON MSF clock, price GBP100 or less (April 1997), with or without an LCD display. The instructions suggest that the ARCRON unit is made by ``Zeit-Technologie GmbH,'' possibly of Munich, Germany. The Galleon clock appears to be made by ``HKW Elektronik GmbH.'' Both are sold by Galleon in the UK.
Underneath the unit is an RJ45-style RS232 serial socket, which can be used at 300 baud to interrogate the unit for time (and force the unit to resync to MSF), which is why it is of use for XNTP. (The unit requires true RS232 with both positive and negative voltages; partially because the unit powers the RS232 transmit circuitry from the other lines to save battery power.)
The original code to drive XNTP from the ARC clock comes from Derek Mulcahy, and I'd like to thank Lyndon David for putting me in contact with him and providing some additional information and code.
At the moment clock.c is very primitive. I was using it as an exercise in improving my C coding and looking at POSIX. Hence the code should be POSIX compliant. All it does at the moment is send the command to get the time and then print it character by character on the terminal.The clock talks 7 bits even parity and two stop. I failed to get this to work so the code talks 8 bits no parity one stop and set ISTRIP. This works fine.
All this code COMES WITH ABSOLUTELY NO WARRANTY. USE AT YOUR OWN RISK.
Lyndon has effectively put this code in the public domain, but please acknowledge the source if you use his code.
Just in case you need it, here is the xntp3-5.90.tar.gz distribution (1519k).
You may also wish to apply this patch to stop the 3-5.90 code locking an integer number of seconds from the correct time as mentioned above (it only happens under fairly extreme circumstances, though).
This code was built on Solaris-2.5 with gcc 2.7.2 and on SunOS 4.1.3_U1 with gcc 2.5.8 (and is running on a Sun SS1+ and a much faster TurboSPARC); a very slightly earlier version was compiled and run by Derek with xntpd3-5.85 on SunOS 4.1.3. Comments from users of other machines are welcome.
The driver opens device /dev/arcn to talk to the clock for unit n.
To hack the code into xntp3-5.90 without any elegance or grace, do the following:
#define ARCRON_MSF 1 /* New MSF receiver support. */
#define REFCLK_ARCRON_MSF 27 /* DHD: ARCRON MSF radio clock. */
&refclock_none, /* 27 reserved */to:
&refclock_arc, /* 27 REFCLK_ARCRON_MSF */
#ifdef ARCRON_MSF extern struct refclock refclock_arc; #else #define refclock_arc refclock_none #endif
{ REFCLK_ARCRON_MSF, "ARCRON MSF (and DCF77) Receiver (27)", "ARCRON_MSF" },
A test configuration file for this build is as follows:
#------------------------------------------------------------------------------ # SYNCHRONISATION PARTNERS # ======================== # Our betters... server 127.127.27.0 # ARCRON MSF radio clock(1). # Fudge timestamps by about 20ms. fudge 127.127.27.0 time1 0.020 # Covers a multitude of sins. fudge 127.127.27.0 stratum 1 # This is not a stabilised precision clock. fudge 127.127.27.0 flag3 1 # Improve reported precision when possible. fudge 127.127.27.0 flag4 1 # Use large median filter to reduce jitter. peer 194.207.34.9 # lemon(1--2). peer 194.207.34.4 # assam(3). # This shouldn't get swept away unless left untouched for a long time. driftfile /var/tmp/ntp.drift #------------------------------------------------------------------------------ # RESTRICTIONS # ============ # By default, don't trust and don't allow modifications. Ignore in fact. restrict default ignore notrust nomodify # Allow others in our subnet to check us out... restrict 194.207.34.0 mask 255.255.255.0 nomodify notrust # Trust our peers for time. Don't trust others in case they are insane. restrict 127.127.27.0 nomodify restrict 194.207.34.4 nomodify restrict 194.207.34.9 nomodifyNote the fudge factors. I do not recommend using the MSF clock as stratum-0 to drive a stratum-1 server; I think that would imply more than the clock has to offer in stability and accuracy. Also note that you have to tune the time1 fudge factor dependent on your distance from the MSF transmitter, the speed of your machine, and the OS you are using.
Typical output with above test configuration can be seen here.
Let me know of your experiences with this code, one way or the other.
Regards,
Damon
Last updated 1905/05/03.