DCF77 Time signal radio station Live stream. Recording of the Leap second

recommended browser: desktop/laptop with Firefox (or Chrome). Other browsers (Safari) and Mobile (ios, android) support is limited

About

This page streams a recording of the time signal from the DCF77 radio station as received by a DCF77 receiver module (DCF1 from Pollin Elektronics GmbH Best.Nr.: 810 054) + an Arduino. The audio comes from the module's data pin and is streamed to an Icecast server for your listening pleasure. The audio is a recording of the last 23 seconds up to the 2016 leap second, sxpressed as an empty bit/second of silence near the end of this recoding.

Motivation

This is my submission for the Leap Second Festival 2016. A 'leap second', is one-second adjustment that is occasionally applied to Coordinated Universal Time (UTC) in order to compensate for the irregularities in the Earth's rate of rotation (aka Earth slowing down) and the extreme precision of that atomic clocks our time standards are based upon.
I created this page to find physical, audible, proof of this yearly adjustment.

Transmission

DCF77 Transmits amplitude modulated binary data. A short pulse (100ms) for a 0, a long pulse (200ms) for a 1 (see here (pdf warning)). The time transmitted by DCF77 is the time of the following minute; e.g. during December 31 23:59, the transmitted time encodes January 1 00:00.
The first 20 seconds of the transmission contain special flags. The minutes are encoded in seconds 21–28, hours during seconds 29–34, and the date during seconds 36–58.
Two flags warn of changes to occur at the end of the current hour: a change of time zones, and a leap second insertion. These flags are set during the hour up to the event. This includes the last minute before the event, during which the other time code bits (including the time zone indicator bits) encode the time of the first minute after the event.
In the event of an added leap second, a 0-bit is inserted during second 59, and the special missing bit is transmitted during the leap second itself, second 60.

Finding Proof: Spectrogram

The spectrogram above shows the long and short pulse transmitted by DCF77 from which you can deduce the binary data. This data is saved and will be available after the actual lep second event.

Legend

_______^_long pulse___________^_shortpulse___________________^_skipped bit

Setup

hardware


Pollin module pin out.


Arduino powered by proper power supply, data pin pollin module to audio cable into computer that streams it to the Icecast server using ffmpeg/avconv.

arduino

I used the DCFSignal example from the DCF77 Library (see Links below). There is also a nice binary stream example available, but needs some tweaking and possibly (software) filtering of the signal.

streaming

Command to stream to Icecast server:
$ avconv -stats -f alsa -i hw:0 -c:a libmp3lame -b:a 96k -legacy_icecast 1 -content_type audio/mpeg -ice_name "bleepsec" -f mp3 icecast://source(user):password@icecastserverURL:8000/bleepsec

interference

There is a lot of noise in the EM environment. My fluorescent light bulbs, 3 meters away distort the signal beyond recognition. Laptop power distorts the signal. Usb power interferes etc. Some recommendations to reduce interference: Use a long, high quality shielded usb cable. Use a proper PC instead of a laptop. Power the arduino from a proper power supply (not from usb), turn of any fluorescent lights, in fact turn all your electrical equipment off ;)

Links

listen samples, windows stuff, http://www.dl3ukh.de/Bastel-Decoder.htm (german)

logs! actual binary data, live as well! (german) http://www.dcf77logs.de/ViewLog.aspx?mode=dcf77&file=DCFLog03238.log and http://www.dcf77logs.de/WebConsole.aspx

lotsa info about encoding, modulation etc (german) https://prog-link.norbert-richter.info/dcf77/dcf77-contents.html

nice pics of actual insides of the transmitter building http://www.plicht.de/ekki/varia/mainflingen.html

official page of the transmitter ('dissemination-of-legal-time')(english) https://www.ptb.de/cms/en/ptb/fachabteilungen/abt4/fb-44/ag-442/dissemination-of-legal-time/dcf77.html

nice documentation on refurbishing the transmitting areals of the dcf77 station (german) http://www.waniewski.de/MW/Mainflingen/id317.htm

german wikipedia page on the transmission site used by dcf77 https://de.wikipedia.org/wiki/Sendeanlagen_in_Mainflingen arduino dcf77 lib (change Time.h for TimeLib.h, turn debug on in Utils.cpp) https://github.com/thijse/Arduino-Libraries/downloads use this Time lib https://github.com/PaulStoffregen/Time visualising sound html5 (can use streaming audio as source) https://www.bignerdranch.com/blog/music-visualization-with-d3-js/ visualising sound html5 (adopted the spectrograph code) http://www.smartjava.org/content/exploring-html5-web-audio-visualizing-sound

websdr; listen to (software defined) radio online, amazing project http://websdr.ewi.utwente.nl:8901/

Credits

pollin dcf77 receiver module generously stolen from Roel Roscam Abbing.