Nixie Tube Arduino Uno Driven Thermometer




Introduction: Nixie Tube Arduino Uno Driven Thermometer

About: I like to read all about the creative ideas everyone has here. I love to make "one of" projects, learn something about doing it and then move on to something new. Hope you like my ideas. email me...

First off I give credit to the many sources I found right here on Instructables and GitHub to pull this project off. The design of the box and the programming modification to get the Nixie tubes to sequence on start up to help prevent poisoning of the tubes is all mine, but I cobbled a lot of info together to get this thing to work. As we go along, I will point to very good links that helped me greatly as they do a far better job explaining than I could.

Materials Used:

1 - Arduino Uno ($10.00 eBay) - (I tried using a Pro Micro actually tried wiring two different units, and could NOT for the life of me get either to work with the DallasTemperature sensor. In frustration, I switched over to the UNO and had zero issues.

1 - Dallas Temperature sensor DS1820B ($5.00 eBay) - Water proof design, bought 3 to get the price discount.

1 - High Voltage Power transformer board (12vdc to 180 vdc). ($8.00 eBay)

1- Wall Plug Transformer (120 VAC - 12 vdc) ($3.00 at Goodwill thrift store).

1 - 120 VAC Wall outlet plug. ($2.00 Home Depot)

3 - IN-1 Nixie Tubes ($2.00 ea. eBay)

3 - Nixie tube Driver Chips SN74141 ($3.00)

1 - Plexiglass panel (front and for back), Perforated steel sheet metal panels

1 - On / Off toggle switch, cord, wire, solder, hot melt glue, etc.

Step 1: Build the Circuit and Test the Heck Out of It.

A great guide / overview of what you will be doing is model your project from Sascha's located here:

Then, you can use his code and modify it as you see fit as I did. Shout out to him for helping me find a bug in my code. Once you have an idea how this will come together, it is time to get into the details...

The core to this project is to understand how the tubes are driven. I suggest you understand and build this instructable first:

to understand how the tube is wired and the driver chip selects the output to obtain a given digit. This is well written and accurate.

Repeat this circuit build for each of the three nixie tubes needed for the display. Program your UNO to drive all three tubes to ensure you have the circuit wiring correct. It is very easy to cross wires and not get the correct bit pattern out of the chip to drive the desired digit. Trouble-shoot this until correct.

For the decimal point I just used a high voltage neon indicator bulb powered off the same high voltage source as the tubes.

One the Uno drives the Nixies correct... build this circuit to understand how the temperature sensor works using the OneWire protocol. Go here to learn about this:

If you have a breadboard and an second Uno, do that code and use the serial port function of the UNO output to convince you understand how that works. Once you got the temperature reading to the UNO, you are almost done!

Step 2: Marry the Programs Together.

Build your code by first getting the temp probe to output on the UNO serial port. Once working, add the lines in for sequencing the nixie tube. I originally did this in the reverse order and had nixie cycling but no temp display...

If the Arduino code freezes after it cycles and gets stuck like this...

Chances are your temperature sensor is not transmitting or the UNO is not converting the data to the serial port. I struggled with this for days... I think my Pro Micro was not working with the OneWire correctly because when I switched over to an UNO, it worked just fine.

Here is my program...

On power up it rolls through the digits to help stop nixie poisoning. Then goes right into displaying the temperature.

Once all was working I had to cram it in the box and add 6 LED lights to light up the interior. I used exotic woods of Zebra and orange agate. The copper and the steel plate were patina'd with muriatic acid and copper sulfate.



  • Fix It! Contest

    Fix It! Contest
  • Creative Misuse Contest

    Creative Misuse Contest
  • Water Contest

    Water Contest

22 Discussions


Question 3 months ago

Finally, I managed to get this nixie thermometer working on a breadboard. Now, I need to design a proper PCB to build it. A number of changes have been made: First, I used IN-14 nixie tubes. Second, since using an Arduino Uno is a huge waste of space, I used an ATMega328P as a stand-alone Arduino and it works perfectly OK.

Since the cathode poisoning prevention cycle runs just once at start up, is there a way to include in the sketch a "reset" function once every 24 hours, so that this cycle is running on a routine basis? I am not an expert in Arduino programming and I would need your help.

Thank you!

1 more answer

There are two ways to do this. The direct way would be to add a RTC Clock module and set the clock up to run. Use an IF statement that when the value of hours equals 24 to run the RunPoison() routine. See my Nixie clock instructable I just posted on my clock. It has the clock and a poison routine in it already. An indirect way without using a clock module would be to use the statement that counts scans. You can It is called millis...After so many milliseconds, then call the routine to anti-poison. From the google search...

Returns the number of milliseconds since the Arduino board began running the current program. This number will overflow (go back to zero), after approximately 50 days.


time = millis()


5 months ago

Very nice job! I have decided to try one myself.

Since I'm a newbie in Arduino, I can't figure out where the wire of the temp sensor is wired in the Arduino board. Your sketch says:

"OneWire ds(19);// on pin 19 (a 4.7K resistor is necessary)"

but I don't see which one is pin 19.

Could you help me with this?

2 replies

I am not sure which Arduino you are using but just hoogle Arduino Uno pinout or the very type of Arduino you are using then click images, there will be all sorts of pinouts for the Arduino you googled. On the UNO pin 19 is the same as A5 lower left hand corner.

Thank you for your reply. Since it was some time passed without a reply, I searched around and found that already myself. Meanwhile, could you have a look at the question I have made a few days ago?

This is an awesome Instructable! I've been wanting to try out a Nixie Tube project for a long time...

I'm curious about the Arduino code freezing like you mentioned near the bottom:

"If the Arduino code freezes after it cycles and gets stuck like this..."

I'm running a project with an Uno and some DS1820B's as well, and after a couple hours of running continuously, it will usually freeze and hold everything at its current state (i.e. temperatures no longer updating).

I don't fully understand this line that you wrote: "Chances are your temperature sensor is not transmitting or the UNO is not converting the data to the serial port."

Any idea what caused this issue for you or how you resolved it? Or could you elaborate on your troubleshooting process?


3 replies

Never could figure it out. I bought a new sensor and a new Arduino... and walla... no issues. I have no idea if the sensor was toasted or not or if the Arduino fried a register or bus or ???

All my issues were trying to get this to work on an Arduino Pro Micro. I wired this all up soldered TWICE and both acted the same way. I then abandoned the project and started from scratch with an UNO and just the DS sensor only. For some reason that worked just fine - first attempt. Then I added the lines of code to drive the Nixies, it worked too, so I kept going. Bottom line... I have no idea why the same code froze up in the Micro. I never could get the temp reading out on the serial port so I suspect the processor did not understand the OneWire data. I even tried other inputs thinking I fried the first input. No luck. In short, this isn't the first time I was burned on smaller arduinos. The UNOs seem more robest / user friendly in a variety of applications. Hope this helps.

Thanks for the response! It might end up being one of those things that I just never track down a cause for....classic electronics project =)

Looks awesome! I don't think the outlets on the back are a good idea however. If anyone plugs a heavy load into it your power cord looks like it will burn up.

2 replies

The cord is NEW reproduction cord for antique lamps. It is rated for 125 VAC like a new heavy lamp cord with a cloth cover over the vinyl. Think of it as a standard household extension cord.

No worries the cord is brand new reproduction quality. It is very well insulated and rated as any new cord. I added the outlets to the back so I can add a USB charger or other device on it when it sits on my desk. Who knows how long USB will be around to build that into the box as I did in other projects before... see my others and I've changed this strategy... LOL

Good evening, Please could you give a more specific link to the Hi voltage PSU. When I have tried to search ebay, all I end up with is 6000V PSU's .


Looks great, I love Nixie tube projects.

Here's one I built using an Arduino Mega, nxie tube shield, and a couple of stepper motors to move the chiming mechanism from an old clock, all housed inside an old 1930's Marconi radio

2 replies

Simply a KILLER project! I love the blend of the chimes, cabinet and tubes. Could NOT be any cooler!

Thanks very much. I just had a look at your other instructables and they completely blew me away. The whole steampunk look with the vintage electrical parts. Awesome work!

Really love the nixie. good job. will be one of my future bilds

1 reply

Great! Test the circuit as you build it... DS temp sensor first, then add code for the nixies... It can can hairy quickly! Keep a sharp eye on how you wire up the chip drivers to drive the outputs for the tubes... Super easy to cross wire!

Yep, I'm building another one for a gift, this time with Vacuum Florescent Display tubes.