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)
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.
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|
|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|
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…
All parts for the boost converter can also be sourced from Mouser.
|Boost converter bill of materials|
|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|
Perhaps you’d like proof that the clock works? :)