5394

An ESP32 mimics the DCF77 time signal server for DCF77 clocks in bad signal conditions.

Today, reception conditions for radio-controlled clocks are often very difficult. The widespread switching power supplies, LED-lighting, TV-sets and scattering DSL signals create an interference fog in which the time signals often disappear.
So why not simply replicate the missing signals yourself with a little computing power and internet-based time?

I have been working on generating time signals for professional GORGY clocks and other radio controlled DCF77 clocks for a while. At that time I googled C++ code snippets and was reasonably satisfied with my customised code compilation, but always dreamed of achieving the goal with ANNEX32-BASIC.
ANNEX version 1.70.1 and some great example BASIC codes from CiccioCB have now helped me over the hurdle.

Now a simple ESP32 and a BASIC program with very few additional components can imitate the DCF77 time signal transmitter and control various clocks.

There are 3 signal outputs:
– Pin 25: 77.5kHz sine time signal with ~2Vpp, 100%/25% amplitude modulated
– Pin 26: 77.5kHz sine time signal with ~2Vpp, 100%/12.5% amplitude modulated
– Pin 2: Binary time signal, no carrier
These can be coupled to any radio-based DCF clock using one of three simple interface variants:

The ESP32’s waveform generator module is used, which outputs a sine wave signal from the two DACs purely based on hardware. Even the amplitude modulation can be done with this built-in generator. However, it requires the CW-generator hardware that is not included in all ESP32 variants but is included in the classic variant.
This make it possible to easily setup a DCF77 time signal generator with just the ESP32 a bit of software and no need for an external modulator stage etc.

To cut a long story short: works very well and BASIC-based and I can send any time and date with very little HW effort.

My ANNEX32-BASIC code for any  classic ESP32 Dev-Kit-board is attached as a txt-file  , as I am currently not able to attache it here as <code> 

I put a more elaborated post <here> including the  highlighted BASIC code