Help Troubleshooting Nixie Tube Display Project - Based on EEVBlog #952 - Page 1
Forum section: electronics / beginners

author: alex1683
author_rank: Newbie
timestamp: January 20, 2019, 05:16:37 pm
content: Hello, young player here,I was inspired by Dave's video series on his Nixie tube sub-counter 2 years back and finally got around to giving it a whirl. I got some PCB's made, assembled a board, wrote up some Arduino code and it doesn't quite work. Spent several hours trying to troubleshoot it last night but couldn't figure it out. Don't know where to go from here, figured this is the right place to ask.The first shift register works fine but the next three do not. Maybe there is something I don't understand about how cascading works?I'm using the same circuit as Dave with TPIC6B595's, (Pictures attached, sorry if it's ugly).Here's the relevant code:Code:void send_data(unsigned long encodedData){for(int i=31; i>=0; i--){digitalWrite(DIN, encodedData&(ONE<<i));digitalWrite(DCK,HIGH);digitalWrite(DCK,LOW);}digitalWrite(RCK,HIGH);digitalWrite(RCK,LOW);return;}There are 4 shift registers, 8 bits each so I'm storing the word as a 32 bit unsigned int.I write the 32 bits from MSB to LSB while clocking DCK. At the end I pulse RCK.DIN is the pin connected to SERIN on the first shift register.DCK is the pin connected to shift register clock (SRCK)RCK is the pin connected to the register clock (I think it's also known as the latch?)I did some continuity testing and didn't find any problems, also checked the second chip is getting 5V power.Any ideas for what could be wrong? What I should check next?Thanks for your time,Alex

author: Andy Watson
author_rank: Super Contributor
timestamp: January 20, 2019, 05:50:56 pm
content: I'm not familiar with Arduino code but I would question whether "digitalWrite( )" is doing what you expect when it's passed an unsigned long. Also, you might want to initialise RCK and DCK to low prior to starting the loop.

author: janoc
author_rank: Super Contributor
timestamp: January 20, 2019, 06:04:42 pm
content: You may want to put some delay between the digitalWrites. Otherwise the microcontroller will generate only a very narrow pulse (defined by how much (in)efficient the library code is) and that may be very marginal for the shift registers. The chips may not be able to switch that fast - the first one could be just able to catch the pulse and the others not.

author: NivagSwerdna
author_rank: Super Contributor
timestamp: January 20, 2019, 06:13:29 pm
content: "Data transfers through the shift and storageregisters on the rising edge of the shift-register clock(SRCK) and the register clock (RCK), respectively."LOW -> HIGHYou should not need any delays.I would do a... (encodedData&(ONE<<i) ? 1 : 0) just to be on the safe side... or re-write as a shift.

author: alex1683
author_rank: Newbie
timestamp: January 20, 2019, 06:33:59 pm
content: Quote from: janoc on January 20, 2019, 06:04:42 pmAll the datasheet timing specification are in nanoseconds. I originally had 50 microseconds between setting the data pin high/low and the rising edge of SRCLK, and between the last SRCLK and the RCK/latch pulse.Do you have a suggestion for a delay length?Quote from: NivagSwerdna on January 20, 2019, 06:13:29 pmI'll give that a try and get back to you.

author: alex1683
author_rank: Newbie
timestamp: January 20, 2019, 07:16:12 pm
content: Quote from: alex1683 on January 20, 2019, 06:33:59 pmSo it worked, many thanks. Don't think I ever would have figured it out without everyone's help.

author: NivagSwerdna
author_rank: Super Contributor
timestamp: January 20, 2019, 10:30:41 pm
content: Quote from: alex1683 on January 20, 2019, 07:16:12 pmFWIW My normal approach would be to look at the least significant bit and shift in a loopoutValue = myValue & 1;myValue >>= 1;

author: Kevin Connolly
author_rank: Newbie
timestamp: April 21, 2025, 11:56:59 am
content: Don't know if this is the correct place to put this. I want to do a Nixie tube project based on a Raspberry pi zero, 6 in-12 Nixie tubes for time, and an in-13 bargraph for temperature. I plan on working in KiCAD. The question is this: I saw Dave's videos on a Nixie tube project and although he didn't use a K115ID1 I'm wondering if anyone has a base schematic they can share. No sense recreating the wheel if I don't need to since I'm quite the noob when it comes to this type of stuff.I'm also thinking of multiplexing to save space utilizing MPSA42 transitors and wondering if anyone has experience with this option?

author: CaptDon
author_rank: Super Contributor
timestamp: April 21, 2025, 01:19:44 pm
content: As for the Nixie multiplexing. 6 tubes in a multiplex string is the practical limit. This is based on needing a pulse current 6 times higher than an average current for the same brightness as a non-multiplexed display. For the large and super tubes 1.5ma is a suggested average and 9ma pulse that includes a specified 'on time' or maximum pulse width. You will need a tiny bit of dead time between each on pulse to prevent ghosting. I am running six large Nixies in a multiplex scheme with no dead time and there is faint visible ghosting. The russian Nixie driver is a good one to use since it includes 'off' or 'not lit' for non-BCD codes. It can also withstand 100 volts on the open collectors. A big WARNING about muxed Nixies, Make sure to prove your mux code is working and don't try debugging code with the Nixies lit!!! If your code should hang and you end up with 9ma. sustained on a Nixie cathode you will kill it. Also, ONLY the 'Long Life' versions are recommended for mux duty. The non-long life versions seem to have a mostly neon gas fill. The long life versions seem to include more mercury (bluish violet halo) and some helium which give a pinkish tint to the orange glow. Most commercial test equipment that had Nixie displays did not use multiplexing due to short life span of the tubes in that mode. I am scanning 6 tubes at 50Hz giving a pulse width of 3.3ms My pulse current is 9ma. divided by a .167 duty cycle equals 1.5ma average. I only turn on the high voltage when I want to actually read the display.

author: Kevin Connolly
author_rank: Newbie
timestamp: April 21, 2025, 01:57:06 pm
content: You wouldn't happen to have a KiCAd schematic would you? Ha. I'm using Claude AI for basic design structure and it's pretty decent at drawing an svg but not so much a KiCAD file. I'm a Civil engineer by trade and extremely new to KiCAD. At 68 I thought I'd branch out. Ha. Did a 5v voltmeter clock driven by a raspberry pi on I2C multiplexed, a couple of mechanical wristwatches, a pendulum clock so I thought I'd give a Nixie clock a try....but no ordinary Nixie clock. I want it 6 digits in-12 with an in-13 bargraph for temperature all run by an RPI zero.I suppose I could work at it little by little learning as I go. At 68 going little by little isn't such a bad thing. Ha But getting a schematic would give me a jump into it and let me examine how KiCAD works without gumming up too much of anything to begin with.

author: reboots
author_rank: Regular Contributor
timestamp: April 21, 2025, 05:41:54 pm
content: Quote from: Kevin Connolly on April 21, 2025, 11:56:59 amI suggest investigating a HV shift register like the Microchip HV5622, rather than devoting PCB real estate to either multiplexed discrete transistors or a bunch of K115ID1s. The HV5622 is a 32-output chip, so two chips will drive 6 tubes (with outputs to spare, since many numerals aren't used in a hour/minute/second display). Driving them couldn't be easier.I've attached a schematic for a clock I built with four IN-12 tubes and a HV5622.

author: Kevin Connolly
author_rank: Newbie
timestamp: April 21, 2025, 07:47:34 pm
content: You are the bomb.