Yet Another Nixie Clock
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.
Supplies
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 Wemos D1 Mini
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.
Downloads
Getting the PCB Manufactured
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.
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: https://github.com/gztproject/NixieClock
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...
Downloads
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.