Github repo link

Modular Nixie PCB


I had eight Z5730M Nixie tubes lying around for over two years, so I finally decided to build something with them. JLCPCB has that nice promo for 10x10cm double-sided PCBs, but there was no way I'd be able to fit all 8 tubes on a single PCB. I didn't really want to make two clocks, in fact I didn't even know if I wanted to make a clock at all, so I decided to design a simple daisy-chainable board for a single Nixie. I bought all components for this project from LCSC, JLCPCB's partner store, to save on shipping.


Since Nixies are high voltage devices (170V), no ordinary logic ICs would be able to drive them directly. I could spend some time looking for specialized HV parts, but instead I opted for the more labor-intensive way of using common ICs with additional HV output transistors. If you want to read more about driving Nixie tubes this way, here's a nice PDF for you to read. With that out of the way, I could decide on whether or not I wanted to go with two 8-bit shift registers, one 16-bit shift register, or something else to drive the ten digits each Nixie tube has. I setteled on one 74HC595 latched 8-bit shift register and one CD4028 BCD to 1-of-10 decoder. This way I only used 4 bits on the '595 so I had 4 additional lines unused for any eventual mods. The CD4028 has well defined all-low outputs for non-BCD inputs, which is nice for this particular application. You can see the full schematic here.


The main motivation for this project was to use those Nixies cheaply, so I had to find some pretty cheap connectors that could still carry 170V safely and be mechanicly sound at the same time. My fist instinct was to look at some pin headers, but by the time I found two separate pinheaders, one for HV, on for LV, the cost was comparable with standard DB9 connectors, so I used those. They are also more rigid and match better, but their added bulk would make the resulting PCB wider.

PCB Layout

I really hate fixing lazy or bad designs in software, so here I decided to make neat connections on the schematic and then spend some time trying to route it that way, instead of deciding what to connect where while routing. It's worth mentioning that while this approach it completely viable in a little hobby project, I would never do it this way while trying to meet deadlines in a commercial one. Anyway, I managed to place and route everything in two layers, but not on the first try. Funnily enough, on the second try I barely even used the top layer. It just goes to show that PCB design is more of an art than a science.

KiCad 3D Renders

3D view from top 3D view from bottom
The above renders are of Rev 2.0, which fixed most of the issues mentioned below

The Nixie tube (NIX0) is in the front. Right behind it is the anode resistor R10, then the input and output connectors and in the back there's 170V input. On the bottom layer you can see the 2 ICs, 10 resistors and 10 transistors needed for each tube.

Price Optimization

As mentioned previously, this project was to be price optimized, which meant choosing the cheapest components that would do the job. 74HC595's are generic components, so I used the cheapest one on LCSC that could accept 3V3 inputs, $0.43 for 10 of them. At the time of writing LCSC only had one type of SMD CD4028, 10 of which set me back $2.10. Chip resistors and ceramic decoupling capacitors added up to $0.40. I almost automaticly added the 10uF cap on the 5V line ($0.38 for 10), which can probably be left out. One might think that it was the same story with the 170V 10uF cap (insurmountable $1.28 for 10 of them) and if you decide to build this project up ommiting them is probably a good idea, as I doubt they will be required for you and the board is much safer without them, as I didn't even add a bleeder resistor for them. My own situation, however, was slightly different. I didn't have a 170V power supply on hand, so I was going to build one. As I didn't trust myself to do that job well, I added those 10uF caps to literally drown any possible oscillations in capacitance. Continuing, both the female and the male DB9 connectors were $1.67 for 10. To decrease the already high number of exposed 170V lines, I used the female one for output (as it's the one that will be left unconnected in a chain). I calculated the required anode resistance value to be 15k to get the specified current, which would need to dissipate ~2W of power at the full 170V (which is a possible failure mode, I guess). That's why I decided on a 3W axial resistor at $0.32 for 10. Lastly I payed $1.41 for 100 MMBTA42 npn high voltage transistors, making the total for parts $9.66. I didn't buy any Phoenix (or ARK) connectors as only one would be used and I already had enough. The shipping was free (because I had already ordered the PCBs from JLCPCB at that point).


It took me a while to get to actualy building the boards after the PCBs and parts arrived, but when I finally did I wanted to finish it in a single sitting, which resulted in not sleeping for almost 40 hours. That was fun. At this point I think I should include a photo of what I hacked together two years prior to generate the 170V needed to test the Nixies when I first got them.

There's a coil missing from this photo

Better yet, this contraption was driven by an arduino uno of all things. Suffice it to say, it was not a particularly good boost converter, but it was enough to drive one tube at a time.
Anyway, before I tackled this problem, I had to solder a few boards. I soldered up two of them and even before testing, it turned out I made a rookie mistake (fixed in Rev 2) of making the lead holes only as wide as the specified lead diameter for my type of Nixies. Obviously hindsight is 20/20, so now I can confidently say I should have accounted for manufacturing tolerances, my tubes being desoldered, etc. Additionally, it turned out the lead spacing specification I got was quite off anyway (that's what you get when you don't have calipers and have to use a ruller for awkward measurements), so it was quite a hustle to solder the tubes. After initial tests I also found out I screwed up the transistor's pinout (I used Q_NPN_CBE instead of the correct Q_NPN_BEC in KiCad).

Before testing it further I had to make myself a 170V source. I had a couple of TL494 laying around, so I used that. I used this basic schematic, I mean a boost converter is not the most complicated thing in the world, but look at that output stage. The TL494 has OE outputs, but there it was converted into a pseudo push-pull for fast gate driving, very nice. I used some random parts I found for both the diode and the MOSFET. Well, not random, obviously, but for example the only diode I had that was fast enough and could withstand that voltage was something rated for 1600V and 8A, whereas the only MOSFET with the required specification was a 500V 6A one. Oh, and even the coil I used was the one missing from that previous picture, definitely not good engineering practice, but it worked and it worked good. To be finished (the write-up, that is)