Smart DCF77 Wirst Watch

A retro style Wirst Watch with a LED segment Display.
Receiving time over DCF77 and personal reminders over a hacked/modified DCF77 signal.

Similar projects worth following
A retro style wrist watch, which shows minimalism. Consists only of:
-an arduino
-a bubble LED Display
-a DCF77 receiver
-a vibra motor and/or a piezo speaker
-a button (maybe some of them)
-and a battery (LiPoly, most likely)
The main idea is to get the time over the official DCF77 signal ( And to get personal appointments by sending a modified DCF77 signal, which is sent from a extra source but won't harm normal "radio clocks", because the modified signal would be interpreted as "false".
This should be possible by using the certain redindancies and unused bits of the time code.

Aspects that brought this up


Is there only one way to think about the future? The one with more technology, more devices connected together generating huge amounts of data? Or could we think is the other way round: which is the minimal amount of technology and information that helps me to solve the problem I think about?
I tend to think in the later way quite often.
So the main idea is: What is the bare minimum I want from a smart wrist watch? To me it's -besides the obvious time/date- to remind me of appointments/things not to forget. Most of the time the reminder itself is enough, say if the watch vibrates/beebs, I instantly know what it was about without looking what the subject actually is.


I can still remember the fascination I experienced as a boy when I first looked on the LED display of the first pocket calculators (hp and alike). So I wanted to biuld a wrist watch with that display for quite a while.
So as style will be one of those "driver watches", where you can see the Display without take the hand from the steering wheel or in my case from handlebar of my recumbent.
But not only the hardware design should be retro, by using a LED bubble Display, but also by using a data transmission, which allready exists for decades, the DCF77 signal.
And remember this is the technology which was used, when mankind started space travelling!


The DCF77 signal is ment to submit the actual -atomic correct- time once every minute, by sending 0 ans 1 bits, which are represented by manupulating the waveform with Amplitude-shift_keying (for details see DCF77 link above)
But it does it with a)some redundancy, b)some unused bits and c) some bits that never change. By using these unused information, it should be possible to send information, which could be decoded by the watch as other/additional information, e.g. an appointment with a alarm. By generating "wrong" parity bits on purpose no normal radio clocks would be harmed, even in the most unlikly case one of those will be within range of the sender.
(perhaps it could be also possible to transmit this information at higher speed)
As the sending device two ways are to be proved:
1) a monitor! Allmost any monitor is able to send the DCF77 signal by generating b/w images n the "right speed".
Monitor as sender
2) building a sender from scratch (e.g.: DCF77-send-atiny85

(sorry for the german links, found no others)
Option 1) is to be prefered, since ylmost any device with a display could be used as a "sender"

My "non studio-quality" concept video:

System Design Diagramm

The design is really simple:

Just an arduino connected to: a DCF77 receiver, the bubble Display, a lipoly Battery, some buttons (for triggering the display, init receiving etc.), virbra motor and/or piezo speaker for feetback.

The official DCF signal triggers the correc time (perhaps a RTC is needed as backup) and a modified signal is used to put extra information into the watch, like alarms appointments or whatever is transmitted.

The modified signal can be send from a Monitor, by genarating b/w images in the rigt "speed" to make it send a 77,5kHz em-wave, like mentioned above in the Hacking section.

Or if that won't work a own short range sender is to be build.

This is, of cozrse the test setup. The goal is a custom arduino board with most of the components "on board"

View all 8 components

  • send time -not, too-

    mclien09/07/2014 at 20:20 0 comments

    I spend some time today to generate my own signal using this method:

    dcf77 , wich is (for the non german speakers) basicly the idea to let a linux machine generate a black/white pattern on the screen. This pattern let the Monitor generate an electromagnetic wave which equals the 77.5 kHz carrier wave for the time signal and is then mudlated to transmit the time information.

    After installing some packeges to get the code compiled and setting the xserver to a lower color depth (16bits) I could generate the patterin in a high enought framerate.

    For testing I used a common radio controlled alarmclock, which gets the official time signal very well. The signal from the littlt dcf77 programm starts sending ttime at a fake value of 23:23, so success is easily recognizable (unless you run the test at 23:"3, of course). But you can run anny starting time with parameters.

    So far I wasn't able to set the clock to my own time with this method. ONly "success" was that I could prevent the clock to get the official time signal while in the range of the monitor, which was sending the fake time.

    So far no sending, no receiving. Akward....

  • Case Design thoughts

    mclien08/23/2014 at 18:05 0 comments

    The exapmle case in the picture is a rendering made by sisam with blender. So it' mostly an visualisation of the way it will look like.

    Main ideas for the design are those "driver" watches, which will come hany for recumbent riders like me also.

    It was asked, if I have any idea how to manufature that. Well, in big sice production it will most likely be a mold injected resin part. For small/ handcrafted/ DYI quantities that's not affordable. So I most like ly will start with parts made in the same way a did another project/hack:

    (It's not finished by noe, but I'll try to get some usable information ther in only a couple of days. So stay tuned)

  • Licenses

    mclien08/20/2014 at 15:15 0 comments

    If not mentioned otherwise these licenses will apply for my project:

    arduino board: well, I gues that's pretty well documented by and know. Any custom/special board that will come from my project will therefor published under the same  license (Creative Commons Attribution Share-Alike)

    code/source code: all code generated for this project will be released under the GNU/GPLv3. Code written by other  will be  marked in the comment/head section.

    pictures: all pictures are licensed under the CCbySA

    The  DCF77 receiver: the one I use so far is made by "Kundo xt" for "Reichelt  Elektroni" here in germany.  From the documents for it I couldn't firgure out which kind of license it gas. This is to be done.

  • receive time -not-

    mclien08/19/2014 at 18:04 0 comments

    tried to get the next step for receiving the time, not just the bits by using the code written by Mathias Dalheimer. UNforunatelly I wasn't able to compile it, same  result by using the modified code from Frank Staude.

    ONly to realized that this couldn't work, becuse I use an arduino micr which has an ATmega32u4 instead of a ATmega328, so alle the timer variables won't match, of course. to be continued

  • Display Test

    mclien08/19/2014 at 11:59 0 comments

    Yesterday we were testing the display.

    Only connecting the display, sisam wrote a code to just display numbers by editing the code of the sketch to have an idea what it looks like

    left: breadboard setup, right: displaing 13:37 in full brighness

    breadboard setup


    left: Time with grey acryll, right: appointment alarm, appointment in 2h42min

    Datasheet for the display:

    Here is the matrix to connet the Display to the arduino:

    Display PIN
    Arduino PIN
    Digit 1


    Digit 3


    Digit 4




    Digit 2



  • receive test

    mclien08/18/2014 at 18:58 0 comments

    first step was to simply connect the DCF77 receive modul to a arduino and see if I get those 0 and 1 bits received.

    I used this code:

    #define DCF77PIN 2 
    unsigned char signal = 0; 
    unsigned char buffer; 
    void setup(void) { 
      pinMode(DCF77PIN, INPUT); 
    void loop(void) { 
      signal = digitalRead(DCF77PIN); 
      if (buffer != signal) { 
      buffer = signal; 

    after searching a better position for the antenna (don't place it near the computer), I got the 1-0-1-0-1-0  response on the serial monitor. Fine

View all 6 project logs

Enjoy this project?



greenaum wrote 12/22/2016 at 04:01 point

The monitor transmitter is a nice idea, but I wonder if the sync pulses would interrupt the signal enough to throw it off, and make it useless. Are you using a CRT monitor? An LCD wouldn't give off nearly enough noise, I'd think. 

Still, 77.5KHz, they make sound cards that can output up to 192KHz. Including USB ones, for convenience. Or maybe your motherboard's sound chip supports it. That might be a better alternate route. Just send square waves at approximately the right signal.

I dunno how well you can squeeze 77.5 into 192, wouldn't give an exactly even ratio for the pulses... Perhaps use a lower frequency and rely on harmonics? Or possibly, perhaps the sound card has a programmable rate for it's DAC? Since they can do 44.1KHz and others, maybe it's clock can be programmed to 75.5?

I'm just throwing ideas from the top of my head, but it's something to consider I think. 

Other options... Maybe just an Arduino or the like? Should be possible to toggle a pin at that speed, then just use a wire for antenna. Somebody on a forum mentioned a 2.6MHz toggle rate, by bypassing Arduino's pin functions and using something a little lower level. Not as far as raw machine code, but just a bit lower than the convenient top-level library stuff. 

  Are you sure? yes | no

Jeremy Lambert wrote 03/24/2015 at 16:40 point

I love this case design

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates