Clever Quest Lab ← Labs

DCF77 Decoder

Tune a receiver to the DCF77 time transmitter on 77.5 kHz and this page reads the time and date from the tone your computer plays.

Sound is off. Choose an audio source, or press “Play demo signal” to try it without a radio.

Microphone, computer and file audio is analysed in your browser and never leaves your device. When you share computer audio, the picture of your screen is not used, recorded or sent, and captured sound is never played back.

--:--:--
No time decoded yet
waiting for a signal
UTC
–
Your local time
–
Computer clock
–

Minute being received

One box per second: 0 or 1, a dot while it is still to come, red dashed when the reading is uncertain. The values describe the minute that starts at the next minute marker.

Tone amplitude (blue) relative to the carrier level. Vertical lines: second starts; shaded: the 0–100 and 100–200 ms windows; on top the decision (0, 1, M = minute marker, ? = uncertain).

Click or drag on the spectrum to pick the tone. Keyboard: ← → move it by 5 Hz (Shift: 50 Hz), A returns to automatic tuning.

Readouts

Tone
–
Dip depth
–
Signal quality
–
Status
idle
Second
–
Source
none

Decoder

Automatic locks onto the strongest steady tone. Moving the slider or clicking the spectrum switches to manual tuning.

Decoded minutes

  1. Nothing yet. Each complete minute is listed here with its parity checks.

Demo signal

Entered as German local time (CET or CEST). The demo starts 15 seconds before that minute.

Noise is measured in a 3 kHz bandwidth. Only the demo and audio files are played through the speakers.

How to use it

Tune a receiver until DCF77 is heard as a steady tone that dips once a second (see below), then bring its audio in as described under “Getting the audio in” further down. Play demo signal needs no radio.

The page finds the tone, locks to the seconds, waits for the minute marker and then collects 59 bits. Expect the first time after one to two minutes and “verified” a minute later. Decoding continues while the page is in a background tab; only the drawing pauses.

Controls

Getting the audio in

There are four ways to get the signal in. Nothing is uploaded: all decoding happens in this tab.

  1. No radio needed — a web receiver in another tab. Open a public web-based SDR receiver in a second tab (universities and radio clubs run many of them), tune it to 77.5 kHz as described below (the receiver must reach long wave) and start its audio. Here, press Use computer audio, choose that tab in the sharing dialog and switch on sharing of the tab’s audio. Keep the receiver tab playing; this page can stay in the background.
  2. Your own receiver or SDR program on this computer. Press Use computer audio and share the program’s window or the entire screen together with system audio, or send the program’s output to a virtual audio cable and pick that cable after pressing Use microphone.
  3. A radio with a speaker. Hold it near the microphone and press Use microphone. It works, but room noise hurts weak signals; a cable from the headphone socket to the line or microphone input is better.
  4. A recording. Load a WAV or MP3 file with Open audio file.

Where and how to receive it

DCF77 is a long-wave time transmitter at Mainflingen, about 25 km south-east of Frankfurt am Main in Germany. It transmits on 77.5 kHz with 50 kW around the clock, and its time comes from the atomic clocks of PTB, Germany’s national metrology institute in Braunschweig. It can be received up to roughly 2000 km away, which covers central Europe. Reception is usually better at night.

A software radio has to cover such low frequencies, by direct sampling or with an upconverter. The antenna matters most: a long wire, an active antenna, or a ferrite rod or loop turned for the strongest signal (a ferrite rod at right angles to the direction of the transmitter). Keep it away from switching power supplies, chargers and monitors, which are strong noise sources on long wave.

Use CW mode, or USB or LSB tuned beside the carrier so that a tone of 500–800 Hz results:

ftone = 77.5 kHz − fdial (USB)    ftone = fdial − 77.5 kHz (LSB)

USB tuned to 76.8 kHz gives 700 Hz. Choose a narrow filter, roughly 50–300 Hz, around the tone. Switch automatic gain control off or to slow and keep the gain moderate, because a fast gain control flattens the dips. Switch noise reduction and the notch filter off.

The signal

The carrier is amplitude-keyed. At the start of every second its amplitude falls to about 15 % for 100 ms (bit 0) or 200 ms (bit 1). Second 59 has no dip: that gap marks the minute. The keying occupies only a few tens of hertz. The carrier’s phase is also modulated with a pseudo-random sequence for more precise timing; this page ignores it.

The 59 bits give the time of the minute that begins at the next marker:

BitsMeaning
0always 0
1–14weather and warning data, not decoded here
15–19call bit, time change announced, CEST, CET, leap second announced
20start of the time, always 1
21–28minute and its parity
29–35hour and its parity
36–58day, weekday, month, year and their parity

Numbers are binary-coded decimal with the lowest bit first, so the bits weigh 1, 2, 4, 8, 10, 20, 40 and 80. Each parity bit makes the number of ones in its group even.

How it works

The audio is reduced to about 4000 samples per second and a Fourier transform finds the tone. The samples are multiplied by a cosine and a sine at that frequency and averaged over 20 ms. This measures the tone’s amplitude in a band only a few tens of hertz wide, so noise beside it does not count.

Each amplitude sample is filed by its position within the second. After a few seconds this folded average shows one sharp step, the start of the second. It then tracks each falling edge, so audio clock errors do no harm. For every second it compares the mean amplitude 0–100 ms and 100–200 ms after that edge with the level later in the same second. Because these are ratios, they still work when the receiver’s gain control makes the dips shallow.

A minute is accepted only if the marker, bits 0 and 20, the zone bits, all three parities, the value ranges and the weekday fit. It is “verified” when the following minute is exactly one minute later.

Things to try

Frequently asked questions

Is my audio sent anywhere?

No. Capture and decoding run in this page on your device.

Why is the decoded time slightly late?

The receiver program and the browser buffer the sound, often for a few tenths of a second. The page cannot measure that delay, so it is part of the difference shown against your computer clock.

Why was a minute rejected?

One misread bit breaks a parity check. The clock keeps running from the last good minute.

Can it decode other time stations?

No. Stations such as MSF in Britain and WWVB in the USA, both on 60 kHz, use other codes. This page decodes DCF77 only.

More free games and simulators