Nixie-Tubes are a type of electronic device used to display characters. They were developed back in the 1950’s before LEDs or LCDs were popular.
This design is my take on the classic Nixie-Clock. This version uses an Arduino Pro-Mini, a Real-Time Clock, and a Temperature Sensor.
Nixie Tubes come in all sorts of shapes and sizes. Some even display letters or other special characters. For this project I just needed the biggest vertical numeric digits and the 1N-14 tubes looked like the way to go! There were bigger tubes out there (1N-18) but they have gotten very expensive lately (~$40 each!). The 1N-14 tubes I found were around $10 each. Still a bit expensive, but they look great.
The 1N-14 tubes have a common anode and 12 cathodes for each digit, 0 through 9, and two decimal points. The anode needs to be connected to 170V with a current limiting resistor.
The tubes are driven with 74141 Nixie Driver ICs (datasheet). These are great because they take 4 5V inputs, and can control all of the digits for a single tube. Since I needed to drive six tubes, I needed six drivers.
Since Nixie tubes typically require a high voltage (~170V DC), special care must be taken! Fortunately, the tubes do not draw a lot of current. I measured that my tubes were drawing around 1.5mA each with a 27kΩ resistor. The Nixie power supply kit I got from all-spectrum was able to put out 25mA, which easily covers all six tubes.
First a 12V DC power supply brings power to the board. This 12V is then fed into both the Nixie power supply, and a 5V regulator. The 5V DC level is used to power all of the digital components on the board.
Arduino Pro Mini
The brain of Nixie-Bot is a small arduino board called the Arduino Pro Mini. The reason it is “Pro” is because it needs an external programmer, and the board comes without headers. This works well for Nixie-Bot because the footprint is small, and I can socket it onto the board. As a side note, some of the analog pins on the Pro Mini are not breadboard compatible!
Real Time Clock
The Real Time Clock module comes from sparkfun (link), and it is based on the DS1307 Real Time Clock IC. It is read over an I2C interface by the Arduino to get the current time. A battery on the back keeps the clock running even when the board is not powered!
To read the current temperature Nixie-Bot has a DS18B20 temperature sensor with (+/-0.5C) accuracy. It is read over a 1-Wire interface.
- 1N-14 Nixie Tube x6
- 74141 Tube Driver IC x6
- Nixie Power Supply Kit
- Arduino Pro-Mini
- 74HC595 Shift Register x3
- DS18B20 Temperature Sensor
- DS1307 Real Time Clock Breakout
Amazingly everything turned out perfect with the board! I soldered up the components and wrote some code:
For the code I first wrote a function that could write to all the shift registers. Then I wrote a function that would decode an integer (i.e. 1-9), and shift the right bits out. After that, it reads from the real-time clock and sends the right digits out.
Additionally there are two test patterns that run every minute to prevent the tubes from burning out. The first pattern scrolls the temperature across the display, and the second pattern scrolls all of the digits 1-9 across.
Scott-Bot.com by Scott-Bot is licensed under a Creative Commons Attribution 4.0 International License.