Ur-logo

DCF77 C51 Radiour

Jeg har købt mig et radiour, en en DCF77 C51 fra Meinberg Funkuhren. Her er en beskrivelse at, hvordan det sættes op. Der er god dokumentation for, hvordan det skal gøres (PDF), men her kommer historien på dansk.

Indhold

Antenneopsætning

Tilslutningen af C51 til computeren er ret enkel bortset fra, at det ikke er beskrevet direkte i dokumentationen, hvilken slags serielt kabel, der skal bruges. Der skal bruges et RS-232 serielt kabel (25 pin han, 9 pin hun). Det vil sige samme slags kabel, som man bruger til et modem. Skal det mon være i datid nu? Hvis der ikke er en seriel port på computeren er det nødvendigt, at bruge en adapter til USB-porten.

Den aflange firkantede antenne er retningsbestemt og skal placeres vinkelret på sigtelinjen til senderen ved Frankfurt am Main. Dette viste sig ikke at være så nemt. Ved justeringen af antennen skal man holde øje med to af de lysdioder, der viser status for C51. En rød LED lyser når modtageren ikke er synkroniseret med radiosignalet og den LED, der er mærket modulation skal blinke en gang i sekundet. Endelig er der også en indikator for feltstyrken. Denne skulle være meget svag når antennen vender forkert, men jeg så ingen tydelig forskel. Løsningen viste sig at være at lægge et stykke papir over lamperne så lysstyrken blev dæmpet- Efter flere timers prøven sig frem fik jeg et nogenlunde signal og det lykkedes at synkronisere, så den røde LED slukkede. Man må være forberedt på at forbindelsen kommer og går, især om dagen.

Selvom retningen er den samme er der stor forskel på antennen er tæt ved et vindue eller ej. Der er meget bedre signal, hvis antennen sigter gennem et vindue end, hvis den lige vej er gennem en væg.

Opsætning af computeren

Der er installeret Gentoo-Linux på den computer, der skal fungere som tidsserver. De tilretninger, der skal laves er ret uafhængige af, hvilken linuxdistribution, der bruges. Andre styresystemer som FreeBSD skal sættes lidt anderledes op. Der er to ting, der skal tilrettets: Et ekstra link i /dev-mappen og ntpd-programmet skal sættes op.

Hvis man bruger statiske filer i /dev er det tilstækkeligt at sende følgende afsted en enkelt gang:

cd /dev ; ln -s ttyS0 refclock-0

Hvis man bruger udev skal man tilføje følgende regel efter reglerne for serielporten:

KERNEL=="ttyS0" SYMLINK="refclock-0"

Det er en fordel at placere reglen i en fil for sig selv, så den ikke bliver overskrevet ved en opdatering af systemet.

Endelig skal indstillingerne for ntpd rettes. Som udgangspunkt er der ikke understøttelse af radioure. Med Gentoo skal man tilføje USE=parseclocks. Med andre linuxdistributioner kan det være nødvendigt, at compilere og installere programmet manuelt. Der skal tilføjes følgende linjer til /etc/ntp.conf:

server 127.127.8.0 mode 2
fudge 127.127.8.0 time1 0.002

Værdien for time1 skal rettes efter lokale forhold men omkring 0.002 passer på danske breddegrader. Jeg startede med 3 ms og lagde lidt til og trak fra indtil uret kom tæt på at vise det forventede.

Optimering

Man kan med fordel bruge kommandoen setserial /dev/ttyS0 uart 8250 low_latency inden ntpd startes. Det giver langt mindre forsinkelser og støj i signalet fra radiouret. 8250-chippen har en meget lille buffer, så alle signaler sendes nærmest direkte til computeren. Parameteren low_latency gør forsinkelsen endnu mindre, men CPU-forbruges stiger lidt.

Justering

Som indledende justering kan man tage udgangspunkt i afstanden til senderen ved Frankfurt am Main. Jeg har brugt den mere nøjagtige position fra Wikipedia. Radiosignalet udbredes ned lysets hastighed eller 300 km/ms. En afstand på 600 km giver således en forsinkelse på 2 ms. Jeg fandt min egen position med en håndholdt GPS-modtager. Resultatet var i decimalgrader, så resultatet måtte omregnes til grader/minutter/sekunder.

Alternativt kan man bruge statistikmulighederne i ntpd til justering. Der er flere slags statistik, der kan indsamles og det er typen peer-stats, der er mest relevant ved justering. Programmet peer.awk, som følger med ntpd-distributionen finder blandt andet gennemsnitligt offset for de konfigurede servere og ure. Eksempel på brug:


LANG=C awk -f peer.awk /var/log/ntp-stats/peer*

LANG=C er nødvendig for at sikre, at der bruges punktum som decimaltegn.

For at undgå, at det referenceur, der skal justeres kan påvirke målingerne, skal uret deaktiveres. Det klares med noselect i server-linjen. Da time1 som udgangspunkt er 10 ms, skal denne værdi sættes til 0 med fudge.


server 127.127.8.0 mode 2 noselect
fudge  127.127.8.0 time1 0

Status

Radiouret virker efter udskiftning af kabel. Uret er stort set justeret for afstanden til senderen. Det er godt 2 ms afstand om natten, men om formiddagen er uret stadig bagud. Der er kun ordenlig radioforbindelse om natten og om formiddagen når ingen af naboerne ser TV. Der er et brugbart signal ca. 30% af tiden. Udsvingene i forhold til den rigtige tid er halvt så store som inden jeg fik et radiour.

Om sommeren, når de fleste er på ferie, har der været et brugbart signal 90% af tiden.

Efter min stationære PC blev udskiftet med små computere er modtageforholdene blevet gode uanset om der er ferietid.

Hele historien

Læs eventuelt en lang saga om hvad jeg gjorde hvornår.


Tilbage til toppen
Til NTP-siden