Feature

Nixie Tube Clock

using an Arduino Pro Mini

Robin Gorius

Issue 59, June 2022

Combining nixie tubes, Arduino and freeform electronics to build a timepiece that looks amazing.

Curious maker and engineering student, Robin Gorius, wanted to make a project using nixie tubes. After sourcing some from Ukraine, Robin got to work on building an Arduino driven clock. He then went next level by using freeform electronics for an artistic look. We got in touch with Robin to find out more.


Thanks for speaking with us, Robin. Tell our readers about yourself and what got you into electronics?

My name is Robin Gorius, I'm an 18 years old student from France currently starting studies in engineering. I've always loved to make things, to tinker. As a kid I was building stuff out of everything I could. Growing up I started to disassemble my toys to understand how they were made and reuse their components. I started electronics with an arduino starter kit when I was about 14 and since then I've made various projects from a kitchen bell system which plays an 8-bit music in every room to call for dinner to various lamps and freeforms including my last one, a nixie clock!

Sounds like a fun way to get the family to the dinner tables. What motivated you to make your Nixie Tube Clock project?

When I discovered nixie tubes, I was really amazed by the way they looked. After Christmas when the weather was bad in Paris and motivation was on the low side, I started to look around the internet to start a new project to regain a bit of motivation and found some nixie tubes which were at a good price. The clock idea came from a need as I lacked one at my place in my school. At first I was going to do one of those word clocks where the time is shown by lighting up some LEDs behind letters but the nixie tube idea seemed better to me.

There’s certainly something mesmerising about Nixie tubes. For our readers who are not familiar with them, please explain how they work.

Nixie tubes were mostly used between 1950 and 1980. Each tube is composed of a common anode made from a fine mesh, behind it are 10 cathodes each having the shape of a number. These tubes are based around cold gas discharge, the same working principle as neon signs. Usually, the anode is connected to around 170v through a current limiting resistor. To light a digit, its associated cathode is grounded enabling a little current (~2mA) to flow creating cold gas discharges.

What Nixie Tubes have you used in your project?

The clock is based around 4 IN-12b nixie tubes purchased from Ukraine just before the war. They are driven by K155ND1 high voltage binary to decimal converters which are in charge of grounding the tube cathode corresponding to the binary input. Each K155ND1 receives 4 bits thanks to 2 SN74HC595N 8 bits shift registers in series. Those enable the tubes to be driven by only 3 arduino pins. As I said, the binary data is fed to the shift register thanks to an arduino pro mini. It's reading time from a DS3231 RTC clock through I2C. It's also monitoring 4 capacitive sensors acting like buttons to put the clock in various modes.

The freeform electronics make for a beautiful piece of artwork. Can you tell our readers more about freeform electronics, what you use, and any build challenges doing this method?

Freeform is a way to build circuits without supports like PCBs. All the components are wired together thanks to hard wire, in my case 0.8mm diameter brass wire. Freeform really showed all the components and really adds something extra to builds. To form all the wires, I only used some pliers and patience, I didn't use any jigs or premade parts. All the ICs aren't directly soldered together, I made sure to use sockets to be able to replace any faulty one. The tubes are held by custom made sockets that were 3D printed. Creating Freeform circuits can sometimes be challenging as to connect two pins, you need to find a clear path to one another.

What Arduino microcontroller have you used, and why did you choose that model?

I used an Atmega328p running at 8Mhz which is the classic arduino mcu. I chose it because the project didn't need that much computing power. Moreover, the arduino pro mini really just is the atmega328p and its quartz, so it's ideal for final versions if you don't want to make a custom PCB. To program it, you only need an FTDI breakout which is really easy to use.

Tell us more about USB Power Delivery and where the power supply is located in your build.

The clock is powered by an USB-C power delivery board supplying 9v to the clock from a compatible charger. The USB-C power delivery technology enable compatible devices to ask the charger to put out either 9, 12 or 20v to reduce the current used and so limit losses. It can also enable better efficiency by limiting the number of boost converters and so losses in the device.

The USB-C PD board is negotiating 9v from the charger and feeding them to the Arduino and to a 5-12V to 150-220v boost converter which is set up to output 160V for my nixie tubes. My particular board has an input pin which can be driven by the Arduino to enable or disable the boost converter. This feature enables me to shut down the high voltage part of the clock without needing high voltage transistors.

How did you go about coding the clock? Did you remix someone else's code or start from scratch? Any particular libraries that you use?

I wrote all the code by myself, to really understand what was going on and to adapt to my specific needs. The only library I used was the RTC lib library which managed the DS3231 and the capacitive sensor library which manages the 4 capacitive buttons in charge of mode selection.

For now, the Clock has two modes, a constant display mode and a programmed one where it's shutting down the tubes when I'm not at my desk base one the time of the day. I've also implemented a "slot machine animation" to prevent cathode poisoning on tubes. Basically every hour or every time I press the dedicated button, every digit is displayed on every tube following the same pattern as a slot machine.

That would look great. Was there any prototyping that you needed to do and issues you needed to troubleshoot?

Before doing any freeform, or designing anything, I made a simplified version of the clock on a breadboard with only two tubes to firstly create the circuits and understand its subtleties and secondly to write the first bit of code needed to display digits on the nixies. I had to troubleshoot various things mainly on how the K155ND1 received their inputs as the datasheet was in Russian. I looked around the internet and made guesses on how to feed them data.

If you were to start again, would you do anything differently?

I think I would take a bit more time to really finish it better, I only had 2 weeks to do it from scratch and in reality, the final building parts only began at the beginning of week two. It was a real challenge to finish it before going back to Paris far from my workshop.

You should be very proud of how it looks. Is there anything we haven't covered about your project that our readers should know about?

One of the problems of freeform circuits is that wires can't touch each other so pins that need to be connected together need to have a clear path to one another. Due to the weird K155ND1 pinout and the circular nature of the tubes, I had to connect cathodes to outputs of the binary to decimal converter which didn't correspond to their actual digit. Doing so I wrote a really simple converter function which converts the number I want to display into the one I need to send which corresponds to the cathode it's soldered to.

For any of our readers who would want to make one for themselves, do you have details about the project?

I think that I’ve detailed various things here but if they need even more I will be happy to answer more questions.

Do you have a schematic diagram and list of parts?

I don’t really have a full schematic, only a partial one which I drew in my notebook.

Thank you for your time, Robin, and for sharing your project with our readers.

PARTS LIST

  • 4 x in-12B nixie tubes
  • 2 x Ins-1 neon lamp
  • 4 x K155ND1 or similar high voltage binary to decimal converter
  • 2 x SN74HC595N 8 bits shift register
  • 16 x 5 mm blue leds
  • 16 x 1k ohm 1206 smd resistors (pull up resistor for the K155ND1 inputs)
  • 2 x 180k ohm resistors (anode resistor for neons lamps)
  • 2 x 15k ohm resistors (anode resistor for nixie tubes)
  • 4 x 1M ohm resistors (used for the capacitive sensors)
  • 45 x male dupont connector (for the nixie tube socket)
  • 1 x DS3231 I2C RTC module
  • 1 x arduino pro mini
  • 1 x pd power delivery board
  • 1 x High voltage boost converter
  • 1 x two position switch
  • Some 4mm diameter brass tube
  • Some 10x3mm brass barre
  • Some 0.8mm brass wire
  • Some 0.8 wrapping wire
  • Some 24/30 AWG silicone wire

Robin Gorius

Engineering Student, France.