For Christmas 2015, I decided to make a present for my dad. I remembered him talking about wanting to use nixie tubes in a clock that he had built in college, but ultimately deciding to use seven-segment displays for cost reasons. I thought it would be cool to build him the clock that he had first envisioned (or something close to it).
I scoured the internet and finally stumbled upon something called the “ArduiNIX”, an open source Arduino-controlled nixie tube clock (http://arduinix.com/Main/About.htm). I ordered a V2 “DIY” kit and built it up using my trusty Weller WES51 iron. After much soldering, the PCB board was assembled and I thought that I was close to completion. I was mistaken.
The code that was provided on the ArduiNIX site was non-functional when I uploaded it to the Arduino. Three of six of the IN-17 nixies lit up, but were in the wrong location and flickered, rendering the digits almost unreadable. The remaining three nixies did not light up at all. I thought that the problem might be the nixie tubes, but determined this was not the case by testing them individually on a power supply.
I turned to troubleshooting the software. I found that, though the documentation on the assembly had been excellent, details on the inner workings of the code were limited. After trying to retrofit the code for a few days, I decided to write my own.
Each nixie is lit by sending 180V to the anode connection and grounding out a cathode pin which is controlled by a SN74141 IC. Depending on the input to the IC, one of ten different cathodes on the nixie is grounded displaying a digit “0-9” on the nixie. In short, I found that writing to the cathode pins controlled the digit and writing to the anode pins lit the bulbs.
The kit I bought had 6 nixie tubes for a “hh:mm:ss” display. There were 3 anodes and 2 IC’s on the PCB. A basic flow diagram is shown below. “A1”, “A2”, and “A3” are the anodes and “IC1” and “IC2” are the IC’s that control the cathodes. The zeroes in the center of the diagram represent the digits on the clock.
Due to the configuration of the IC’s, only one anode could be driven at a time. This means that multiplexing had to be used. Multiplexing in this case involves switching between the anodes fast enough so that the display doesn’t flicker, but slow enough so as not to unduly wear out the nixie tubes. I found through testing that a 3ms delay on each anode is the maximum time interval that achieves this effect. As an example, a typical cycle would execute as shown below if the current time was 12:34:56 PM:
This cycle repeats until 1000ms are reached, at which point the seconds place is updated on the clock from “6" to "7”.
In addition to coding the clock, I also designed a mounting system based around an old motor mount I had been wanting to use in a project. I originally had designed a more “polished” enclosure for the clock (similar to ALPHA), but I ultimately decided that I liked the “mad scientist” look of the free hanging mount in conjunction with the nixies. The mount was printed from HIPS (high impact polystyrene) on my TAZ 5 Printer, and two lengths of coat hanger were used to suspend the nixie tubes and interface board from the base plate.