I have a custom built board that is running seven 7-segment displays, multiplexed using SPI from an 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 a 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 I 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.
Thank you for any ideas.