mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-04 03:49:02 +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.
|
to the AUTHDEFS in Makefile.inc.
|
||||||
|
|
||||||
You can change CLOCKDEFS in the same file to add other reference clocks.
|
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