Introduction: Nixie Tube Clock W/ Arduino Mega

This is a Nixie Tube Clock run by an Arduino Mega. It also has a set of RGB LED lights, and a button matrix on the back to change settings without plugging it into a computer. I used a set of laser-cut standoffs, but you can make your own with a small drill bit.

Some background: Read here about what nixie tubes are if you're curious. Basically they're gas-filled tubes with numbers 0-9 in them, when you run some voltage through a digit it will light up.

I'm sorry this guide isn't very detailed, please comment if you have questions. I also apologize that I don't have pictures of the RGB LED lights I used.

Step 1: Parts

These are the parts I used, you can probably find plenty of alternatives.

4 IN-14 Nixie tubes (get 5 or 6 in case one doesn't work) ($25 total)

1 130V-200V Power supply (Look up "nixie tube power supply") ($12)

4 K155ID1 drivers ($15 total)

1 DS3231 clock module ($2)

10 5.6K 3W resistors ($4) (You can also use 10K resistors)

1 Arduino Mega ($10)

1 long breadboard ($5)

Solid core wire - $5 ish

1 8-button matrix (optional) ($5)

Assorted heat shrink tubing ($5) + Heat gun

Tools: Soldering iron, safety glasses, laptop with Arduino software, patience, needle nosed pliers, wire strippers/cutters, exacto knife, multimeter, drill press, hot glue gun. Access to a laser cutter for easy acrylic standoffs, access to a 1/2" hole saw drill bit if you want to make your own.

Step 2: How to Power a Nixie Tube


Especially steps 1-3. You definitely need the 10K resistor. I used two 5K 3 watt resistors in series to accomplish this.

Basically, get up to 160v or so, put a 10K resistor between the power source and the nixie tube, and plug a lead of the nixie tube to the ground. Read the guide, it explains better than I will.

Step 3: Controlling 4 Tubes With an Arduino Mega

Once again, follow this guide. I'm just making this to show the last few steps of putting the parts together into a working clock.

I used K155ID1 chips for controlling the nixie tube, it was $16 for a set of 6 from Europe.

You can use multiplexers to need less outputs from the arduino, or there might be a way to use less of the IC chips, but I didn't do that.

I used one chip per tube, and 4 outputs from the Arduino for each tube. Because of this I needed an Arduino Mega, which has more I/O pins than the Arduino Uno. The above/below pictures are of my breadboard before I wire up all the parts, and a sketch I made of how I wired each tube up to the arduino with the chip.

Yes, this uses 4*4=16 I/O pins minimum, but that's fine because the Mega has like 60.

I wired up the button matrix by putting the "G" pin to power, and putting each button to an analogRead pin. This is because digitalRead sometimes reads the button as pressed when it isn't, but by only making it "pressed" if analogRead is at 1023 (The max value), I skipped most of that noise.

After wiring up the tubes, DS3231 clock module, and RGB lights to the arduino, it was time to do some major programming.

RGB LED Lights

I put 4 RGB LED's in parallel by wiring all the leads together with jumper wire. You can see it in the above pictures as the white wire that jumps between the four tubes. I used common cathode LED's, so if I put the Arduino pin to LOW they would be on. You can find plenty of tutorials online about controlling RGB LED lights, just figure out if yours are common cathode or common anode.

Step 4: Programming

I have attached my code, hopefully it helps. "NixieJT1" is the full code. DS3231 helps set the clock module

Some programming tips:

If your segments are lighting up in random order, try changing the order of the pins A/B/C/D. I made them be reversed of what I thought they should be, and it started working.

I used analogRead for the button matrix, and plugged the "G" into 5V. DigitalRead gets confused if you touch metal parts of the matrix.

The last part of the code (void DisplayNumber) is just going from 0 to 9 in binary. 0001, 0010, 0011, etc. There's probably a better way to do it.

Step 5: Laser Cut Standoffs

I have attached the file I made/used for the laser cut standoffs. My school uses an Epilog laser, and it's settings are a stroke thickness of .0001in or smaller to cut it, and anything else to just etch it. I just wanted them cut out, so all the lines .0001in or so.

I cut out two sets of standoffs mostly so that I had replacements in case I messed some up, but they also have small differences (different hole sizes for the wires and LED hole in the center).

If you don't have a laser cutter you can make these yourself with two normal drill bits and one hole saw drill bit (1/2 inch diameter). Wood would also work instead of acrylic, you just wouldn't have as cool of an effect with the LED's.