A while ago I posted the idea to use the rising edge of DCF77-pulses as PPS-generator. At that time LinuxPPS was not in the kernel
and it was a ‘small project’ (read: challenge ; -) to apply the necessary kernel patches, and to get it running.

As of linux-2.6.34 LinuxPPS is within the kernel and it can be easily activated in (k)Ubuntu 9.10 and onwards with:

ldattach pps /dev/ttyS0 (when the PPS source is connected to ttyS0 (COM1)

The necessary modules (pps_core and pps_ldisc) are automagically loaded when issuing the ldattach command.

You can monitor the PPS stamps with:  watch -n1 cat /sys/class/pps/pps0/assert .

After this, start a freshly compiled ntpd (see LinuxPPS wiki on how to do this) and use the ATOM driver (driver 22).

To make a long story short, although DCF77 misses the 59th ‘second’, the kernel stays within +/- 1 ms lock on my system.

Actually, this is surprisingly good, considering the distance between me and the DCF77-transmitter.

Real time results are visible here.  Below you find three snapshots.

PS.  For whatever reason the PARSE driver (driver 8 ) of ntpd cannot decode the DCF77 time with the PCIe RS232 card on my system. With ‘native’ (i.e. on board)
serial interfaces I didn’t encounter problems but with the current setup I keep getting errors like:

22 Jan 14:30:00 ntpd[17670]: parse: convert_rawdcf: parity check FAILED for “###############RADMLS1248124P124812P1248121241248112481248P”
22 Jan 14:30:00 ntpd[17670]: PARSE receiver #0: FAILED TIMECODE: “###############RADMLS1248124P124812P1248121241248112481248″ (check receiver configuration / wiring)

Anyone … ?