DIY DCF77 Clock Posted on 04 Dec 2007 at 7:05 PM

A year ago I built a DCF77 radio-controlled clock with perfboard and verowire as a present. It contained LED displays for time, date and temperature and a 6x7 LED matrix showing the bits received from the radio module. I used an integrated module as the receiver, which spits out the received signal as simple pulses which can be processed by a microcontroller - in this case an ATMega8.

This time I want to create the clock PCB with normal etching procedures. The verowire method worked, but was not very reliable and it was also a lot of work. Sometimes the coating of the wire would get scratched and then shortcuts would make multiple segments light up in one digit. It also requires high soldering temperatures and creates toxic fumes.

Colums and rows of the custom made LED matrix were directly connected to the microcontroller. This time I will connect the rows to a 8-bit shift register, which frees up some pins on the microcontroller. I will also use an integrated 8x8 LED matrix module from Everlight. This way I don't have the need for a double-sided layout or wire straps on the top side. The status LED will be a bi-color LED which I changed last-minute in the first version to a normal LED because of the lack of an additional microcontroller pin, and the lack of space on the board for a voltage divider to drive the bi-color LED with a single pin.

I removed the voltage regulator for the LED digits and used old-fashinioned resistors. Bacause a printed circuit board is not nearly as flexible (especially with only a single side/layer) as verowire, I had to multiplex not only the LED matrix, but the LED digits too.

The multiplexing led to a serious brightness problem with the LED digits. After soldering in 6 digits, even wires instead of resistors could not bring the digits to the desired brightness. I had to desolder all of them, and bough other ones with lower forward voltages and higher efficiency. I was lucky to get 20 pieces at the local store the day before christmas. I could also have removed two shift registers, which would have saved me a lot of traces and jumpers on the board.

The PWM temperature sensor was replaced with a one-wire type from Analog Devices, which was not optimal. While this new sensor has a much higher precision, and gives a fully prepared, digital numeric value, reading and writing the one-wire bus is very slow. In fact it was so slow, it would lead to subtile flickering on the LED digits, so I only read the value once every minute.

Another problem surfaced when the circuit was nearly completed: the DCF77 receiver would not get very good reception. Sometimes, hours passed and the receiver couldn't pick up a single consecutive minute of time data. This problem did not happen while the AVR programmer was connected. After analyzing the cause, it seemed that the lower voltage( 4.5 volts) the programmer was supplying to the target circuit allowed the receiver to have a much better reception. Because time was running away, I simply soldered in a diode with a sufficient voltage drop to allow it operate reliable at 5 volts. This fixed the problem.

Because of several flaws still existent in this design, I will not release the circuit board files. The next version will include a custom made, more reliable receiver, less shift registers and some other improvements. Stay tuned.