I have a circuit set up as in the following diagram. There are 4 vertical power rails, the left-most 3 are supplied with 15v, and the right most 1 is supplied with 5v. The purpose of the circuit is to drive a multiplexed array of electro-permanent magnets. It does this by using the shift registers running down the right side to operate the sinks and sources on the left side. I've only sketched up 4 of the electro-permanent magnets but the array size is 30x8. The bottom two drivers on the left provide the sink/source for the 8 rows, the remaining drivers provide the sink/sources for the 30 columns.
The programme being uploaded to the AVR will initially cycle through all of the electro-permanent outputs and polarise them one way, before making another pass and polarising them the opposite way.
When I supply power to the circuit and connect an AVRISP mkII to programme the AVR it all runs fine. If I subsequently remove the programmer and supply power to the circuit again it doesn't seem to run.
Occasionally when I plug it in I can hear a faint buzzing from the electro-permanent magnets as though it's trying to supply power. In this scenario I'm assuming that it's either not able to draw enough current to fully active the electro-permanent magnet, or the AVR is running too fast and not activating the coil for long enough to take effect.
I've read this similar question ATTiny Circuit only works when connected to AVR ISP and added a capacitor between the Vcc and Gnd connectors of the AVR but it makes no observable difference.
Firstly, is there anything obvious in my breadboard diagram that could be causing this? Secondly, given that I have no scope, what else can I try to debug this?