What could be causing an unreliable output for 3 different IS31FL3731 chips

I have a board that uses the Adafruit breakout of the IS31FL3731 to control 81 illuminated switches. I have some code that runs on an Arduino that should turn all the lights on, but only about half the lights turn on - a seemingly a random half.

I have three IS31FL3731 chips and they each turn on different set of lights, so I think the chips, or how I am using them, are the issue.

There are so many different places where things could be going wrong (board layout, soldering, code, faulty chips, too few amps, etc.), but I'm hoping somebody may be familiar with a problem like this. If so, it could save me a lot of troubleshooting.

It is also worth noting that when the board has the shift-registers in place, there seems to be some sort of short circuit - the current rose to about 1.3A before the controlling Arduino shut down.

My part of the code and pictures below.

void loop() {
int numLEDS = 81;
for(int i = 0; i< numLEDS; i++){
LED_PWM(i, 255);
Serial.write(i);
delay(20);
}
}


• so, if there's a short circuit, why would this be a software problem? – Marcus Müller May 21 '19 at 18:35
• I doubt people are going to be able to derive the functionality of the board from the photos (or even thousands of photos) provide a schematic. If I wanted people to debug a project for me, I would provide waveforms also. – Voltage Spike May 21 '19 at 18:40
• +1, schematic is required. Also, your chip is a matrix LED driver, so check if the LEDs that don't work belong to the same column or line. – peufeu May 21 '19 at 18:43
• The photos are just for reference. It may not be a short circuit but maybe too much current being drawn. I am not looking for anyone to do the fault finding for me; I just thought this might be a symptom of an obvious problem. I can't see any correlation between the columns of the drivers and which switches are not illuminating. I have added a schematic. – user4913118 May 21 '19 at 18:57
• Each driver has a function, check node for expected function – Tony Stewart Sunnyskyguy EE75 May 21 '19 at 18:58

1 Answer

I think it is solved now. The chips have some internal registers that control which LEDs should be on and I hadn't cleared. It looks like they are non-volatile. Sorry to bother everyone.

Ignore those 3 which I haven't soldered properly.