You do need a couple of things before we get going, so let's get them out of the way first:
Read this short guide to see what to buy.
Nixie tubes need around 180V to start glowing. That means you need a high voltage supply.
You can design one yourself, although I recommend saving the trouble and getting a premade module like this one. They are tiny, inexpensive, efficient, and run on 5V. Just search 5V Nixie power supply on ebay or google.
By now, you should have the tube, corresponding exixe board, headers, and the high voltage supply:
Good! Now we can get going.
Take a look at the Arduino library docs to download and install the library.
If you're not using Arduino, there are some barebone examples too.
Let's make sure the board works before soldering the tubes.
When handling the bare circuit board there is a risk of electrostatic discharge, where the static electricity(SE) on your body discharges and damages the board. This is especially a concern during dry weather. My suggestion is simply wash your hands, by doing so you discharge your existing SE through the metal water pipe, your hands are moist to prevent further SE build-up, and your clean hands won't leave greasy fingerprints all over the place, win-win-win!
So do that, solder on the headers, and take a look at the pinout in technical_details.md. Turn off the power when hooking up the board, only turn it on after all connections are complete and double-checked!
First we hook up the power pins. Connect the GND to GND, and 3.3V power to 3V.
Next are the SPI lines. Connect MO to MOSI line, SCK to SCK line, and CS to CS line. For Arduino UNO below, MOSI is pin 11, SCK is pin 13, CS is pin 10. Consult the datasheet if you're using other boards.
Double check the connection, power on, and try the LED test. Change the cs_pin
variable if you're using a different one. Compile and upload in Arduino IDE.
The LED on the exixe module should turn purple. You can play around with the RGB values for other colors.
If the board is not responding, take a look at the SPI commands in technical_details.md to make sure the SPI is configured properly, and the commands are valid. Also make sure the RST pin is HIGH, and CS pin is asserted properly. Use a logic analyzer to see what's going on if you have one.
I recommend testing your tubes first to make sure all digits light up, so you don't end up soldering a dud to the module.
First locate the anode on you tube:
On IN-14 the anode pin is on the very back of the tube and is white inside the glass. On IN-12 an arrow on the glass points to the anode pin, which is rather convenient.
Next, connect +5V to 5V input of the high voltage module, and GND to GND. You should get around 180V at the HV output pin. Be very careful not to touch that. It might not kill you but you'll definitely feel a shock.
To test the tube, connect the anode to 180V THROUGH A 68K RESISTOR, then touch each cathode with GND and see if the corresponding digit lights up:
Be very careful not to touch exposed metal pins, a pair of glove might help if you want to be sure.
If you're using IN-19 tube, please see this guide for more information, otherwise read on.
After confirming the tube is good, you can insert it to the module. Match anode pin to the anode hole, then line up everything else:
It's a bit tricky on the IN-14 since the pins are not rigid. Just be patient and eventually it will all go in. Again, make sure the anode and every other pin is lined up correctly, then solder the tube in place.
Try keeping the tube straight. For IN-14 leave around 5mm of pins between the PCB and the glass as demonstrated on the middle tube:
It's also a good idea to wrap the bottom of IN-14 tubes with heat-shrink tubing or electric tape like the one on the right, to prevent backlight leaking.
For the 3.3V power supply, please budget at least 50mA for each exixe module.
This is especially important if you're using Arduino UNO or other 5V Arduinos. The 3.3V power pin on those can only supply 50mA of current, which is only enough for a single exixe module. If you connect more than one, things start to behave strangely.
You can either switch to a 3.3V Arduino where no such limit exists, or use a 5V to 3.3V regulator. Don't forget about the input and output capacitors, they are important!
With tube soldered on, and LED test working, connect 180V to the HV pin of exixe module, make sure your Arduino, high voltage supply, and exixe module all share the same GND.
First try the loop digit example, which simply loops through all the digits from 0 to 9:
After that, you can try crossfade to see the fancy crossfade animation:
If you're using more than one tube, take a look at multiple tubes example:
Note that the multiple modules share the same SCK and MOSI line, only CS line is different.
Finally, the multiple tubes crossfade example:
If your exixe modules are behaving inconsistently, such as flickering or not responding to SPI commands, there are a couple of areas to check:
-
As mentioned above, make sure your 3.3V power supply is adequate. Budget at least 50mA for
EACH
exixe module. -
Double check your connections. Make sure everything shares the same GND, and all the SPI lines are properly connected.
-
If you're using a breadboard, beware of dead holes! It happened to one of my customers, so if you're truly desperate, try moving stuff around, or use a different breadboard.
-
Some HV modules can produce significant noise on its output and corrupt SPI signals. Try leaving it out and see if situation improves (by playing with LED colours). You can reduce the noise by putting a ferrite bead along the HV wire, or try using decoupling capacitors. Make sure the voltage rating is adequate!
-
Try using a logic analyzer or oscilloscope to see what exactly is happening on SPI lines. Make sure the SPI configuration is correct, and compare the waveform with the correct sample capture.
-
If all else fails, start simple with a single module, no HV, and barebone example. If that works, start adding more stuff in. This might give you a better idea of which part is causing the problem.
-
Of course, you can always ask me! Feel free to open an issue or email me at
dekunukem gmail com
.
Consult the Arduino library docs and Python library docs to see how to use library functions. And explore the arduino sample sketches and python samples.
If you want to keep it simple, there are some self-contained barebone examples too.
For technical details and specifications, see this guide.
If you have any questions, feel free to open an issue or email me at dekunukem gmail com
. The former is preferable since it helps other people too.
That's pretty much it! You can let your imagination run free now. Go wild and have fun!