The “Captain Obvious” ArduiNIX tutorial for electronics newbies like myself…

  1. The ArduiNIX shield is a cool little daughterboard that connects to Arduino-compatible boards.  It uses two 74141 (or Russian equivalent) IC’s to drive and control Nixie tubes with your Arduino (and it’s 9V adaptor).  

  1. To use Nixie tubes, you need two things that can be a little tricky for the novice to provide:  A power supply for ~180 Volts DC, and Binary to Decimal conversion, so as to light the proper Cathode (digit).  

  1. Back in the day, the 74141 IC was developed precisely to do those jobs. (The Soviets made an identical copy that does the same, and tends to do it a bit more efficiently).  They convert low (~9V) voltage up to the high voltages needed, and with logic circuits, allow you choose which of the digits you would like displayed.  

  1. The ArduiNIX shield domesticates these little 74141 buggers and lets you control and drive Nixies with your Arduino.  In fact, for driving and controlling Nixies, it’s the most versatile and novice-friendly solution available.  There are other nice Nixie kits available specific devices, but they are not easily hackable for the novice to use for purposes other than their specific application.  With an Arduino and an ArduiNIX, the sky is the limit!

  1. This is the pinout and truth table for the 74141 IC.  More will be explained later.

By setting setting the A,B,C, and D high in various combinations, the 74141 grounds one of the digit pins.  Pin 8 provides the 180VDC to the anodes, GND is for the IC itself, and Vcc is the low voltage input, in this case, from the Arduino.  The Arduino output pins are connected through the ArduiNIX board and header pins to all of the above.  

  1. Multiplexing:  The easy way to light Nixies is just to ground the cathode you desire, put 180VDC on the anode and watch that pretty glow.  But, since Nixies have many elements per tube, and you will likely use several tubes for your display, that requires LOTS of redundant circuitry.  Multiplexing involves turning several tubes on and off faster than the human eye can detect.  That allows one circuit to update many tubes and elements by “rotating” through the display very rapidly.  This can also extend the life of the tubes, which is an added benefit.  The ArduiNIX uses the Arduino and the sketch code to provide this rapid-switching functionality.  

  1. The ArduiNIX has outputs of 4 anode pins and two banks of 10 cathode pins.  (Each bank of 10 cathode outputs is controlled by one of the 74141’s).  So, for example, through anode 1, you can control two 10-element Nixie tubes.  Through anode 2, another two 10-element tubes, and so on.  You could then theoretically drive eight 10-element tubes through multiplexing.  (Or forty 2-element tubes, twenty 4-element tubes,  etc.)

  1. Wiring the ArduiNIX:  The anode and cathode pins are nicely labeled.  This should be pretty self-explanatory, but for me took a little noodling about.  You need to find the pinouts for your particular Nixies in order to find the proper cathodes and anode.  With multiplexing, you will likely have more than one Nixie’s cathodes wired to each ArduiNIX cathode pin, possibly up to four.  Important Point:  The way the example ArduiNIX code and wiring are set up is slightly confusing, IMHO.  The first set of Nixies is wired to A4, NOT A1.  This is controlled by pin 10 of the Arduino.  
  2. The wiring to the Nixies should come from these anodes and cathodes.  With the 6 digit multiplexing code provided on the website, the tubes are multiplexed as follows:  first and fourth Nixies together, then second and fifth together, then third and sixth.  The following is the wiring scheme for the example code provided:
  1. The first and fourth Nixies should be wired with their anodes on the A4 pin.  The first Nixie’s cathodes should wired to cathode bank 1, 0 through 9 respectively,  and the fourth Nixie’s cathodes to bank 2, 0 through 9.  The second and fifth Nixies should be wired with their anodes on the A3 and their cathodes also to bank 1 and 2, respectively.  Third and sixth tubes’ anodes to A2, third cathodes to bank 1, sixth to bank 2.  (An eight digit setup might do tubes 1-4 together under one anode, 2-5 together, 3-6, and 4-8 together and use that final anode channel)

  1. To reiterate, to light the digit, the proper cathode AND anode must be “live”.  For example, if  cathode 4 on bank 1 is live, and anode A4 is live, then the number 4 on the first Nixie will light. Even though the number 4 cathodes of  the second and third are live, their anodes are not, so they remain off for that moment in time.  

  1. Logic wiring:  One thing that was not obvious to me was how the pinouts are connected for the logic inputs and anodes.  (The A,B,C and D inputs for each of the 74141’s.)  HERE’s THE SCOOP!    IC 74141(1) – A is Arduino pin 2, B = 3, C = 4, D = 5.  IC 74141(2) – A is Arduino pin 6, B = 7, C = 8, D = 9.  The Anode pins are then controlled by another bank of pins.  Anode A1 is Arduino pin 13, A2 = Arduino pin 12, A3 = 11, A4 = 10. 

  1. As described earlier, choosing the proper combination of A,B,C and D on each of the 74141 IC’s will allow you to make the proper cathode pins live (technically connecting them to ground).  See the truth table for the details, but for example,  if A is high(=1) and B,C and D are low (=0), the number 1 output pin will be on.   On the ArduiNIX board, these output pins are connected directly to the corresponding cathode pins.  74141(1) is connected to cathode bank 1, 74141(2) is connected to bank 2.  

  1. To turn the anodes on and provide the 180VDC, set one of pins 10-13 high.  

  1. So, if your ArduiNIX is wired as described, and you turn on Arduino pins 10 and 2, you will light up digit 1 on Nixie tube 1 of your display.  Pins 10, 2 and 6 would turn on digit 1 of tubes 1 and 3.  One final example:  if you would like to display the digits 1234 on your 4-tube Nixie display, you would switch rapidly (multiplex) between a pin combination 10, 2, 6 , 7 and a combo of 11, 3, and 8.  

        I hope this helps.  Please let me know if there are errors!  My next project is to run through the example code and try to explain what it’s doing, as well as suggest how you might modify it for different applications.