I have always been fascinated with retro display technologies, from nixie and neon gas tubes to flip-dot displays. Prior to LED and LCD displays, Nixie tubes were the go-to for numerical digits as seen in calculators and lab measuring equipment throughout the 60's. Until the last few years where daliborfarny revived the craft, the nixie tubes on the market were either new old stock found sitting in crates in Russia and the Ukraine, or salvaged from old devices. Dalibor Farny also has an amazing documentary on the manufacturing process of nixie tubes that I highly recommend you watch. I hope to one day use these tubes for a project or buy one of the awesome clocks!
An interesting quirk of the IN-14 nixie tubes I used in this project is that the digit 5 is just an upside down 2 and uses the same stamped metal piece to lower manufacturing costs!
If you choose to play with Nixie tubes, realize there is always a danger using high voltage and I am not responsible for injuries or broken electronics resulting in misuse!
Despite having an incandescent glow, nixie tubes operate at a cool temperature, and should average under half a watt of consumption per tube.
Nixie tubes have 1 positive pin called the common anode, where 170V is connected. There are 10 more pins for the numerals 0-9 which are called cathodes, and by grounding one of these pins it will display that number.
A microcontroller such as the Arduino Uno/Particle Photon, cannot directly control the pins of a Nixie Tube. For that task, a high voltage shift register sink such as the HV5222PJ can be used. It just so happens however that a specialized nixie driver called the K155ID1/7441/74141 chip was made for this purpose. Most of the chips available on eBay are copies of the original Soviet version. Before getting into multiplexing, understanding the basics of the K155ID1 is necessary.
Four binary bits of 0's or 1's are inputed to count from 0 to 9 on the nixie tube. The four inputs A, B, C, D as seen in the pinout diagram above, are directly connected from the Photon's pins. This is referred to as Binary Coded Decimal (BCD), as 4 binary bits can be converted to a single decimal number. With the IN-14 nixie, there are 10 possible numbers to display, plus 2 commas, which were not used for this project.
A current limiting resister is used on the common anode, which is around 15k Ohms.
It is completely possible to make your own high voltage DC-DC step up boost converter, however I chose to buy a power supply rather than rolling my own as Taylor Electronics makes a well documented board with a very small footprint. It also has a low voltage input of 2-16V, whereas many on the market require 12V making it incompatible with USB power.
Datasheet for the Taylor Electronics 1364 HV Power Supply
It more efficient than basic designs using 555 timers as well. At a 5V USB input, and a 170V output, it has the ability to deliver 33mA or 5.6 Watts! Each digit uses on average 0.5W, so the max power consumption is well under the limit. Ideally there would be a resistor on each of the cathodes, as some numbers use more power than others due to an increase in surface area of the number, but that would require 9 more resistors and the brightness difference is very minimal.
Multiplexing is the process of combining multiple signals into a single signal with the benefit of saving the number of physical wires. In this case, each cathode number of all 4 digits are connected together using a single trace. For example all the cathodes for the number 2 are tied together and then connect to the K155ID1's 2's output pin. The Anodes are only powered on when that digit is needed to be displayed. When each of the digits are cycled through fast enough, Persistence of Vision creates the illusion that all 4 digits are powered on at the same time, where in actuality only 1 digit is on at any given time.
Some people say Nixie's shouldn't be multiplexed for tube longevity, however I have had mine running 24/7 for over a year with no signs of deterioration.
Because there needs to be constant cycling of digits, use of the delay() function in other parts of the code could lead to digits freezing during the delay. The Millis() timing method or interrupt/timer based delays are preferred.
To switch power on and off for the anodes using the Particle Photon, a transistor is needed. Due to the high voltage nature, a pair of NPN/PNP transistors in the configuration below works well as a high side switch. A good explanation why can be found on this stack overflow.
A nixie tube can develop what is referred to as cathode poisoning on numerals that are not used for a long duration. When a numeral is lit, a small amount of material is deposited onto the surrounding cathodes and the glass. In a 12 hour clock example, the tens-hours digit is most prone as it is only ever displays a 0 or 1. The deposited material from the lit cathode can prevent the surrounding cathodes from displaying properly due to having a layer of sputtered material on it. Once a cathode has been poisoned, it is usually possible to remove the coating, however it requires removing the tube from the circuit and over powering the cathode with many times its regular operating current to 'cook' it off.
A prevention technique commonly used is to regularly cycle through all the digits for half a second every 2 minutes or so. If you have seen this effect before and thought it was purely for aesthetics, well now you know it's functional too!
On my breadboard, IN-16 nixie tubes were used instead of the larger IN-14 tubes used in the final product. Again be careful with high voltage, and always turn off the circuit before making changes. I have a toasty Photon from connecting 3.3V and 170V together by accident!
I designed a 2 layer PCB stack with pin headers connecting the 2 boards together in order to keep the footprint of the entire board small. The awkward circular pinout of the nixie tubes makes part placement difficult on a single board design. The final product is only 10cm L x 3.5cm W x 7cm H with nixie tubes included!
Copper Etched PCB'sI have all the supplies needed to etch my own circuit boards at home, and have had the most success using the photoresist copper clad method rather than toner transfer. On the bottom board I did not leave the photoresist under the UV light long enough prior to using a developer solution. This caused an overall longer etching process in ferric chloride because there was a thin layer of photoresist retained on the entire board.
While the initial prototype was faulty due to over etching the traces and sketchy jumper wires, I was confident enough in my design to order some boards from China.
Final PCB'sFor the final circuit board, there were several changes and additions made. They are as follows...
- Smaller size PCB footprint
- Blue LED underlighting for nixie tubes using a MMBT2222 NPN transistor
- High Voltage IN-3 Neon Bulb for the colon in between hours and minutes
- DHT11 Temperature/Humidity Sensor
- SMD MMBTA92/42 SOT-23 package transistors over MPSA92/42 TO-92
This was my first time ordering a PCB to be manufactured by a board house, so looking back on my designs there were certainly many improvements that could have been made. I used DirtyPCB's for these boards and since then I've ordered a dozen or more board from them and have always been satisfied with their service. On these boards I tried out both a black and white PCB soldermask with silver pad HASL coating for a 'stormtrooper' appearance. I had many bottom mount SMD components which I chose because topside space was scarce. It is most likely possibly to have a completely topside assembly with some careful planning/routing.
Underlighting using addressable NeoPixels would be great for a version 2!
3D-Printed CaseI recently purchased a Creality CR10S 3D printer, so I designed a 2 part case to house the clock. Solidworks CAD and STL files can be found in the Attachments section.
After it was printed, I sanded it down, spray painted sandable primer, then did a final spray with automotive paint.
Please comment if you have questions about nixie tubes, my circuitboards, code or really anything else!
Comments