Home - Jolatomme/CO_Startclock GitHub Wiki
Welcome to the CO StartClock Wiki!
One of the major challenges when organizing an orienteering race is to determine the classification of participants. This must be done by category and based on a simple criterion: the time taken to to complete the course. The person who takes the least time in his or her category, by punching all the controm ppoints in order is ranked first. On the face of it, the concept may seem simple, but in the field it can be very complicated to determine who has won the race. The timing has to be perfect. This means that the various clocks at the start, finish and call are synchronized. Two clocks based on two different quartz crystals vary. This difference can be significant and perceptible over the duration of a race. For example, it may be impossible to discriminate between two competitors who finish within 5 seconds of each other. The synchronization of clocks on a common time base is essential. However, clocks cannot always communicate with each other (distance, terrain, etc.). So we need to find another signal that will ensure the synchronization. Two solutions are possible:
- GPS (Global Positioning System) signal
- DCF77 signal
While the GPS signal may not be available (white zone), particularly in mountainous areas, the DCF77 signal is available everywhere. Low frequency by nature (77.5 Khz), it reflects off the different layers of the atmosphere, so it can be picked up anywhere.
DCF77
DCF77 is a German longwave time signal and standard-frequency radio station. It is controlled by the Physikalisch-Technische Bundesanstalt (PTB), Germany's national physics laboratory and transmits in continuous operation (24 hours). The highly accurate 77.5 kHz (3868.2897806 m wavelength) carrier signal is generated from local atomic clocks that are linked with the German master clocks at the PTB in Braunschweig. The DCF77 time signal is used for the dissemination of the German national legal time to the public. More here on Wikipedia.
DCF77 time signal reception is the only way in Europe to obtain accurate time, reliably, with a simple, inexpensive receiver. (Receiving time signals from a GPS satellite is more difficult to implement). You can receive the time, date and day of the week. Changeover between summer and winter time.
DCF77 emitter
The DCF77 time signal transmitter is located in Germany, in Mainflingen (near Frankfurt), more precisely at latitude 50.02° North, longitude 9.00° East. East longitude. Time information is provided by the atomic clock at the BRUNSWICK INSTITUTE of PHYSICS and METROLOGY. This clock is highly accurate, with a theoretical deviation of ±1 second per 1 million years.
Thanks to its central location in Europe, its power power of 50 kW, as well as its high radiated power (30 kW), the information from this transmitter can be properly received within a radius of 2,000 km (i.e. a large part of Europe Europe, and even to the far north of Africa).
DCF SIGNAL MAP
The carrier frequency is a very stable 77.5 kHz (hence the name DCF77). The slight fluctuations in this frequency are mainly due to the propagation of large waves in the atmosphere. Its relative deviation from the 77.5 kHz frequency is, on average over 100 days, less than 2.10E-13. As a result, it can be used to synchronize oscillators requiring high precision.
In the event of maintenance or malfunction, a spare transmitter is put into operation. Occasionally, however time signals may cease to be transmitted, particularly during thunderstorms, for what is usually a very short time. It is therefore necessary for the radio-controlled clock to have its own internal internal clock.
Time signal
The DCF77 time signal consists of a highly stable carrier frequency of 77.5 kHz, amplitude-modulated by BCD (Binary Coded Decimal) time signals.
DCF SIGNAL DETAIL
The carrier wave is modulated by pulses at a rate of one per second. These pulses result in a 25% decrease in the amplitude of the received signal. The pulse duration determines the level of the received bit. A 100 ms pulse represents a 0 bit while a 200 ms pulse represents a 1 bit.
Time information is transmitted in one-minute frame. Each frame is divided into 60 seconds, each beginning with the pulse edge. It should be noted that, for the 59ᵉ second, there is no pulse to enable the decoder to identify the start of a frame. Thus, the next pulse determines the start of the next frame. Any pulse absence greater than 999 ms must therefore be considered as the start of a new frame.
Three times an hour, during minutes 19, 39 and 59 (each time during seconds 20 to 32), the “DCF77” signal is transmitted twice in Morse code, at a frequency of 250 Hz (carrier amplitude reduction from 85% to 100%), but does not interfere with the reception of the time signal. This Morse signal is usually filtered by the receiver, and is not found on the logic signal.
Decoding time signal
Clock realization
DCF77 signal reception is not always guaranteed as signal quality may be affected by various factors. To guarantee the best operation, it is mandatory to synchronize the micro-controller Real Time Clock (RTC) with the DCF77 signal. When successful reception is achieved, micro-controller RTC is synchronized.If DCF frame reception fails, the time is still managed by the RTC. Doing this way, RTC clock deviation is minimal.
Software platform
Micropython is used for stake of simplicity and rapid prototyping. The nucleo_flash is the content to be uploaded in micro-controller flash. This can be done using:
Micro-controller platform
Popular STM32 platform is used. Boards are affordable and easy to use especially the nucleo platform.
As of micropython version 1.22.2, the following Nucleo boards are supported:
- NUCLEO_F091RC
- NUCLEO_F401RE
- NUCLEO_F411RE
- NUCLEO_F412ZG
- NUCLEO_F413ZH
- NUCLEO_F429ZI
- NUCLEO_F439ZI
- NUCLEO_F446RE
- NUCLEO_F722ZE
- NUCLEO_F746ZG
- NUCLEO_F756ZG
- NUCLEO_F767ZI
- NUCLEO_G0B1RE
- NUCLEO_G474RE
- NUCLEO_H563ZI
- NUCLEO_H723ZG
- NUCLEO_H743ZI
- NUCLEO_L073RZ
- NUCLEO_L152RE
- NUCLEO_L432KC
- NUCLEO_L452RE
- NUCLEO_L476RG
- NUCLEO_L4A6ZG
- NUCLEO_WB55
- NUCLEO_WL55