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);

Error 1

Faulty lighting 2

The Fault in my board


  • \$\begingroup\$ so, if there's a short circuit, why would this be a software problem? \$\endgroup\$ May 21, 2019 at 18:35
  • \$\begingroup\$ 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. \$\endgroup\$
    – Voltage Spike
    May 21, 2019 at 18:40
  • \$\begingroup\$ +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. \$\endgroup\$
    – bobflux
    May 21, 2019 at 18:43
  • \$\begingroup\$ 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. \$\endgroup\$ May 21, 2019 at 18:57
  • \$\begingroup\$ Each driver has a function, check node for expected function \$\endgroup\$ May 21, 2019 at 18:58

1 Answer 1


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. Working

Ignore those 3 which I haven't soldered properly.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.