Basic Nixie Tube Driver
Build by Kittan           kittan |at| gekkoscience.com
Pictures are forthcoming. It's been a long week.
We acquired for a project (stay tuned for future updates!) a case of old Russian nixie tubes and a case of old Russian nixie driver chips. These tubes run off 150-170VDC, so the first challenge was creating a power supply to drive them. The obvious test option is to rectify mains, which yields somewhere around 160V to 170V when filtered. But that's boring.
The project these tubes are for will be powered entirely by a 7.5V 1A DC adapter, so I went ahead and built a power supply taking in 7.5V and sending out 150V. There's still some tweaking to be done on it to get efficiency up, but currently it's stable and functional in prototype. That writeup will have to come later.
So, what are nixie tubes? Basically it's a very simple gas-discharge lamp, like a neon light, except the glow is restricted to the gas immediately surrounding the internal "filaments" (well, technically cathodes). A standard nixie tube has ten (or 11) filaments, each in the shape of a number (the eleventh is usually a decimal).
The anode pin is what gets your high voltage. Each tube has a threshold voltage below which nothing's going to happen - you need enough energy to jump the gap from the cathodes to the gas and cause phsyics to do its thing. Any cathodes left floating or tied to a high enough voltage won't leave enough potential energy difference for the tube to light up, but pulling them to ground will let the current flow and BAM your digits start to glow.
If this all sounds really unnecessary or dangerous, it's because these guys predated LEDs and digital displays by a lot of years. Most manufacturers in the US stopped using nixie tubes in new equipment by the 70's when "better" (safer, cheaper, simpler... but lamer) alternatives were being developed.
So, driving a nixie tube. Each digit cathode is tied to a separate output pin, so you can pull one pin low at a time and display one digit at a time. Obviously this sort of function is necessary. But it's a numerical display, so the obvious thing to drive it is a digital circuit, and digital circuits count in binary. So you need some sort of decoder to take in binary numbers and convert that to individual lines per input value. And something to take that logic-level digit signal and use it to switch 150VDC through the tube.
Fortunately, something like this already exists, in the form of the 74141 TTL nixie driver IC, or its Russian counterpart the K155ID1. These guys incorporate a BCD-to-Decade decoder which takes in binary numbers 0 through 9 (Binary Coded Decimal) and internally uses that to drive one of 10 logic lines, each corresponding to a specific input digit. These logic lines are driven into internal high-voltage transistors for switching the tubes.
High-voltage transistors are necessary because if the voltage through the tubes breaks down the transistor, current will flow and turn on the tube - and probably destroy the transistor and, in this case, the entire chip. In order to keep required voltages low, each internal transistor has a zener diode across it, usually with a reverse voltage of about 55V. What this does, is draw away any excess current from anything over 55V coming out of the tubes - which means the transistors only need to hold up to 55V instead of 150V. But the 55V drop, in our case, only leaves 95V across the tube which is not enough to light it up.
So after getting the 150V power supply together, I made sure I had a regulated 5V source also pulling off the DC input and used that to drive a K155ID1 hooked up to a single nixie tube. I wired up a block of 4 DIP switches to provide TTL binary inputs and powered it up.
I was not impressed.
Multiple filaments were lighting up even when they weren't signaled. The best thing I could figure was the driver chip wasn't holding the voltage properly. I tested with another chip - actually several - and they all behaved the same way. It's possible the clamping zeners weren't providing enough drop to keep the tubes dark - but tests with adjusting the power supply told me anything below 135V across the tube shouldn't light it up.
When I got to researching, I found that some of the Russian chips didn't have internal zeners. These would require external voltage clamps, or a lot lower operating voltage tubes. I don't know if that is the issue in our case, but it makes sense - the internal transistors couldn't hold up to 150V and were starting to conduct.
So now the options are, either assume that we can find better nixie driver chips for not-terribly-expensive (though they haven't been manufactured in decades), or build a driver from discrete parts.
We found bulk lots of what are likely better drivers for more than $1 per chip. I designed a discrete driver that costs about $0.8 and is guaranteed to work - rather than assuming the $1 chips we'd buy are better than the ones we already had.
The first prototype, I used some logic-level FETs I had laying around, with a maximum Vgs of 200V - more than enough to work with our tubes. Wiring ten of them up, one per numerical cathode, gave me the ability to manually switch on each cathode. When turned off, the blocking voltage was enough to fully kill the glow.
So I started looking for surface-mount FETs that could handle at least 20V and turn on with less than 7.5V - the maximum DC driving voltage we'd have. I found a batch of SOT23 guys that should do the trick - part number ZVN3320F. These guys have a Vds_max of 200V, and Vgs threshold of around 3V, so more than good enough to hold our tubes on and off from a logic signal. The on-state resistance is pretty high - about 25 ohms - but since we're only expecting to push about 3mA per (nixie tubes don't require much current) the power loss is still negligible, at around a fourth of a milliwatt.
These parts were found in bulk at around $0.16 apiece. Each tube would require ten, so that's $1.60 per tube to drive.
So I also fetched some SOT23 high-voltage NPN transistors, at less than $0.04 apiece in bulk. These guys, part number MMBTA42, have a Vce breakdown of 300V and saturation voltage of less than 0.5V so would only burn off about 1.5mW while switched on. I opted to use these, given they're small, fully capable and also pretty dern cheap. In quantity, they'll add less than $0.40 per tube to the project cost. Even adding a base resistor (unnecessary with the FETs) only adds about $0.006 per cathode, taking the total cost to around forty-five cents.
So that's the drive electronics. Now for the brains. I found a suitable BCD-to-decimal decoder that would operate on either 5V or 7.5V, wasn't sure which we were going to want. Higher operating voltage means more switching power is available just in case the transistors were a bit greedy - as can often be the case for devices built to handle 200-300 volts. I ended up with Texas Instruments part CD4028B, a CMOS device whose pinout is nonsensical (though probably an industry standard), and will operate at 7.5V while driving enough push-pull output current to directly switch on our cathode transistors (through a current-limiting resistor). I acquired a few in SOIC packages; fortunately I had a DIP adapter for breadboarding.
Soldering the SOT23 transistors to the copper pads of some Radio Shack perfboard, I wired up a ten-input driver taking logic-level signals and switching a nixie tube installed on the same board. Each input, as well as 150V and ground, were broken out on header pins and the whole assembly was mounted on a breadboard and tested.
I was not impressed.
But that's because I forgot CMOS inputs require very little current, and are actually voltage-based so if left floating, they'll act like little antennas and freak out from stray signals. My test inputs were driving high, but not pulling low - as soon as I fixed that little oversight it started working perfectly - 0001 illuminated the "1" digit, 0010 gave me a "2" and so on. Pretty great.
While I was working on this, Novak set himself up a toolchain, compile script and breadboarded microcontroller and coded a simple BCD down counter routine. The microcontroller we chose for the project can be configured for push-pull outputs, which provides tied-high and tied-low outputs capable of driving CMOS inputs without any additional hardware. So we wired it straight to the breadboarded BCD adapter and BOOM it started counting down in the sexiest orange glowing decimal numbers I've ever seen. Many high-fives were exchanged after this sweet, sweet victory.