MAX7219 + 8x8 Dot Matrix: All LEDs Always On, No Response to Commands

Hi everyone,

I’m having a problem with my MAX7219CNG ICs (HLF brand) connected to 1088AS 8x8 LED matrices. I’m using Arduino to control them.

Problem:

All LEDs are always on and do not respond to any commands (e.g., clearDisplay, setLed, brightness).

Changing brightness, sending test mode commands, or turning off/on does not affect the LEDs.

This happens with multiple MAX7219 ICs (4 in total), and all of them behave the same.

The LED matrices themselves are fine — I tested them with another driver and they work perfectly.

Wiring has been double-checked, and I tried swapping DIN, CLK, and CS pins.

What I’ve tried (everything except the pull-up on capacitor/GND):

  1. Using both LedControl and direct shiftOut commands.

  2. Display test (0x0F=1) — no change.

  3. Swapping rows/columns — then LEDs stay completely off.

  4. Ensuring VCC = 5V and ISET pin has correct resistor (~10kΩ).

  5. Tried multiple ICs and multiple matrices.

  6. Tested on both Arduino Nano and Arduino Uno boards — same issue occurs.

  7. Followed standard initialization sequences.

Setup:

Arduino Nano / Uno

MAX7219CNG (HLF)

1088AS 8x8 LED matrix

DIN → pin 13, CLK → pin 11, CS → pin 12 (I’ve tried other pins too)

I’ve attached a photo of my wiring setup.

Could this be a MAX7219 issue, or is there something in the wiring/initialization I might be missing? Any suggestions for troubleshooting would be greatly appreciated.

Thanks in advance!

Try uploading the photo again. It did not get posted. Where is the Uno in your drawing? Post your code.

In your shoes, I would check that I didn't have my rows & columns (anodes and cathodes) backwards.

#include <LedControl.h>

#define DIN_PIN 13
#define CLK_PIN 11
#define CS_PIN 12
#define NUM_DEVICES 1

LedControl lc = LedControl(DIN_PIN, CLK_PIN, CS_PIN, NUM_DEVICES);

void setup() {
  for (int i = 0; i < NUM_DEVICES; i++) {
    lc.shutdown(i, false);
    lc.setIntensity(i, 8);
    lc.clearDisplay(i);
  }
}

void loop() {
  for (int row = 0; row < 8; row++) {
    for (int col = 0; col < 8; col++) {
      lc.setLed(0, row, col, true);
    }
  }
  delay(2000);
  lc.clearDisplay(0);
  delay(2000);
}

I’ve double-checked the wiring and swapped rows and columns, but the behavior didn’t change.

When I swapped the rows and columns, the LEDs didn’t light up at all.

  • Where is your ISET resistor ?

  • Where is your decoupling capacitor ?

  • Tie pin 12 CS' to GND through a 10k resistor.

  • The 10k resistor is there, but it’s hidden by the wires.

  • I judged it wasn’t essential and only had a 0.1µF capacitor, so I left it out.

  • I’ll give it a try. Thank you for your advice.

Please fix the code tags in this post.

Your wiring is a like a plate of multi-coloured spaghetti. It will be difficult for you and impossible for us to spot any mistakes. Also, those Dupont wires are notoriously unreliable.

I can see you have used some solid wire links laid flat to the breadboard around the display. I suggest you replace all those unreliable Dupont wires with solid core wires laid flat to the breadboard. Use several colours and use them consistently. Use red for 5V and black for ground. Then we may be able to spot any wiring errors, but be doing this you will probably find your wiring error yourself.

I cannot see the 2x caps and resistor in the photo that are shown in your schematic. These are mandatory.

Thank you. I’ll modify the circuit as you suggested. I appreciate your thorough response.



I’ve checked the wiring between the matrix and the MAX7219 multiple times, and everything is correct. I also tried the circuit you suggested, but it had no effect.

( + I didn’t have enough wires to color-code them, so distinguishing by color was difficult. Instead, I’ve uploaded a photo with the matrix-to-IC wiring removed.)

Is the mattix common anode or common cathode?

Source for the display’s pinout?

Oh, good. Please post photos of that.

At least we should be able to see any errors you made on that circuit.

I am using the common cathode type. (1088as)

  • They are both CA and CC :wink:

I checked with a multimeter and confirmed that there was a grounding fault in the outlet. It showed 110V, and that voltage was flowing into the GND.

Could this be the cause of the problem?

And actually, the picture above is that circuit.

I didn’t know that. Thank you for letting me know.

How on earth does one consider ground fault when troubleshooting the above?

Sometimes there is just nothing else to do but wire it up for yourself to see what's going on.

I added a delay between turning on each individual LED so I could see it in action.

Works like a charm.

I included the ground connection to pin 9 of the 7219 that was missing in your partial schematic. I can't tell if it was missing in your wiring or not.

And I used a different CS_PIN.

On the balance of probabilities, you've got a bad 7219 or you've got a mistake in your wiring. If I had a nickel for every time I was sure my wiring was correct but the circuit didn't work... I've learned to assume nothing and check everything. Especially the stuff I'm sure of.

4 Likes