Finished Clock
This is a project that I completed in July 2017.
Intro
A Nixie tube is an electronic device for displaying numerals. It consists of a glass tube filled with Neon gas at low pressure, containing a wire-mesh anode surrounding ten cathodes, shaped like numbers. Applying power to one cathode surrounds it with a red/orange neon glow discharge. These were very popular in the 1950s and 60s, and many companies in the Soviet Union were still using them up until the 1980s and 90s. (The tubes that I’m using are a Soviet design and were manufactured in 1975). They fell out of fashion with the advent of digital displays.
After seeing people use this amazing cold war technology to keep time, I knew I wanted one for myself. After pricing them online, assembled and in kits, I decided I could create my own version for around the same price as a kit. Plus, it's a lot more fun to build your own than simply assemble somebody else’s kit.
The IN-14 (ИН-14) Nixie Tube used
IN-14 Nixie Tubes
Without any plan I purchased six IN-14 tubes from an eBay seller in Ukraine. I had thought of using Perfboard or some other crude method, before eventually settling on designing my own PCB. This was my first PCB design of any kind, so I wanted to use it as a learning experience. I had experience using Arduino in the past, so I decided it would be the simplest platform to develop this project with. I chose to use an Arduino Nano because of its small size and ease of use.
Over the course of a few months, I designed a board using Eagle, and had it made by a Chinese PCB printing company, EasyEDA.com .
Locations of the pins for each digit
The power supply DC-DC step up board was bought on eBay as an unsoldered pcb kit with parts. This converts a 12V DC input to an adjustable output which I set to 190V using the onboard potentiometer.
The anode of each tube is connected to a 190V rail from the power supply, through a 22k resistor, so as to limit the current supplied to each tube.
K155id1 IC
The K155id1 Driver IC allows the easy control of all ten digits on a nixie tube by simply passing binary number values to its four input pins (A, B, C, and D), e.g., 1001 would display "9" on that tube.
K155id1 Pinout
SN74HC595
SN74HC595 Pinout
The SN74HC595 shift register has eight outputs, and multiple registers can be controlled from only three digital pins on the arduino, making it the perfect choice for a project like this as one register can drive two nixie ICs, meaning that all six tubes can be controlled from only three Shift Registers, which are connected in series from pin 9 (QH’) of one chip to pin 14 (SER) of another. So by sending binary signals to the Shift registers, I can display any number on any of the Nixie tubes. I connected the Shift registers to pins D8, D9, and D10 of the Arduino.
RTC-DS3231
I’m using an RTC-DS3231 Real-time clock module to keep the time, as it’s fairly accurate, and uses a 3V coin cell battery to keep the time when the main board is not connected to power. There are Arduino libraries readily available for this board so it was an easy choice.
I’m using the Adafruit RTClib library to set and read time from the rtc.
By using: rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
you can set the time using your computer’s time when the compiler was run.
I decided to add four push buttons to the board, for setting hours, minutes, and seconds, and to switch between displaying the time, and the date.
The arduino has built in pullup resistors so i didn’t need to add any on the board for the buttons and can call them by using INPUT_PULLUP
in the arduino setup code.
Board Design
I designed both the schematic and layout for this project using AutoDesk EAGLE. This was interesting for me as my first attempt to design a PCB from scratch. I found many EAGLE part libraries online which saved me a lot of work, although I still had to design my own part files for a few components, such as the power supply. I designed a schematic and started to connect everything together.
EAGLE Schematic
Board Layout
I ordered the finished board from Shenzhen, China based PCB company EasyEDA.com. It cost 40USD including shipping for the minimum order of five boards, which took about two weeks to print and ship to me. The boards are extremely high quality and I would recommend this company to anyone else looking to print a PCB.
After I recieved the boards, and soldered on all the parts, I realized that I had forgotten a connection on the 5V line, so I soldered a small wire on the underneath of the board to fix this. I also accidentally used a upside down version of the RTC module in my designs, but luckily the module has the same four pins on both sides so I was able to simply rotate the module 180 degrees and remove the two pins that I was not using.
Originally I mounted the board on a piece of yellow perspex but the board was exposed and gathered a lot of dust on it so I ordered a custom built clear acrylic display case from strikingdisplays.co.uk, then drilled mounting holes and a hole for the power cable at the back.
Here’s a top-down view of the finished board: Final Board
I will provide the full Arduino code if requested.
Thank you for reading this. I hope this is useful for someone.
Neil