Introduction: Yet Another Nixie Clock

About: I'm a professional sound and light engineer that does a bit of electronics and programming on the side. I'm trying to improve my metalworking and welding. Besides being an avid biker I'm also a scout and a vol…

I've always wanted a nixie clock, there's just something about those glowing numbers that fascinates me. So when I found some not too expensive IN12s on ebay I bought them, marvelled at them when I received them but soon discovered that in order to make a clock out of them I'd need some more things. As I couldn't really find a board that would meet my exact specifications and wishes I put the tubes in a drawer and all but forgot about them.

Enter JLC PCB with increadibly low prices, I eventually decided to make my own.


6x IN12 nixie tube (others might work but require modifications on the PCB)

6x SN74141 or K155ID1 BDC-to-decimal decoder

6x 1.5kOhm resistor

4x 180kOhm resistor

4x MPSA42 high voltage transistor

4x 5mm neon lamp (you can also use orange LEDs but that's kind of against the spirit here)

4x 74HC595 shift register

2x 470nF ceramic capacitor

1x LM7805 5V regulator

1x Step-up HV supply

1x DC barrel jack

1x Wemos D1 Mini

Step 1: Designing the PCB

Since I'm a big fan of open source software I used KiCad EDA to design the PCB. I explored various nixie clock designs on google and decided to use the Russian K155ID1 drivers in combination with 74HC595 shift registers. The brain of operation is Wi-Fi capable Wemos D1 mini. As I found quite a cheap HV step up kit on ebay I decided not to do it on the board myself. Also I had most of the components already handy and designing a step up converter would mean sourcing a few extra. Maybe next time.

I know there are quite a lot of possible improvements both in the schematic and in the PCB layout but this was my first time actually working with KiCad and I did focuse more on the end product.

After finishing the schematic and trying it out on a breadboard I started laying out the PCB. This is an art for itself and quite a broad topic so I'm not going to go into too much details here. There are some great and in-depth videos online.

The whole KiCad project is available on my GitHub.

Step 2: Getting the PCB Manufactured

After double and triple checking your design it's time to actually manufacture it. I used to do it at home with thermal ink transfer and Fe3Cl but that process is quite messy, requires a lot of preparation and has, in my experience, quite unpredictable and inconsistent results. So as mentioned I opted for professional board house. JLC PCB (not sponsored) offers great prices and if you're willing to wait the long shiping time (or pay 10 times more for shipping than the boards) you can actually get a professional product that doesn't break your bank.
The boardhouse provides great step-by-step instructions on how to export and upload the gerber files and before committing, you can re-check your design in the online gerber viewer.
Now all you have to do is wait for the PCBs to be manufactured and delievered. Here's a nice review of the manufacturing process.
If you're doing a one-off thing, you can think about what to do with 4 left-over PCBs as the minimum you can order is 5.

Step 3: Soldering

Once the PCBs are delivered it's time do do some soldering, starting from the smallest (or lowest profile) components followed up by the bigger ones.

If doing anything bigger than just a few components I always use a bill of materials (BOM), KiCad even has a nice plugin to export an interactive BOM.

Step 4: Programming the ESP

I did the programming in the VS Code and tried to make the firmware quite flexible. At the moment it is working but there's a lot of room for improvement and more features.

The full code is available on github:

Step 5: Making an Enclosure

I initially designed just a simple box to be 3D printed as an enclosure but i hope to make a much nicer wooden enclosure some time in the future.

Well, usually the temporary solutions become permanent...

Step 6: Debugging

So. The board is ready, firmware is uploaded and it's time to plug the microcontroller in and put it on the wall!

Except that two of the tubes didn't light up. After some exploring and closer inspection of the board I found that some of the pads on the shift registers were just floating even though they were connected to the ground plane. It turns out I was being hasty and uploaded the files without doing one last DRC (Design Rules Check) after last second changes (Cu fill) so some areas were actually filled but not connected to anything. I also forgot to fix the HV supply trace when moving the mounting holes...

Well, as those were just some minor fixes I grabbed some bodge wire and connected the floating stuff.

It's always a good idea to take note of the HW bugs and fix it in the PCB design, if only just for future reference.

PCB Design Challenge

Second Prize in the
PCB Design Challenge