Bradley Worley about
My First Nixie Clock Project I had to get in on the Nixie action


The obvious next step from my LED clock was of course, a nixie clock. I became quite enraptured with the idea of designing and building my own nixie clock once I realized what nixie tubes were, so I bought some IN-8 (ИН-8) nixie tubes from eBay and went to work on a clock design.

At first, my design was crude. Using eagle, I put together a clock which used CD4016 decade counters, MPSA42 cathode drivers, and an AVR, as well as an integrated boost controller. My mistakes were numerous, and they resulted in the frying of an ATmega8535 and an STK500. :/

My second design used a MAX1771 boost converter and an AVR which drove six 74141 nixie drivers through SN74HC595 shift registers. This design was too expensive to even try, so I scrapped it. (I used an autorouter to route the traces on the board anyways, so it’s a good thing it never went anywhere… Never trust the autorouter! :P)

Mainboard design

Finally, I decided to rectify the (120 Vac) mains to 170 Vdc for the tube voltage and use a multiplexed setup: ten MPSA42 cathode drivers and six MPSA92+MPSA42 anode drivers. The ATmega16 receives a pulse-per-second interrupt by prescaling the signal from a 32.768 kHz watch crystal. A second timer/counter is used to multiplex the nixie tubes at 31.25 kHz. Of course, there are switches to increment the hour and minute.

Here are the designs for the main controller board of nixer:

The code for nixer is C linked against the avr-libc open-source library for AVR micros. avrdude commands are already available through the Makefile included. The gerber zipfile is ready for sending to BatchPCB, if you’re interested.

Mainboard materials

I guess I was on a Mouser kick when I designed Nixer, since I sourced all the parts through them…

Nixer mainboard bill of materials
Part Description Quantity Price ea. Subtotal
556-ATMEGA16-16PU ATmega16 16kB flash micro 1 1.42
293-1M-RC 1M 1/2W carbon film resistor 6 0.09
293-75K-RC 75k 1/2W carbon film resistor 3 0.09
293-22K-RC 22k 1/2W carbon film resistor 12 0.09
293-10K-RC 10k 1/2W carbon film resistor 10 0.09
512-MPSA42 50MHz 300V NPN bipolar transistor 16 0.24
512-MPSA92 50MHz 300V PNP bipolar transistor 10 0.21
73-XT38T 32.768kHz 20ppm watch crystal 1 0.3

Boost converter design

Testing the driver circuitry with the 170 Vdc from the wall, while it proved the driver circuits worked, fried a few switches and diodes along the way… so, as a quick fix to ensure the safe operation of the device for years to come (and in other countries) I designed a simple ATtiny13A-controlled boost converter to step up 12 Vdc from a wall-wort into the 170 Vdc required by the IN-8.

The AVR (ATtiny13A) runs a simple C program that monitors the voltage at the output of a resistor-divider and adjusts the duty cycle of its internal 31.25 kHz pulse-width modulation peripheral. The RAM size of the ATtiny13A is a tiny (pun?) 1 kB, so I decided not to splurge on any fancy PID controls. In practice, the simple up/down controller works well enough on this clock.

Here are the designs for the power supply board of Nixer:

Again, the code is in C. Nothing special going on here…

Boost converter materials

All parts for the boost converter can also be sourced from Mouser.

Boost converter bill of materials
Part Description Quantity Price ea. Subtotal
580-18R104C 100uH 1.2A power inductor 1 1.42
299-2M-RC 2M 1/8W carbon film resistor 1 0.09
299-75K-RC 75k 1/8W carbon film resistor 1 0.09
299-51K-RC 51k 1/8W carbon film resistor 1 0.09
556-ATTINY13A-PU ATtiny13A 1kB flash micro 1 1.4
511-BYT01-400 1A 400V ultrafast diode 1 0.4
511-STTH102 1A 200V ultrafast diode 1 0.37
647-UPT2D471MRD 470uF 200V electrolytic 1 4.4
512-LM7805CT 5V 1.5A linear regulator 1 0.37
511-IRF630 200V 10A switching N-MOS 1 1.13
80-C330C105Z5U5CA 1uF 50V Z5U ceramic 1 0.46

Construction photos

Perhaps you’d like proof that the clock works? :)

Video of Nixer