Resolved: SLCLR on SN74HC595 was not tied to VCC, so behavior was inconsistent.
I have a custom built board that is running seven 7-segment displays, multiplexed using SPI from an 5v Arduino Pro Micro. It's a simple device to track/display time for a kids game.
On the high side, I am using a ti 74HC595 to drive IMD10AT108 NPN/PNP (transistor pair) driver chips.
On the low side, I am using a STP08DP05MTR (shift register based) LED Driver.
When I first build a board it works great. 100% functionality. However, if I leave it plugged in running for a few days, something clearly gets fried. When it's first powered on, it will work for about 4 seconds, after which the 7-segment displays go out...sometimes with a quick flicker. They refuse to turn back on unless I physically cut power to the board...after which they will turn off again after a couple seconds. An arduino reset is not enough to get the LEDs to light...hard power reset is required.
Now, if in setup(), I shift out a single display to light (and not shift out anything more data after), that LED will stay lit without issue, leading me to believe the issue is related to either the 595 or LED Driver shift registers. Could also of course be the transistor based IMD10AT108 drivers, but I think keeping a static display lit points me in the direction of the shift registers.
Other than those components, I've got the required resistors for the LED driver, a .1uF cap next to the VCC pin of each chip, and a 10uF cap (I'm not sure it helps anything) where the power enters the board. I power everything off VCC of the Arduino Pro Micro, sourced through USB. There is also an IR receiver on the board to control the timer, but I can't see how that could be related.
I'm an experienced software engineer just learning the hardware side of things. I have built two boards...and the exact same issue has now happened to both boards. They are "toaster oven smd", so it's hard for me to pull and swap components.
The problem seems custom board related, and not hardware damage on the arduino. First board developed this problem after a week. I used the same arduino on the second board after the failure of the first board, and that second board worked fine for a week as well...before, after a week, that second board developed the same problem as the first.
Thank you for any ideas.
SRCLRinput of the shift register that controls the digit drivers (presumably, that's the 74HC595) open. Allowing CMOS inputs of any sort to float is very bad practice, and it's possible that accumulated surface contamination of your homemade PCB is what's causing the symptoms you're seeing. Tie that input high if you don't need it. \$\endgroup\$