Overheating/failing shift register on Nixie Driver board

I’d like some help with a Nixie Clock project that I’ve been working on for few months.
PCB finally arrived yesterday and to my surprise almost everything is working :slight_smile:
But I’m kind of stuck on one problem with shift register. I’m using 3x 74HC595N chips to drive six 74141N ICs (Russian K155ID1) which in turn drive six IN-14 nixies.
Everything works with first four nixies, but last two were going on and off and not displaying correct numbers.


That’s when I noticed that 3rd shift register (IC9) was extremely hot!
I replaced it and both K155ID1 chips connected to it with new ones, but problem is repeating. In fact it gets a little weird at this point. New shift register wouldn’t overheat, but randomly when I send data to it or reset MCU it would stop working. I’ve replaced it with another Shift Register and that one started to heat up, but not every time (i.e. I’d have to reset clock few times until it starts happening).
I checked all connections for any shorts, chip orientation, etc. 74HC595 would start overheating even if both nixie driver chips removed. I have no clue why it’s happening, it just makes no sense…
BTW brains of the clock is custom board (connected with 10 pin IDC header) running ATMega1284p (not shown on schematics) and it uses 3.3V logic.
Here’s test code I’m using:

//Pin connected to latch pin (ST_CP) of 74HC595
const int latchPin = 15;
//Pin connected to clock pin (SH_CP) of 74HC595
const int clockPin = 13;
////Pin connected to Data in (DS) of 74HC595
const int dataPin = 12;
// LED Control pin
#define LED_CTRL 19
#define COMMA 14 // "dot/comma" divider

byte digits[]={
  B10001000, //00
  B10000000, //01
  B10001001, //02
  B10000001, //03
  B10001110, //04
  B10000110, //05
  B10001010, //06
  B10000010, //07
  B10001100, //08
  B10000100, //09
  B00001000, //10
  B00000000, //11
  B00001001, //12
  B00000001, //13
  B00001110, //14
  B00000010, //17
  B10011000, //20
  B00011000, //30
  B11101000, //40
  B01101000, //50
  B10101000, //60


 
};

void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);
  pinMode(LED_CTRL, OUTPUT); 
  digitalWrite(LED_CTRL,LOW); 
  pinMode(COMMA, OUTPUT); 
  digitalWrite(COMMA,LOW); 
  Serial.begin(115200);
  Serial.println("reset");
  digitalWrite(LED_CTRL, HIGH);
  for (int i=0; i<21; i++) {
    registerWrite (digits[i]);
    delay (1000);
  }
  
}

void loop() {
}

void registerWrite(byte val){
  digitalWrite(latchPin, LOW);
  //delay (10);
   for (int i=0; i<3; i++) {
    shiftOut(dataPin, clockPin, LSBFIRST, val);
   }
   delay (5);
   digitalWrite(latchPin, HIGH);
}

You have pretty wide traces going between legs of parts. Check those with a meter for shorts.

If you swap the parts driving digits 1 & 2 with 5 & 6, does the problem move with the parts?

Same with the tubes themselves, does the problem follow the tubes?

CrossRoads: You have pretty wide traces going between legs of parts. Check those with a meter for shorts.

If you swap the parts driving digits 1 & 2 with 5 & 6, does the problem move with the parts?

Same with the tubes themselves, does the problem follow the tubes?

Thanks! I will check traces for shorts! Could be PCB manufacturing defect too... Swapping components doesn't seem to have any affect. It's always IC9 that's heating up. Even if there are no two last nixies inserted...

1) I wouldn't have sent that layout to a board house. Some tracks are too close to pins and to other tracks. In my experience, auto routers are ok to start off, but almost every track has to be corrected after that. I expect several (near) shorts.

2) I don't see ANY decoupling on the chips. Always add a 100n ceramic cap close to EVERY chip between VCC and GND. Leo..

Yeah some are pretty close, I probably should've moved them but it did pass DRC... Besides I never had issue with Autorouter before... I added decoupling cap to IC9 but it didn't help. Also checked all traces that are close to 16 pins of that IC and no shorts found...

Consider how a chip can become hot. Most probably it's output pins are overloaded and don't reach their signal levels, or voltages beyond the specified values will cause the protection diodes to draw excess current from somewhere. I'd check the voltages on all pins of the hot chip, eventually using a scope to find possible (HV?) spikes. What if you disconnect the HV Nixie supply?

Let’s be clear here - there is a short circuit on the board and it is most likely between (at least) two of the output pins of the shift register, or possibly from one to ground.

Paul__B: Let's be clear here - there is a short circuit on the board and it is most likely between (at least) two of the output pins of the shift register, or possibly from one to ground.

Yeah there must be. I don't now why I can't find it tho :(

DrDiettrich: Consider how a chip can become hot. Most probably it's output pins are overloaded and don't reach their signal levels, or voltages beyond the specified values will cause the protection diodes to draw excess current from somewhere. I'd check the voltages on all pins of the hot chip, eventually using a scope to find possible (HV?) spikes. What if you disconnect the HV Nixie supply?

Thanks! I checked voltages and actually all output pins give out 5V even those that suppose to be 0V... Overheating is happening when HV supply is active. I actually haven't tested voltages on output pins when HV is off, gotta try that next. I'm also going to move everything but HV supply to breadboard and test it out. I'm glad I designed IN-14 sockets to be breadboard compatible :)

how about a missing 0V to the affected chips? ... the chips are finding their own 0V through the other pins...?

beaceee94f8ace73dce9f2d980c828a4eb8af4cb.png

adcb5166444b9ab698e6e842639d52bbaeb5e6e3.png

8e977e6655aa60a5136f9e34919ae912d5f9e41e.png

lastchancename:
how about a missing 0V to the affected chips? … the chips are finding their own 0V through the other pins…?

bratan:
Thanks! I checked voltages and actually all output pins give out 5V even those that suppose to be 0V… Overheating is happening when HV supply is active.

That is indicating a missing ground on the two K155ID1 chips.

Actually K115ID1 do have grounds connected (pin 12). It's shown separately in schematic as ICP5P and ICP6P. Shift registers also have grounds connected (pin 9). I just verified with multimeter they indeed they connected to the ground... I appreciate you looking the schematic! Maybe I missed something else there? R7 has only 2 legs connected since I'm not using it as trimpot but as varistor, which I don't think should be an issue, but I could be wrong...

bratan: Swapping components doesn't seem to have any affect. It's always IC9 that's heating up. Even if there are no two last nixies inserted.

And only if the HV supply is on? Must then be a short from the Nixie anode resistor to some IC.

Or something overlooked - like one nixie that is common-anode, while the others are common-cathode ? - e.g. part number variant, or mis-labelled ?

lastchancename: Or something overlooked - like one nixie that is common-anode, while the others are common-cathode ?

Do you actually know what a "Nixie" tube is? :astonished:

Did you read the last paragraph of reply #2?


The behaviour clearly indicates a short circuit.

Paul__B: Do you actually know what a "Nixie" tube is? :astonished:

Isn't it a brilliant idea to change the Nixie color from red to blue, by reversing the supply polarity? How long did we have to wait for a blue LED! ;-)

I still can't find any shorts :( What I did is narrowed it down to HV PSU. I assembled second board piece by piece testing each step. I powered it from 1st board (basically used that one as PSU) and everything was working great until I completed assembling on-board PSU. As soon as I did that, last Shirt Register went "haywire"... I popped off MC34063 IC and again powered board from external HV PSU and everything worked. So somehow onboard HV PSU is affecting last shift register. Can be some kind of wireless electromagnetic interference? I checked and re-checked, there are no crossed traces between last Shift register and HV PSU components... No shorts to ground or VCC...

Could be your (crap) layout. e.g. You should not have mixed IC9 ground with mosfet ground. HV peaks (mosfet drain) run close to other tracks. Leo..

Wawa:
Could be your (crap) layout.
e.g. You should not have mixed IC9 ground with mosfet ground.
HV peaks (mosfet drain) run close to other tracks.
Leo…

Hmm that sounds very plausible! Thanks.

BTW here’s a video of the issue:

Hi Leo. I followed your advise and tried to create separate grounds for HV components. But so far I'm not sure how I can do this because KD chips use 5V for supply and they need same ground, so I wound up with grounds connected anyway :( Is there any way to do this? Also when I use external PSU, I still have it's ground connected to all other grounds...

You say that everything works untill you use the onboard HV supply. And with an external HV supply it works. And the chip near the power stage (mosfet) is affected.

I mentioned two things. Mosfet ground (current) and mosfet HV peaks from the drain. Shouldn't be that hard to lift the drain, BAV21 anode, and one pin of the inductor. And join them with a wire (not using that HV circuit board track). Also not that hard to lift mosfet source, and use a wire from source to the buffer cap C1. Before you do anything, solder a 100n ceramic cap across IC9's supply pins. It will be a process of elimination to find the cause. Leo..