Introduction: XIV Nixie Clock

About: Now retired but have a passion for robot design and construction. Also enjoy programming, my career was largely commercial programming and design work using Cobol, Fortan, and industrial automation and integra…

XIV Nixie Clock V1

Project Date: December 2018 – March 2019

WARNING: Nixie tubes require 180v to operate, this is a dangerous high voltage and you need to handle the tubes and the supporting circuitry with great caution.

If you would like to use Nixie styled tubes in your project, which are safer to handle and use, then consider the VFD type of tube, similar character style, and style of tube but these tubes only require 27v to operate.


To understand the working of the VFD type and Cold Cathode type of Nixie tubes I would recommend the following excellent articles by Chris Woodford:

This is my first Nixie styled clock I have constructed. The clock actually consists of two clocks, the first being a 6 x IN-18 tube clock which is mounted on the clock’s top and displays both time and date. The second clock, this time based on 6 x IN-12A and 2 x IN-15A nixie tubes displays at the front of the clock and can display, time, date, pressure (with units and trend), temperature (both Centigrade and Fahrenheit) and, humidity (with units and trend). The time and date are separated with two single neon lamp-based separators, while only one of these lamps is displayed, to represent a decimal point, when the pressure, humidity or temperature is displayed. Both these clocks use “Direct/Static Drive” to power the displays and are based on two Arduino Mega 2560 boards. The fourteen tubes are driven by 12V to 170V DC to DC boost power supplies and 14 x K155 IC chips. The clock also powers two sets of Neon Lamps which switch off while the clock goes through its cathode cleaning cycle which happens at 19, 39 and 55 minutes past each hour. This cathode cleaning cycle consists of all six tubes displaying the digits 0 through 9 in sequence 6 times.

In addition the clock will sound a chime at 15, 30, 45 and 60 minutes. At the 60 minute chime the hour chime is also sounded. The chimes are standard MP3 files using a simple MP3 player controlled by the Arduino mega. In order to save on tube life all tubes are switched off automatically when the light level in the room dims to a predefined level, this is achieved using a LRD resistor located at the back of the clock. To help dissipate any heat build up both Arduino Mega ICs have copper heat fins attached and a 5V fan draws air out of the clock, cool air entering through a hole in the bottom plate.

The user can adjust the time, date, Chimes, and Chimes Volume using one of two 16x2 LCD displays, located at the back of the clock. The BME280 temperature, humidity, and pressure sensor is mounted on the back of the clock so as to not be affected by the clock's internal temperature.

Step 1: Equipment List

1 2 x Arduino Mega 2560

2 2 x DC to DC Step down Buck converter

3 6 x IN-18 Nixie tubes NOS (manufactured in 1988, USSR)

4 6 x IN-12A Nixie tubes NOS (manufactured in 1979, USSR)

5 2 x In-15A Nixie tubes NOS (manufactured in 1981, USSR)

6 2 x 12V to 180V boost DC-DC power supply

7 Plastic stand offs to support components and secure to base board

8 12v 1A DC power adapter

9 14 x K155ID1 Nixie driver IC Chips NOS (74141 chips can also be used)

10 14 x 16 pin IC CHIP carriers

11 multi-coloured wire (2m per colour, 10 colours)

12 1mm PCB female pins (70 required)

13 4mm heat shrink cable

14 2 x PCB board

15 14 x 15K resistors, 4 x 100K resistors

16 6 x Neon NE-2 lamps

17 2 x LDR(Light Dependent Resistor) (optional senses light levels)

18 2 x LCD 2605 with keypad, (only SELECT, UP, and DOWN buttons used)

19 2 x Power adapter 2.5mm input plug

20 2 x Two pole switch

21 5V fan

22 2 x Real Time Clock unit DS3231

23 2 x Pressure, temperature, humidity unit BME180

24 2 x Duel channel relay

25 3W/ 8ohm speaker

26 JQ6500 MP3 player

Step 2: Construction

The clock’s front display consists of 6 x IN-12A, 2 x IN-15A Nixie tubes, set within the wooden box that display the date, time (alternative time zone), humidity, pressure, and temperature in Centigrade or Fahrenheit. A further two IN-15A Nixie tubes that are located at either end of the 6 x IN-12A tubes display trend I.e. plus or minus, at the start of the display and either % or P symbols at the end of the display.

Inputs from the Arduino A,D,B, and C control the outputs from the BCD Decoder. Wires attracted to the BCD Decoder pins have “outputs” numbers beside these pins which refer to digits on the nixie tubes, so for example the wire attached to pin 1, output 8 is attached to the Nixie pin 4, which in turn will, if high, light the number “8” inside the Nixie tube.



1 8 4 8

2 9 3 9

8 2 10 2

9 3 9 3

10 7 5 7

11 6 6 6

13 4 8 4

14 5 7 5

15 1 11 1

16 0 2 0

The above applies to IC chips 2 through 7, IC Chip 1 is special in that it controls the front “trend” Nixie tube, while IC Chip 8 controls the rear “units” Nixie tube. The “trend” Nixie tube uses + and – while the characters % and P are used on the rear “units” Nixie tube.

Special Outputs IC CHIP 1 and 8



1 - 4 - IN-15A

2 + 5 +

10 % 10 %

11 P 3 P

In order to drive the K155di chip it is necessary to provide a binary value to the inputs A,D,B, and C. This is achieved by taking the digit to be displayed on the Nixie tube and breaking it down into its binary value:

digitalWrite(d, (value & 0x08) >> 3); // 0 – 9 digit equals value

digitalWrite(c, (value & 0x04) >> 2);

digitalWrite(b, (value & 0x02) >> 1);

digitalWrite(a, value & 0x01);

Step 3: Nixie Tube Pinouts

Each Nixie Tube has its own pinouts, each of the above datasheets shows these pinouts. Where the tube is supplied with solid pins I used PCB female pins to attach to these pins. Each PCB pin was soldered to its coloured wire and then heat shrink was applied.

Step 4: Pin Connection


1 = Anode / 3 = P / 4 = - / 5 = + / 10 = %


1 = Anode / 2 = 0 / 3 = 9 / 4 = 8 / 5 = 7 / 6 = 6 / 7 = 5 / 8 = 4

9 = 3 / 10 = 2 / 11 = 1

All Anodes are connected to 170v via a 15K resistor in series. The Neons are controlled directly from the Arduino Mega with 100K resistors in series.

Logical Driver

1 23 45 67 8 Tubes

+/- DD N1 MM N2 YY %/P Display

Chips 1 through 8 – Controls tubes 1 through 8, 8 chips in total.

Pin Action

1 Tube 1, number 0

2 Tube 1, number 1

3 Tube 1, number 2

4 Tube 1, number 3

5 Tube 1, number 4

6 Tube 1, number 5

7 Tube 1, number 6

8 Tube 1, number 7

9 Tube 1, number 8

0 Tube 1, number 9

N1 and N2 are both lit when the date and time are displayed. Only N2 is lit when temperature, humidity, and pressure are displayed, and the plus or minus tube is only displayed while these three are displayed. This is also the same for tube 8 where P is displayed while pressure is being displayed and % while the humidity is being displayed.

The six IN-12A and two IN-15A Nixie tubes have 11 cathode pins and 1 Anode pin all of which are soldered to 16AWG wire which in turn is soldered to a 1mm DuPont female pin. Both ends of the wire are heat shrink wrapped. Each wire is a different colour with the last three wire colours a repeat of the first three wire colours but having an extra black heat shrink wrapping added at both ends. This solder, wire, heat shrink is repeated for all six IN-12A Nixie tubes. Two cathode pins and the anode are connected using this method for the two IN-15A Nixie tubes. The DuPont female pins attach to individual header pins which in turn attach to the 10 output pins of the K155 BCD chip. Prewired DuPont male to female cables are attached to headers that are attached to the four input pins of the K155iD BCD chip and also attached to the output female connectors of the Arduino Mega 2560. The front Arduino Mega based clock also has neon NE-2 lamps however these form two dots between the date digits or a single decimal point when the temperature, pressure, or humidity are displayed. In order for this neon lamp to work off the 170V Nixie tube supply it is necessary to add a voltage divider, to reduce the voltage down to 130V to power these Neon Lamps.

Where Vin is 148V, Vout is 130V, R1 is 68K ohms, and R2 is 9K ohms. To control these two neon lamps the Arduino Mega uses Pins 11 and 12 as inputs to a two-channel relay which when enabled will provide a ground for each of the Neon lamps.

Step 5: Fritzing Diagrams

The attached Fritzing Diagrams show the basic working layout of each clock. I have not included many of the neutral wires as this would further complicate the diagram.

Step 6: Arduino Software


The software consists of a simple date, time, and temperature format option, selected by pressing the SELECT key. The UP and DOWN keys adjust the displayed values. The attached LCD screen displays in parallel what is displayed on the Nixie tubes. The Arduino software runs on the Arduino Mega 2560 board with attached BME180 temperature, pressure, and humidity unit. In addition, a DS3231 Real Time Clock and 5v fan are also attached. The primary role of the software is to convert the date, time, pressure, humidity, and temperature character strings into sets of individual characters. Each character is then further converted into a set of four binary as inputs to the K155 IC chips. These inputs A, D, B, and C are either high or low, when applied to the K155 IC CHIP the chip generates a 10-bit output which is used to drive its attached Nixie tube. The Nixie tube anode is supplied with 170V DC and connected in series with a 15K resistor, while each of the remaining 10 Cathode connections are attached to the K155 outputs.

At 19, 39, and 55 minutes past the hour all eight Nixie tubes go through a simple routine to reduce cathode poisoning, this consists of each tube displaying an increasing digit value from 0 to 9, this routine takes about 15 seconds to complete. A light detecting resistor has been installed so the clock displays will switch off while the room is dark.


It was decided as a last-minute addition to add a chime feature to the clock. This would only apply to the IN-18 clock. The CHIMES are 16 pre-recorded chime sound MP3 files held on a Mini MP3 player add-on board. The board is powered with 5v and connected to a 5W speaker. Its control is via Pins 0 and 1 on the Arduino Mega board. Further it was necessary to add a “chime” function to the clocks software in order that it would chime the quarter hours and each hour. In addition, a CHIMES Yes/No option and a volume control where added to the Clock adjustment menu.

Step 7: Review and Whats Next


This was not an easy project, over 150 individual wires to solder, heat shrink wrap, and check, plus ensuring that each was correctly attached to its IC CHIP or header pin. Caution was the watchword when handling any wiring due to the 180v DC supply to the Nixie tubes. The supply and use of the NOS stock Nixie tubes and K155 IC Chips was no problem. All purchased via eBay and coming from the Ukraine, long delivery time 4-6 weeks but well packaged and suppliers very helpful. Quality of soldering was important as was use of a rigid wire colouring scheme.


This clock is based on the Static or Direct method of driving the Nixie tubes, that is to say one BCD output, powers one wire which in turn lights a single digit within the tube. While this method works, I would like to move onto Multiplexing which in turn leads to a PCB based clock rather than numerous wires and potential failure points. While building this clock I took the opportunity to build two other Clocks both of which provided platforms for understanding the building process. The three attached photos show these two clocks the first a Kit based unit (IN-8-2 tubes) and the second a scratch-built unit (IN-14 tubes), basically a simplified version of the XIV clock. The third photo shows my next project a breadboard development of a Multiplex clock based on an USSR manufactured IV-27M VFD tube made in 1985.

Epilog X Contest

Participated in the
Epilog X Contest