The journey of building a DCF77 controlled Nixie clock.
I don't quite remember how I discovered Nixie tubes, but I bet it happened by accident while browsing Wikipedia for a totally different subject. Anyway – having seen those remnants of a forgotten generation of numeric displays, I went looking on eBay and found and ordered a nice desk clock built with six IN-14 tubes in a polished steel case from a seller in Hong Kong.
The clock arrived soon and the first impression was pretty good – it worked fine and looked sharp. However, I soon discovered that its timekeeping was so badly off (> 1 minute per day) that it would have to be adjusted every week. And... two tubes got leaky and failed (the fact that the clock wasn't very well packaged for my move was probably to blame for that :).The original controller board – note the 60 discrete transistors!
I decided that the clock looked too good to end in the garbage, and so I went on to create a new controller for it that uses DCF77 to keep accurate time.
This was very easy – IN-14 tubes are readily available on eBay; mine arrived from Russia within about 2 weeks after ordering.
The Nixie tubes that were used in my clock (IN-14) require an anode voltage of 170 V, at a current of at most 2.5 mA. Making a power supply to power six of those tubes is one story (see below), but controlling the individual digits at that kind of voltage is another. Normal microcontroller/logic outputs cannot withstand anything significantly above the supply voltage, but luckily, in the days of the Nixie tube, there was an IC to handle it: the SN74141 BCD-to-decimal decoder/driver. It takes a BCD encoded digit on logic level inputs, and has 10 outputs that can directly drive the cathodes of a Nixie tube.
Unfortunately it's long out of production, but the equivalent Russian rip-off, the K155ID1, is still available and cheap on eBay.Apparently from the Integral factory in Minsk, ca. 1988
It's possible to do time multiplexing with Nixie tubes so that only one BCD driver chip is required, but since board space and chip price wasn't an issue, and for a (hopefully) longer tube lifetime, I decided to use six individual driver ICs.
For driving the rightmost decimal point (which I use as a flashing half-second indicator), I employed a normal bipolar high voltage SMD transistor (BFN26).
I used the MAX1771 based Nixie HV Switching PSU design by Nick de Smith. My PCB layout wasn't as elaborate as Nick's (longer traces, lack of ground plane, MAX1771 socketed, etc.), but it still works fine, and I've measured approx. 83% efficiency at 25 mA load. Most of the power is wasted in the inductor; the other components hardly warm up at all.
Knowing that attempts to make my own DCF77 receiver/demodulator would be a waste of time, I bought a ready-made module that has an open collector output which basically corresponds to whether the 77.5 kHz carrier is at full or reduced power. I put the module into a separate plastic case with about 2 meters of cable (since putting it inside the steel case of the clock wouldn't have been such a good idea) and a 2.5 mm stereo plug that connects to the clock. The date/time code can then be decoded in software on a microcontroller.
In order to handle the DCF77 decoding and RTC tasks, I chose an ATMEGA16 microcontroller. It has enough output pins to drive all six BCD-to-decimal decoders without any multiplexing, and I was already familiar with AVRs.
Using EAGLE for the first time posed a bit of a learning curve, and I missed out on some nice features (such as the ability to easily create a ground plane, which I didn't), but overall the process was straightforward. I even found a part library for Nixie tubes, including my IN-14, on the CadSoft web site. It turned out that whoever did it was probably looking at a Nixie datasheet that describes the tube as viewed from the bottom, when actually the parts should be drawn as viewed from the top in EAGLE (and yes, I mirrored the tubes in EAGLE since I soldered them on the back side of the board). Luckily the tubes are symmetric enough that it was possible to correct this error in software – but next time I'll make sure to verify any downloaded libraries before I use them!
The PCB was ordered from PCB-POOL.
Plugging all the crooked and corroded tube leads into the right holes and aligning the tubes was a bit of a challenge, but other than that, things went well.
I soon discovered that the high voltage power supply generated too much RFI to allow DCF77 reception by a receiver connected to the same circuit (or even in the vicinity of the power supply). After fruitless experiments with filters and cases, I decided to go for a pragmatic solution: every morning at 4 am (when no sane person should be awake :), the power supply is turned off (by means of the SHDN pin on the MAX1771) for a couple of minutes until one DCF77 message has been correctly received.