I'm looking to build a nixie clock. I have looked online, I found some guides but many used expensive nixie clock kits or custom pcbs. I came across some threads about driving a single nixie tube with an arduino. Later I found this thread here on this site called "How to drive nixie tubes from Arduino". In the thread JIm Dearden solved the problem that the creator had like me he also had a problem/question about connecting multiple nixie tubes to one board. But if you want to connect 4 digits/nixie you would need 16 io pins. But the board only got 14? Jim also talked about adding 4 bit latches between the arduino and the 74141 driver. Avoiding the need to tie up the I/O lines or multiplex the display. What does he mean with that? How do you wire it? Is it another chip that you put between or how does it look? This is the picture that Jim Dearden posted in the thread that I want to follow. Thank you for you time :)
To create a Nixie clock you either go with the much older technology .... 74141 decoder and a latch, or modernize your circuit to use far fewer pins and readily available components.
I'd suggest you could use the Microchip/Micrel 5822 8 bit shift register and high voltage driver which is more than capable of driving any Nixie tube.
You need 40 cathode drivers for four Nixie tubes so 5 * MIC5822 chips are needed.
Connected as a serial shift register you would need a single clock, data line and strobe from your MCU, and connect the data out to data in for the rest of the chips.
You could use the *OutputEnable signal to modulate the brightness but this requires another pin on your MCU.
Since the MIC5822 has an internal latch you only need to update the shift register at the rate of your fastest digit change, 1 minute or the update rate when setting the time. This makes for very simple software with no fast update timers or interrupts, and only requiring 4 pins maximum on the MCU.
The MCU data connection would look like those shown below ...note I have not shown VCC/Gnd or cathode connections:
Essentially, the idea is to provide intermediate storage of data between the Arduino and the driver. This can be simply done with 4 extra lines. A 74175 (well, 4 of them) can be used, and will require 4 extra io lines, and one 74175 per register. The idea is something like
Each Nixie has a 74175 - I've only shown 2. The 4 data lines are connected ("bussed") to all 4 registers. Data is output on the 4 data lines, and the clock to the appropriate register is toggled. On a rising edge, the data is grabbed, stored, and presented to the associated 74141.
Note that is is possible to do this with only 3 extra lines, but this requires another support IC - a demultiplexer such as a 74138 or 74139. In this case 2 lines would provide a digit address and the third would provide a clock. The demux will transfer the clock to the appropriate output to drive the register associated with the digit selected by the two address lines.
The Arduino Mega has like 52 io pins. I've seen them as cheap as $10.