MAX7219 Will not display properly

While i am not new to Arduino i am new to these MAX7219 8x8 LEDs. I have 6 daisy chained and cannot get them to display. i have tried a number of example sketches. Different libs for the LED. differnt boards. hours trying to sort out what the issue is. To be clear no sketch has worked. All i can ever get is the display shown and maybe one of the matrixes to blink, maybe...

Any and all help is greatly appreciated.

You've been a member for a while, but you haven't been here much. Time to refresh:

Most importantly, we have no crystal balls, so you'll have to show us your setup, your wiring, and your code.

use the

MD_MAX72xx.h

if you can't get it working, show a schematic so we can see what you have wired.

I started with that LIB MD_MAX72xx.h

here is the schematic

show the testsketch adopted to your wiring.
Proof the wiring with real pictures - every wire must be visible.

wiring of first "DIN" is not clear from the schematic. Where is it connected? proof by pictures.
also the DIN-DIN connections look suspicious...

How are you powering this?
Do you have a proper signal ground between the display and the controller?

Doesn't each module have both a Din and a Dout pin ? Normal is to connect a Dout of one module to the Din of the next in a daisy chain. Your schematic shows only Din pins.

1 Like

Hello and thank you all very much. Attached is the current PIN_OUT. Power via USB from PC and from a 2a power supply. Results are the same.

I was missing the ground, however this did not change anything.

Yes each module has Din and Dout , they daisy chained in/out along the 6 modules.

The schematic is not mine. But the connections on the Wemos and the Input are correct. I have done a continuity test on all of the wires to be sure. See the PIC to verify. Unless i am using the wrong PINs???

For clarity Here is the PIN out im using. This on a D1 clone.

My wiring

Can't see where the 5V 2A supply attaches?

Thats because i unplugged it to take the pic. its via USB micro in on the Wemos. Also i saw where i had D7 and D8 swapped in the PIC i have fixed those. Still no joy

You need to power the display directly from the 5V 2A power supply. You also need to power the microcontroller from the same supply, and you need a ground between the display and the microcontroller.

It sounds like you have the right power supply but are trying to power the display through the microcontroller, which shouldn't be done.

Also, about 90% sure that those displays are 5V and you are trying to power it off 3.3V.

1 Like

I agree with @er_name_not_found

@siburmax you seem to have something connected to the 3V3 pin of the Wemos. If you try to power max7219 with 3.3V it won't work and you may burn the 3.3V regulator on the Wemos.

You can try powering the max7219 off the 5V pin of the Wemos, but that might theoretically melt the PCB tracks on the wemos. I doubt they were designed to carry 2A.

But so long as only a few LEDs are lit, like when displaying text/numbers on the matrix, the current requirement will be much lower and there won't be a problem. Just don't try to light 6x 8x8 LEDs at the same time!

Thank you all for helping out. I have about 12 hours into what was supposed to be a 2 hour project. I have tried all of the above. including a separate power supply. I think the cheap chinesium modules I got may be bunk. I will get branded ones and try again.

Can you show a picture of how you implemented my solution, before you spend more money?

Try running one 8x8.

parola marco says it works with one, but not longer strings.

It would also help if you posted your code.

Start with standalone D1mini... verify this...

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // D1mini OFF
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);    // D1mini ON
  delay(1000);
}

Your schematic has CS on D8, CLK on D5, but your ESP32 pinout shows CS on D6 (15) and CLK on D5 (14). So why not put DATA on D7 (13) Remove the confusion. Show your sketch. Show your wiring.

Try this, using D5, D6, D7...

          +-----------+
          |ESP32 WeMos|
          |  D1 Mini  |       +------------+
          |RST      TX|       |POWER SUPPLY|
          |A8       RX|  +----|GND         |
          |D0       D1|  |-+--|5V          |
+-----CLK-|D5(14)   D2|  | |  +------------+
|         |D6       D3|  | |
| +--DATA-|D7(13)   D4|  | |
| | +--CS-|D8(15)    G|--+ |
| | |     |3V3      5V|--|-+  +-----------+
| | |     |           |  | |  |MAX7219 8x8|
| | |     |RESET      |  | +--|5V       5V|
| | |     +-----------+  +----|GND     GND|
| | +-------------------------|CS     DOUT|
| +---------------------------|DIN      CS|
+-----------------------------|CLK     CLK|
                              +-----------+

Run this:

#include <LedControl.h>
#define DIN 13
#define CLK 14
#define CS  15
#define COUNT 1 // number of MAX7219

LedControl lc = LedControl(DIN, CLK, CS, COUNT); 
unsigned long previousTime = 0, interval = 500;

void setup() {}

void loop() {
  lc.setLed(0, 0, 0, 0); //  lc.setLed(0, 0, 0, 1); // the object lc : panel=0, x=0, y=0, ON=1/OFF=0
  delay(500);
  lc.setLed(0, 0, 0, 1); //  lc.setLed(0, 0, 0, 1);
  delay(500);
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.