Arduino Nixie Clock for Absolute Beginners




Posted in TechnologyArduino

Introduction: Arduino Nixie Clock for Absolute Beginners

About: Graduated Systems Engineer from the University of North Carolina at Charlotte. Currently working as a manufacturing engineer. I have mostly used this site for Arduino projects and coding.

***Special note**** Working on a multi-video youtube video guide, I will post the link once its done.

This is my first instructable so please feel free to comment on anything related to this project.

I am nearly an absolute beginner with the arduino micro-controller and only have a small knowledge base of programming, C++, the language used for programming the arduino is almost completely new to me considering my only coding experience is in VB.NET and SQL. It took me about 3 months to prototype and build this nixie clock and I wanted to put out an instructable to help people like me who are border line brand new to this. This instructable is a compilation of everything I figured out and I am going to try and make it step by step as best as i possibly can.

An overall synopsis for this project is an arduino based nixie clock that runs on a ds1307 break out board, a voltage step up chip, the arduino uno, and 14 in nixie tubes. I will try to stay away from the case that I built because I am fortunate enough to work in a shop that has professional CAD programs as well as million dollar fiber optic laser and half million hydraulic press brakes, which most people do not have access too.

This project was a gift for my great-grandfather and I did include a picture of the final product.

Step 1: Parts List

Please note before you get started on this project it will cost about $130 in parts and probably a little more if you want quality and good looking components.

Parts List (Really the must have components):

  1. Arduino Uno - $16 - On Amazon Here
  2. ds1307 clock breakout board - $16 - On Amazon Here
  3. Arduino Uno Prototype shield - $12 - On Amazon Here
  4. .1 uF capacitors (qty 6) - $4 - On Amazon Here
  5. 15K resistor (qty 6) - $4 - On Amazon Here
  6. Nixie Tube Drive IC Chip (qty 6) - $14 - On Ebay Here
  7. Shift Register IC Chip (qty 3) - $9 - On Amazon Here
  8. 14 in Nixie Tube (qty 6) - $25 - $35 - On Ebay Here
  9. 12V DC 2.5 amp power supply - $10 - On Amazon Here
  10. Voltage Step Up Chip - $17 - On Ebay Here
  11. On/Off toggle switch - $13 - On Amazon Here
  12. 16 pin IC socket (qty 9) - $10 - On Amazon Here
  13. Electrical connectors, I used a basic male and female ends, they can be found at hardware stores or the web
  14. Some type of PCB to solder everything too, (*see details below.*)

The PCB is a component that can be done in a few different ways here. You can make an ugly one or design and build one. I personally designed a board in a software called Eagle and then exported it into a zip file that I sent to a company called OHS park online. They built and shipped my custom board to me for $23. Anyone can buy the same board I designed which would run perfectly with the code I have uploaded to this instructable. The link to this board can be found here. Anyone can order my board project from OHS park.


After you have gathered all your parts and soldered together any of the purchased boards you are ready to continue to step 2.

Step 2: Setting Up the Wall Outlet and Step Up Chip

Setting up the wall outlet

There are plenty of wall outlet DC converters all over the place. I will focus on how to use the one I included in the parts list. If you use a different wall outlet than the one I used make sure it meets the same 12V DC and 2.5 Amps requirements.

The first thing is to get too bare wire from the outlet. For the one I am using you will take one of the female multiple tail ends and cut off one of the female ends close to the end of the base. From there you will see two wires inside of the single black insulation rubber. One is red and one is black. The red wire is the "hot" wire and the black wire is the "ground" wire, abbreviated as "GND." Use a pair of wire strippers to expose about two inches of the black and red wire. After that strip about a half inch off each of the red and black wire to expose the bare copper.

After you have added a connector to each end of the power supply you will need to cut two lengths of solid core wire. I strongly suggest you use a red and black wire for this. Cut a length of red and black solid core wire that is about 5 inches long and strip both ends of the solid core wire. On one end of the solid core wire, crimp or add another wire connector that will attach to the wire connector at the end of the wall power supply. Connect the two wire connectors so you have a solid core end for both the hot and ground wires. Leave one end of the solid core wire striped to be used during the project.

After you have connected the wire be sure to add heat shrink or electrical tape around each wire connection so that you can not have any metal on metal contact. I usually use electrical tape so that it is easy to get back to the connection for any kind of trouble shooting. For a better looking final product you can use heat shrink. You can also solder the wires into the wire connectors for added contact surface at the connection. I even solder the connectors together.

Setting up the step up chip

There are many nixie power supply chips on the market but I will focus on the one I added to the parts list in section 1. The step up chip should be the first portion of this project because it will be necessary to test your nixie tubes individually as well as in conjunction with the other portions of the project.

This step up chip has input and output terminals. The step up chip I chose for this project comes with some soldering required, so go ahead and solder the parts onto the PCB. You will need to add power to the chip's input and then measure the output with a multi-meter. You can then raise or lower the output voltage by adjusting a block that is on the step up chip.You can either use a bench power supply, or the wall power supply I put in the parts list. Please note if you use the variable power supply you will eventually want to re-measure and fine tune the terminal block with the wall supply since this is what will be used on the final clock. The wall supply may be slightly different than a bench or variable power supply.



------Using wall power supply

Step 1:

On the portion of the wall supply that has multiple ends, all barrel jacks (female), cut off a female end right at the base. From there strip off the black insulation rubber. This will reveal two wires, one red, and one black. The black wire is the ground wire and the red wire is the hot wire. Strip the end of each of these wires off as well to expose bare copper metal.

Step 2:

Get two electrical connector and attach one to each end of the bare metal. I prefer shovels and clip style connectors that must be crimped onto the wire. I usually also add some solder to where the copper wire meets the electrical connector. Go ahead and attach an electrical connector to both the hot and ground wire.

Step 3:

You will now want too get two pieces solid core wire. Most arduino enthusiast have it in large rolls. You will want solid core wire to minimize having to braid the copper strands over and over again. I HIGHLY SUGGEST you use a red and black wire to match the wires in the wall power supply. Strip a small amount off each end to expose bare metal. You will want to attach an electrical connector to one end of each of your two wires. Once again I usually put a little solder on each connector for better surface contact. Make sure you attach an electrical connector that will connect to the connectors you used on the wall power supply.

Step 4:

Once you have the electrical connectors on both the two wires on the wall power supply as well as the two solid core wires go ahead and plug them into each other. Make sure you have good contact between the connectors. You can use most multi-meters to check this,

Step 5:

After you have everything connected together go ahead and plug your wall power supply into an outlet. Be sure not to let the black and red wires cross or you will cause a short which can easily damage components or generate enough heat to cause a fire. Check to make sure you have at least 12 volts coming from the wall outlet power supply.

Step 6:

Once you are sure you have a solid 12 volts DC current coming from the wall power supply, go ahead and use heat shrink or electrical tape to first tape each individual connection, one for the hot wire and one for the ground wire, and then tape both of the taped portions together. This electrical tape or heat shrink will keep your metal contacts from shorting out while your doing other stuff.

Step 7:

Now you will need to plug the wall power supply into your step up chip. Remember the step up chip has a side for 12 volts in and an output with a range of much higher voltage. The input side of the step up chip will be marked with a "GND" or ground, and a hot wire input. Plug each wire into their respective terminal spot.

Step 8:

I recommend you get a friend for this step. You will need to have someone hold the probes of the multi-meter on the output terminal so you can get a reading of how many volts is coming out of the step up chip. You will then need to adjust the output voltage by using a small screw driver to turn the variable block on the step up chip. You want to get an output voltage of about 178V - 182V. Once this is set you are all done and your step up chip is ready.

-----Using variable power supply or bench supply

If you have a variable power supply go ahead and set it up to 12 volts and set the amps to a minimum that will allot for 12 volts. From there, connect the ground and hot wire to the corresponding terminals that are marked as the 12 volt input, and then measure the output voltage. Set the terminal block to the required output voltage. I used 178 volts for my clock.


Once you have the step up chip set to the required voltage you will be ready to begin testing your tubes individually.

Step 3: Testing Each Individual Nixie Tube

Before moving on with the build it is a good idea to test each nixie tube at each leg to make sure it is working. Make sure to check all the cathode legs connected to a numeric digit. Be mindful that two of the cathode legs that are adjacent to the anode are decimal points inside the tube. These have a much smaller required amperage level and can be blown out if they are given too high of a load.

To test each digit you will have to set up a simple circuit, much like a light bulb, and ground out each cathode leg (any leg that connects to a numeric digit). You will want to run your power supply (or wall plug in) into your step up chip just like you did when you were setting up the voltage for the step up chip. From your voltage step up chip you will run a wire from your positive terminal into a bread board, then in series a resistor (15k to 25k is fine), and from there run a male to female jumper wire from the resistor to your nixie tube anode leg (the positive leg). it will be important for this wire to hold onto the nixie tube anode leg by itself because you will need both hands free to the other portion of this test. The positive leg is the leg that is in the very back of the tube. It has a white ceramic piece inside the tube just above where the wire is exposed.


Once you have the positive anode side of the nixie tube set up, plug a jumper wire into the ground terminal on the high voltage side of your step up chip and leave the other end unconnected. Now carefully hold the nixie tube in one hand and touch the ground wire running from the voltage step up chip to each numeric digit leg of the nixie tube. Remember not to touch the ground wire to either the decimal legs or the anode leg (the one hooked into the positive side of the power supply). As you move around the tube you should see each number light up. Once you have tested all the digits this step is done.

Step 4: Figuring Out Your Shift Register

One of the two IC chips that is used in this project is the shift register. This chip will drive two 74141 nixie IC chips so its important to understand how these work. The chip is essentially a way to expand IO ports on an arduino controller, but here it is being used to drive the nixie tube control chips. You will use one for hours, one for minutes, and one for seconds, three chips in total. There is a really great instructable on how to use a shift register here. You will need to use the shift register to send high and low signals to the IC chip to control the nixie tubes.

The best way to visualize this is that you will control each of the 74141 chips with 4 inputs and you can equate each of those inputs with a light coming from the shift register. If the light is turned on then that pin is sending a high signal and if it is dim then the signal is low. Considering there are 4 inputs on each chip and there are two chips that means a total of 8 lights so the shift register is a really clean way to run these tubes.

Special thanks to codebender_cc for his instructable.

Step 5: Understanding and Testing One 74141 Chip With LEDs' and the Nixie Tubes

The next place to turn on this project is understand and testing the nixie tubes in conjunction with the 74141 IC chip. The nixie tube can be confusing to a new arduino and electronic builder, so I built a test circuit with LEDs' and then replaced the LEDs' with a single nixie tube. This way you don't have to worry about any issues with the tube and don't have to worry about including a 175 volts power supply. You can run the LEDs' with the arduino power.

There is a great instructable on driving a single nixie tube with an arduino uno and a 74141 IC chip. You can find this instructable here. To test with LEDs' use either 5 volt rated LEDs' or standard LEDs' with a resistor in series. Where ever you see a nixie tube cathode, or connection to the 74141 IC chip, attach a ground end of an LED and then run the other end to a positive power terminal. Of course use a resistor as needed. When you run the code to begin manipulating the nixie tube, a single LED should light up to the corresponding number on the 74141 IC chip. ie. Every time the 0 digit is supposed to be displayed on the nixie tube, the LED on the corresponding 74141 IC pin should light up. So each LED represents a single digit. You can find a chart of the 74141 IC chip's outputs. Try writing a code that will light up the digits 0 to 9 with a second or so delay between each digit. Looking at my picture schematic (fritz) instead of wiring all the LEDs in on the right side of the breadboard you can run them between the chip and the power bar on the breadboard.

Once you have this concept replace the LEDs' with a single nixie tube. Use the circular chart in the pictures of this section to see which leg of the nixie tube corresponds to which pin of the 74141 chip. After replacing the LEDs' with the nixie tube be sure to wire in the voltage step up chip to power the nixie tube. DO NOT forget the anode resistor on the nixie tube and be sure to use a strong resistor if your using the wall power supply because it will send a large amp load to the nixie tube and can damage it. If you are using a bench power supply just slowly raise the volts and amperage to 12 volts while supplying the lowest amperage possible. Otherwise start with at least a 25k ohm resistor and adjust resistance from there. You want to have a nice orange and yellow glow. If there is a lot of violet, blue, and purple coming out in the tube, then it is running too hot and you need to increase the value of the anode resistor. If the digit is not fully lit then you need to lower the resistance of the anode resistor. Once again try and write some code that will count from digits 0 to 9 with a second or so delay between each digit.

After You can successfully run a single nixie tube with a 74141 chip it will be time to merge the shift register and two 74141 IC chips to build a two tube platform with a single shift register driving two 74141 IC chips. This means a single shift register will drive two individual tubes, and with three sets of this circuit, we will make a seconds, hours, and minuets board

Special Thanks to Proto G for his code and instructable I used for this portion of my instructable and on my final clock!

Step 6: Building and Testing a Dual Tube Circuit

After figuring out and testing the both the shift register chip and the 74141 IC chip it is time to integrate them together. In the previous step I suggested using LEDs' instead of the actual nixie tube to remove the power supply and tube portions of the circuit to make trouble shooting easier, the same goes with this step. Since you will be running a circuit with two 74141 chips you will need 10 LEDs' to test the circuit.

Set up the circuit as shown in the pictures for this step and replace the nixie tube cathodes with LEDs'. Attach a ground leg of the LED to each pin of the 74141 IC chip pin leg that displays a nixie tube digit. Hook the other side of the LED to a power bar on a breadboard. Connect the shift register to the 74141 IC chips as shown in the schematic in the picture of this step. Again, try and count from digits 0 to 9 with a second or so delay between each digit.

Once you have both of the tubes functioning and count from digits 0 to 9 with a second or so delay between each digit it will be time to introduce the ds1307 time breakout board and actually make each time unit appear. This mean that depending on which 3 inputs from the arduino pins you change out you should be able to switch between seconds, minutes, and hours.

UPON REQUEST Kille1992. I have added the full schematic and eagle files for the PCB.

-The autocad EAGLE file is called shiftNixie.brd

-The schematic file is called shift nixie.sch

-The zip folder includes the two filed that are stand alone. The misc. other files in the zip folder are for generating a board with the OSH park company.

Step 7: Understanding and Using the Ds1307 Breakout

**SPECIAL NOTE** I have realized from issues people were having in the comments section that if you have a battery in your RTC and need to set the time you must change the time assign code. The change is simply removing the "!" character in the line "if (! rtc.isrunning()) {"...........By changing this to "if ( rtc.isrunning()) {" your clock should change the time.

After you have the tubes working and can manipulate the digit output on each tube it is time to add the time aspect to the project. The ds1307 breakout is what I used for this clock and will cover for the tutorial. The hardest part of this is getting each digit individually and then getting the tube to display the proper digit. But before all this, it is important to understand how to simply read time and get it to display with the ds1307.

First you should read adafruit's learn page on this breakout board which can be found here. Please note that on the left hand side of the page you can see a blue hyperlink list that includes: What is an RTC?, Parts List, Assembly, Arduino Library, Wiring It Up, Understanding the Code, and Downloads. Going through all these hyper links and reading up will greatly increase your understanding of what this chip is, what it does, and how it works.

Next you will need to download and install some libraries. You will need all of the following libraries: The RTClib library, the RealTimeClockDS1307 library, and the wire library. The wire library should already be installed on the arduino software. To install a library download the .zip file from git hub, renamed the library removing the "master" portion of the key name and then move the folder to the library folder in your arduino program files. There are a lot of tutorials on how to do this that you can find online if you google search it.

*PLEASE NOTE. For my fritz schematic I used the spark fun ds1307 (red) instead of adafruits, because the fritz library does not have adafruit's ds1307. The pins are the same though. Also note, you can plug the ds1307 directly into the arduino uno and set the A3 and A4 pin to high and low for power.

After installing the libraries you can open some examples from the library folders to look over code and figure out how it works. I feel like the best example is at C:\Program Files (x86)\Arduino\libraries\RTClib\examples\ds1307. Open the arduino sketch ds1307 and follow the code, it is fairly self explanatory. You will want to copy and paste bits of code into a new sketch and then use your comm port to make sure the time is coming out correctly. Once you can correctly print the time inside of the comm port on your screen you will be ready to move on to the next step.

Step 8: Running One Set of Nixie Tubes With the DS1307

This step will go over how to actually use the DS1307 and convert each digit into a digit on each tube. Once again instead of using the nixie tube you can use LEDs but by now you should be pretty comfortable using the tubes. This circuit will look exactly like the step where you counted down on a nixie tube with a shift register. However the code will be the focus on this step. You will need to use code to convert the time from the DS1307 breakout board to read each time digit and display it on the tube.

Considering each set of tubes will use 3 output pins from the arduino, the best way is too have 3 output pins beside each other for each unit of time. For example, pins 2,3, and 4 will control seconds, pins 5,6 and 7 will control minutes, and pins 8,9, and 10 will control hours.

Please note that every so often the tubes will need to go through an anti-poisoning cycle. Essentially, if a tube has a single digit on for long periods of time and the other digits are never used it can cause the tube to go bad. This is especially true for the tens digit on the hours tube since it will only use at max 3 digits (if you are using military time). Considering the tens digit on the hour tube will only change once every 12 or 10 hours it is important to cycle this tube every so often to increase the life span of the tube. I like to use this time to make a cool or unique event to happen. Just make sure whatever you end up programming cycles through all the digits of the tube. I have all the tubes count down from 9 with a couple second delay but you could program whatever you wanted.

The best way to test this portion of the build is to take one set of tubes and plug them into each set of output pins on the arduino and test each time unit. Once every single one of them works then you are ready for final assembly.

Step 9: Final Assembly

Once you have each unit of time working you will be ready for final assembly. There are some very important steps here that you will need to take and depending on how you do it will make your maintenance of this clock much easier or harder.

Soldering Up The Prototype Shield:

The most important to consider here is the prototype shield for the arduino uno. You have a GND and 5V row on the prototype shield and you can run all of your 5v logic and ground from these rows. You can either solder the wires straight into the rows, or preferably, solder in pin headers (female) and stick the 5V and GND wires into them. I would highly recommend soldering in the headers or else you will have to un-solder any of the wires that you put into the board if you need to trouble shoot something.

You will also need to solder in 4 pin heads for the high voltage wire and a row of 5 pin heads for the high voltage ground, please note that all grounds are common. You will need to tie all of these pin heads together with solder on the bottom of the proto board.

Lastly, you will need to add the DS-1307 breakout boards to pins A2 to A5. Remember to point the breakout board into the proto board and leave the last pin hanging off the side so that it is not inserted into anything.

Dual Tube Circuits to Arduino:

At this point you should have three circuits with two tubes on each. Each circuit will have the following: 2 anode resistors for the tubes, 2 Nixie Tubes, 2 IC chips to run each tube (74141 chip), and 1 shift register running the two 74141 IC chips. You will have the following inputs: 1 high voltage positive wire, 1 high voltage ground wire, 1 red 5v logic wire, 1 black 5v logic ground wire, and 3 other wires that will be use to control the shift register.

Plug your high voltage red wires into the row of female headers you soldered on too the proto board. Plug your high voltage ground wires into the female headers you soldered into the proto board. Plug the 5v red logic wires into your proto board. Plug the 5v ground wires into your soldered on female headers.

The last step is to plug in your data wires that control your shift register. Arduino digital pins 2, 3, and 4 will control the seconds. Arduino digital pins 5, 6, and 7 will control the hours circuit. Arduino digital pins 8, 9, and 10 will control the minutes. Please view the schematic from the step that was used to show how to drive two 74141 IC chips with a shift register to see the schematic.

On/Off switch

There are two main ways you can wire in your on/off switch.

Method 1: Wire the on/off switch between the wall power supply and everything else.

This method will turn the entire circuit off when the switch is set to the off position. To use this method simply use electrical connectors to place the on/off switch between the wall power supply and both the step up chip and the Arduino proto board. You will run the red 12v wire into the switch and then have two wires coming out of the toggle switch into both the step up chip as well as the Arduino proto shield. The pros to this set up is that your shift register and Arduino will not be running all the time and will extend the life of your IC chips. The cons to this is that you will have to rely on the battery for to keep the time on your DS-1307 breakout board. However, the battery and board are rated for a 7 year lifespan with before battery replacement.

Method 2 (My method):

I decided to run the on/off switch between the wall power supply and the step up chip. This way the arduino stays on all the time and I just turn the tubes on and off. Of all the components that will go bad the first thing will most likely be the tubes. This will keep the battery of the DS-1307 alive longer and since it was built for an older gentlemen who could not trouble shoot this stuff on his own I wanted to maximize the time it would keep time without any maintenance.

Power Supply:
You will need to hook up your external wall power supply as well. This is done by splitting the end of the wall supply at two points, you already did this at one. This will leave you with two sets of a red and black wire at 12 volts. Run one set of wires ( a red and black one) to the voltage step up chip, and another set to the arduino board. Plug the red (12V wire) into the Vin of the arduino board and the black wire (GND) into the GND pin on the arduino shield. Note the arduino board can handle 12V, so don't worry about hurting the board with the wall power supply. However, DO NOT RUN THE ARDUINO IN SERIES AFTER THE STEP UP CHIP! This will most likely fry the arduino faster than you can smell it burning.

Please note: you can always solder the wires directly into the proto board but this will be a huge pain later if you have to disconnect any wires, it is much easier to pull them out of pin headers than to remove solder.

Step 10: Case and Completion

This step is all up to you. You should have a fully functioning circuit that you can lay out on a table and watch work. I am not going to post my case because I made it with a multi-million dollar manufacturing facility and the average person does not have access to this kind of equipment. So it is up to you to get creative and build that case. I will however leave you some tips:

1. If you do use metal make sure to use stand off pins and don't short out the clock by having stuff ground out on the case. The bottom of the board and any metal can ground out on a metal case that could make your clock non-functional or even break it.

2. Go online and get some ideas!

3. If you end up using a wood design be careful of dirt and moisture. Wood is an organic compound so it can muck up a circuit board with carbon by products. A lot of wood can also have left over moisture in it if it is not completely dry which can cause moisture on your board. This can cause a short if not maintained.

4. Leave yourself room to work. My case is a larger one and it can still be a struggle to run all the wires and place everything. You want to make sure to leave room to actually wire everything up.

5. Pliers can be a life saver. If your case is smaller and you are having a hard time plugging wires into the shield, use a pair of small pliers to help you.

6. Leave room to add on. You may want to do some nifty stuff like add a huzzah wi-fi and temperature sensors. Then you could turn your clock on and off or even turn it into a weather station. Arduino can do a lot of stuff so make sure you can add on to your clock if you want too later.



  • Pocket-Sized Contest

    Pocket-Sized Contest
  • Microcontroller Contest

    Microcontroller Contest
  • Space Challenge

    Space Challenge

We have a be nice policy.
Please be positive and constructive.


5 Questions


Hi, Cledfo11,

This is an excellent presentation for beginners. Personally, I'm a beginner in Arduino, but not in electronics. I have decided to build this project, or rather use this project as a basis for building my design (different nixie tubes, no seconds display).

I have searched ebay for the DS1307 RTC, and I have found that the commonly available module is this:

which also has an AT24C32 EEPROM chip on-board. Can I use this instead of the one you have used without any changes in the relevant Arduino sketch?

Thank you,


I want to say yes but I would be careful with it. The only way I could know for sure is to buy that module and then plug it into my clock to check for time accuracy. If I were you I would just get adafruits, it's cheap and very effective. They also have a lot of online source code and examples to help you along the way.


Hi, nice project. Please how to set time format to 24h mode? Thanks.

Im not sure what edits were made. Ive never seen that issue with any of my clocks. Were any changes made to the antipoison portion of the code?

2 more answers

In the final clock .ino code you will see a portion of the code focusing on hours. It is underneath the comment "/////////////////////////Hours//////////////////"

You will need to alter this code to get 24 hour time. My clock is in 24 hour time however I do not have it on me at this moment. Once I get back home I'll send you the exact code to make the clock 24 hour time. Its not very hard, you just have to change the for and if statement around if I remember correctly.


Hi, my colleague helped me edit the code.




void runhours(){

if (counthour == 0){



if (counthour == 1){


if (counthour == 2){



It's work, clocks are displayed in a 24-hour format, but after AntiPoisom routine show 29:30 (correct is 21:30) :-(

thanks in advance for your help


Hi cledfo11

today i have update the code whith your instructables and its dosnt works, ive delete the "!" and the clock shows 9:00:00 whithout any movement

the thing is my rtc is SDA->A4 SCL->A5 and VCC->5v GND->GND

is this maybe a problem ?????

after a wile the tubs counting down from 9 to 0 only the second hour tube (the first hour tube dosnt works now) and the both minute tubes do that not the tubes for the seconds.

after counting the hour tube shows not more 9 it shows 8

ive check the serial monitor and they shows me the correct time (11:35:36)

i dont use a button or any switch on my work

I look forward to your answer


The RTC looks correct. As long as you have a clean 5v supply it should'nt be a problem. Especially if the serial monitor is displaying the correct time.

I am having a hard time understanding your second paragraph. Have you tried writing some code just to make all the tubes count from 0 to 9 on their own, regardless of the time? That way you can check to see if its the translation of time from your RTC, or a problem with your shift registers and 74141 chips.

I would try and run a few test on a small portion of the clock. Like make each tube count to 9 from 0 one at a time and make sure everything looks good and then see if its ok from there.



hello I have reconstructed your project, after soldering an building i have loading your sketch on the arduino an the tubes are glowing..... ok its fine but the dont shows the time, they stand still, the second-tubes shows "00" and the minute tubes shows the first 2 and the second shows nothing, when i cut the cables to the arduino alle tubes working and after a wile the second hour tube and the minute-tubes counting down from 9.

have you an idea were the problem is?

ps.I checked all cables with a multimeter, and they are ok


A power supply that is too small could very well be an issue. Let me know what you find out.

3 more answers


Thank you for your answear. Ich habe checked all 6 Tubes and all of These are running....
I think ITS a Problem with my supply, ITS Not strong enough. I will Test IT tomorrow whithout the battery in the etc. But i think ITS a different Problem in the Code.... Maybe the Registers i use the 74hc595 and in the scematic you use Others ic's

I went and tried re-uploading my code and found a very interesting observation. My time did not sync right and I also noticed some tubes did not turn on. The problem seems to be coming from setting the time on the RTC. There is a line of code in my arduino code that reads like this "if (! rtc.isrunning()) {" If you have the battery in your RTC then try removing the "!" and running the code again. So the line of code as stated above should read like this without the exclamation point "if ( rtc.isrunning()) {"

The reason this seems to be a problem is if the battery is in the RTC it is technically "running" although it may not be the appropriate time. By removing the exclamation point you are setting the time whilst the RTC is running.

I hope this helps, please feel free to continue asking questions until you get your clock running. They are a lot of work and I am more than happy to video chat with you if we need too.

If a tube is not glowing at all it is most likely a problem with the power supply or the tube is bad. Even if the 74141 chip isn't working properly the tube should still light up, though it may not show a digit. I will check my source code on this instructable to make sure it works with my clock. Did you test all the tubes before attaching them to the board?

Hi again m8!

I got the last part that I needed for the clock. I can drive 2 tubes with shift. But sadly I ordered the ds1302 instead of ds1307. Can I make it work somehow?


You very much could. I quickly reviewed the ds1302 and it appears to be a more functional date time chip. Along with tracking time it tracks date as well. The only problem is you will have to modify my code that uses the DS1307 and rewrite it to use the ds1302, this will be a good bit of code. The model I looked at also looked like you could plug it in on top of the arduino like in my clock design.


Got my pcbs today, will post final assembly in few days

HI, this seems wrong to me.

vbat and ground pin of ds1307 connected to A2, A3 pins of arduino.

aren't they suppose to go to power and ground?

1 reply

Hi, thanks for checking out the blog,

You could do either method. In my example what I am doing is setting the pins A2 and A3 to high or low respective to power and ground. So for the power pin on the ds1307 I am setting the A2 pin to high, which produces enough power to power the ds1307 chip. For the A3 pin I am setting it too low to act as a ground.

You could also attach them to a power supply and ground if you wanted too.

The only reason I am using the pins, is too save space inside the clock case, less wires.



Just got the ds 1307 so i'm trying to use it first. The wiring is done and I uploaded your code to the arduino. I set the time in the //test section. CurrentHour = 18 exc. The secounds pin change secounds after a secound(but doesn't count right at all). Same with minutes. It changes digits after a minute but doesn't count right. The digits are counting back and not forward. Like 79-73.....72, 61- 60. The Hours seems to work somewhat because the digit changes after an hour. But same problem here. If the hour is showing 18 and should go to 19, it goes backwards to 17. Do you know what could be wrong?

3 replies

Update: Same problem but now I don't try to set the time under //test section. I just open your .ino file without changing anything and burn it to the board. I open the serial monitor and i't shows the correct time. For example 19.53.1, 19.53.30, 19.54. And the ds1307 keeps the time too because of the battery. But if i plug the hours pin into the arduino it shows 14 instead of 19(if the clock is 19h) and same problem going backwards on hours/minutes/secounds.

Also check the update I made on my step about the RTC chip. it may help you.

I am sorry I missed this email and have not seen this question yet. Its been 6 weeks, have you managed to address the issue? Sorry for the long wait for a reply.


Very interesting project! I'm trying to replicate your project to make a watch like you did. I'm following your schematic and pictures. I'm just wondering why you are using 3 capacitors .01 uF? And do you put the capacitors between every 5v line to the 3 chips?

5 replies

Here is a youtube video explaining the capacitors and their function.

Thank you! You even made a video about it :)

I will try if it works and keep you updated. I Think that I will have 3 pins left over so maybe I will add buttons, but it could maybe be to complicated for me and I'm not so familiar with c++/arduino(I have read some C#). I have followed the same guide as you linked how to drive one nixie tube with 741741 and it worked.

Ok, so this is a bit of a wild idea. First off, you could probably build the project without the capacitors, if you were trying to get it into a very small area (like a watch). However you will need to make sure you have a very steady inflow of power.

My capacitors are not actually in line with anything. When i designed my boards that hold the nixie tubes I did a GND and 5v pour on the board that covers a large area of the board around the IC chips. Look at the board picture in step 6 and its the area inside the dashed red and blue lines. The capacitors are placed just near the 5v inputs on the IC chips to better manage the 5v power around those surface areas of the chips. Essentially they are acting as a power regulator just over a small portion of the PCB. You definitely do not want to in line the capacitors, as in, directly add the capacitor before the IC chip via a wire.

In short, the problem with doing large 5v or + pour on a PCB is that power will fluctuate across the surface area of that poor. To reduce the chances of a fluctuation causing an error on my IC chip I placed small capacitors around the 5v input that better controlled any kind of positive power fluctuation going into the IC chip. They do not directly wire into the IC chip, but instead just cross the positive and GND pours.

Would you like a short youtube video explination?

Thank you for your quick answer!

Yes, I think that I get it, the capacitors are placed there to make the power more stable because of the large pbc. So If I'm testing this on a breadboard with wires I shouldn't wire the capacitor at all correct? By the way how do you set the time of the clock? I don't see any buttons or do you set the time when you program the arduino? And the battery on the s1307 chip will keep the time even if I turn off the clock? I'm going to use four IN-14 nixie tubes, two for hours and two for minutes. Do I need to change anything in your final code? I also read that you included a anti poisoning cycle, good because I have read about that it's important and I couldn't find any guide with it. Is it activated by default and do I need to change something with the default cycle?

Thx for the help!

You are correct, if you are making a prototype with a breadboard you will not need the capacitors. For setting the time, I manually do it within the arduino program. You could add buttons if you wanted too but I ended up using all the uno digital pins with my design. The battery will keep time if you turn the clock off and remove it from the wall outlet. I wired mine so that the on/off switch turned the tubes on and off while keeping the arduino uno running to maximize battery life.

As far as only using four tubes you shouldn't have to change any code however you will only be wiring in two shift registers worth of wires to the uno. I don't think this will give you an error but if it does let me know.

The anti-poisoning cycle runs every 10 minutes and simply counts through all the digits 0-9 on each tube. You shouldn't need a code change but if you see an error then please let me know. You could really do anything you wanted with the anti-poisoning cycle. I'm fairly certain i sub-functioned it into my code so you could just change my sub function.

As far as tube durability I think its best just to turn the clock on when you want it to be noticed, like while your at the office like mine, or have guests. The tubes have a natural life expectancy and will die eventually. You can also swap the tubes around like car tires, switch minutes and hours every once in a while, to extend the tube life.


HI,i have one confusion.

there are 3 data pins coming out of shift register.

ser, sck, rck.

which data pin goes to which pin on arduino??

for example for controlling seconds, arduino have 2,3,4. can i connect these pins to shift register in any order or do i have to connect them to specific pin??

1 reply

There is a specific order in which the pins must be connected.

For the seconds shift register the following pin set up is required:
For the SER pin (C data pin 14) connects to arduino pin 2
For the RCLK pin (IC data pin 12) connects to arduino pin 4
For the SRCLK pin (IC data pin 11) connects to arduino pin 3

You can repeat this order for the other 2 shift registers.

You can also check out the fritz schematic in step 4 of the tutorial for a visual. This shift register is shown with LEDs' but it is the same connection to the arduino board.

You can also check out this awesome instructable tutorial by @Codebender_cc at the following URL:

Please let me know if you get hung up on anything else.


Hey buddy,

could you show me the whole wiring diagram for the PCB? :)

And btw nice work!!!

3 replies

Step 6 now has the full PCB schematic, a picture of the board from a CAD files, the zip folder with the board, schematic, and misc. files that can be sent to many custom PCB manufactures, the stand alone schematic file, as well as the CAD file of the board. They can be opened upon downloading the EAGLE program. If you have any more questions let me know.

Yea, I will upload them in just a moment, I will also include my Eagle file.

Sorry for the 2 day wait.

That looks really good! Lots of great info :)