Go Down

Topic: DCF77 library for Arduino - synchronize with atomic clock (Read 17 times) previous topic - next topic


A little later than expected, the library now supports inverted pulses as input.

The constructor now has an optional parameter OnRisingFlank:
Code: [Select]
DCF77(DCF77Pin, DCFinterrupt, OnRisingFlank)
If OnRisingFlank set to false, the algorithm will trigger on falling edge.


Oct 31, 2012, 09:39 pm Last Edit: Nov 01, 2012, 06:49 am by franzs Reason: 1

I wired a cheap DCF77 receiver from Pollin to an Arduino Uno: http://www.pollin.de/shop/dt/NTQ5OTgxOTk-/

It works out of the box. No extra components were necessary.

Then I ran the examples bundled with the DCF77 library. It turns out that SyncProvider is one minute ahead at the first sync. InternalClockSync works as expected.

Please find the output of InternalClockSync at http://pastebin.com/ZbtzWtqZ

The output of SyncProvider is here: http://pastebin.com/5DSfAkjZ
In line 4 of the output of SyncProvider it's 12:01:00 actually. After the next sync the time is corrected (line 126).

Another output is here: http://pastebin.com/SWJBXFSy

I enabled VERBOSE_DEBUG and recorded a video of the output:

I tried both examples a couple of times. The DCF77 signal is quite clear.

Any idea what's going wrong?

Best regards

Udo Klein

I implemented a DCF77 clock with an additional exponential filter in order to improve noise tolerance. You can find the experiment here: http://blog.blinkenlight.net/binary-clock/. This is actually part of a larger project where I intend to push the noise tolerance quite a lot further: http://blog.blinkenlight.net/2012/12/01/dcf77-project/.
Check out my experiments http://blog.blinkenlight.net


I am trying this module to get to work. According the example DCFSignal, the module seems to work, but the pulses seem to be to short so that the library cant interpret it (see attached screenshot). Does anyone have a clue how to fix that issue?

Udo Klein

How did you connect this module to your Arduino? This is a 3.3V module with ***very*** limited driving capability. In doubt I would say you are overloading the module.
Check out my experiments http://blog.blinkenlight.net

Go Up