mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-02 08:33:20 +00:00
Added support for "Conrad DCF-77 mobil" radio clock. This is the cheapest
(DM130) way to get precise ticks if you are within range of the xmitter in Mainflingen. I'm some 1000Km away and have +/- 2ms clock using this.
This commit is contained in:
parent
4aa43a6797
commit
9962ead5fb
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=1217
@ -8,3 +8,71 @@ in order to make this code exportable. If you have a legal copy of
|
||||
to the AUTHDEFS in Makefile.inc.
|
||||
|
||||
You can change CLOCKDEFS in the same file to add other reference clocks.
|
||||
|
||||
----------------------------------------------------
|
||||
Support for Conrad electronic's "DCF-77 Uhr, Mobil".
|
||||
----------------------------------------------------
|
||||
Conrad electronic in Germany,, Phone (+49) 962230111 (?), sells a gadget
|
||||
called "DCF77 Uhr, mobil", which is a DCF77 timecode receiver with a
|
||||
rs-232 interface. The price is around DM130.
|
||||
9-pin interface is Order# 97 94 57 66
|
||||
25-pin interface is Order# 97 94 81 66
|
||||
|
||||
You must define
|
||||
-DDCF77 -DPPS -DFREEBSD_CONRAD -DDEBUG
|
||||
when you compile xntpd. You can later remove -DDEBUG, if you feel like it.
|
||||
|
||||
You must also have
|
||||
options COM_BIDIR
|
||||
defined in your kernel, and finally the ttyport you intend to use must
|
||||
have special interrupt vector:
|
||||
device sio1 at isa? port "IO_COM2" tty irq 3 vector siointrts
|
||||
^^^^^^^^^^^^
|
||||
connect the radio-clock to the tty port and link it to /dev/refclock-0:
|
||||
|
||||
cd /dev
|
||||
sh MAKEDEV cua1
|
||||
ln -s /dev/cua01 /dev/refclock-0
|
||||
|
||||
make a directory to gather statistics in:
|
||||
mkdir /var/tmp/ntp
|
||||
|
||||
Create a /etc/ntp.conf along these lines:
|
||||
|
||||
# DCF77 without PPS
|
||||
server 127.127.8.20
|
||||
# DCF77 with PPS
|
||||
#server 127.127.8.148 prefer
|
||||
|
||||
driftfile /var/tmp/ntp/ntp.drift
|
||||
statsdir /var/tmp/ntp
|
||||
statistics loopstats
|
||||
statistics peerstats
|
||||
statistics clockstats
|
||||
filegen peerstats file peerstats type day enable
|
||||
filegen loopstats file loopstats type day enable
|
||||
filegen clockstats file clockstats type day enable
|
||||
|
||||
Try to start it:
|
||||
comcontrol ttyd1 bidir
|
||||
tickadj -A
|
||||
xntpd -d -d -d
|
||||
|
||||
You should see the red LED flash on the receiver every second now. You
|
||||
may have to experiment a bit with the location, and possibly adjust the
|
||||
minute variable resistor inside to get a good signal. Be aware, that just
|
||||
because you see the light flash, is not the same as the signal being
|
||||
received by the computer. The chip doing the work in the reciver uses
|
||||
less than 1 micro-ampere, so even if RTS isn't pulled low, it will happily
|
||||
receive, but be unable to buffer the signal to the rs-232 levels needed.
|
||||
|
||||
You can see what's going on in /var/log/messages, and query the
|
||||
daemon using xntpdc and ntpq, in particular the "clockvar" command
|
||||
of ntpq will tell about the clocks healt.
|
||||
|
||||
I live in Slagelse, Denmark, which is ~1000 Km from Mainflingen, yet
|
||||
I have +/- 2 ms precision from this cheap gadget. If you have a very
|
||||
stable signal, you can use the 'pps' address instead to improve your
|
||||
timing.
|
||||
|
||||
Have fun... Poul-Henning Kamp <phk@login.dkuug.dk>
|
||||
|
Loading…
Reference in New Issue
Block a user