MAX7219 and a common-anode 5x7 bicolor matrix wiring

I was trying to get help on another topic but got stuck… so I’d appreciate if anyone could jump right in and give me any feedback.

I’d like to daisy-chain 35 drivers/matrices without worrying about overloading Arduino’s capacitors, so I tried to separate the power input but I’m not sure if I can connect both GRD lines – Arduino’s and PSU – together like I’ve done (circled in red). Also not sure if I can connect the capacitors mixing the V+ from the PSU and the GRD from Arduino as shown.

My main concern is: if the current direction (sink/source) and the pins’ connections order (from the matrix to the MAX7219) are correct or not.

I thought I had answered this already. Segment pins source current to the anodes, Digit pins sink current from the cathodes. That appears to be what you have connected. All Grounds must be connected.

If you have seperate 5V sources for the arrays vs the Arduino, do not connect those 5V pins together - do connect the Grounds together.

Thanks for helping me here too CrossRoads… the power-related questions were resolved.

But I looked everywhere for info about the pins’ connection order from de matrix to the MAX7219… and couldn’t find a thing.

I was worried that the LedControl library might light up the leds in the wrong order.

That’s my main concern now.

"I was worried that the LedControl library might light up the leds in the wrong order. " They might still. You can do some testing tho - light up what you think is the corners, see what really turns on.

I had to rewire a 4-matrix board (wirewrap luckily) because I had the wrong datasheet. Was was working my way thru the first device, after 16 pins there were still 8 left! Turns out it was a bi-color LED matrix. So ripped those out and found the correct data sheet. After testing with just 1 chip wired up, I worked out that the board was oriented 90 degrees off from what I thought it was. The software I had in mind was set up for vertical columns, so I undid it again, turned the chip and redid the wiring a 3rd time, finally ending up with bit 7 of byte 0 at the top left where I wanted it, and bit 0 of byte 7 at the bottom right.

So: do a little testing before getting too far with wiring.

Cool.. I'll do more testing when I get home.

I was thinking... electrically speaking if I create a breakout board and connect all those MAX7219 and matrices... will I have any problem with those capacitors? I mean like some leaking, excessive current drops or AC-like waves getting in the way. In the other post we're talking you said something about decoupling caps... Can you foresee troubles here?

No, caps will not be an issue. You can see some pics and a video of mine here,126144.0.html I put a 0.1uF and a 1uF cap with each MAX7219.

Why does this happens? (video)

The first matrix is well lit… but the second one I just can’t make it light up correctly.

This is the function I’m using. I could also notice a small interval between the end of the first matrix and the beginning of the second… why?

void singleLedMultipleDrivers() {
  for(int mat=0;mat<lc.getDeviceCount();mat++) { 
     for(int row=0;row<8;row++) {
      for(int col=0;col<8;col++) {
        for(int i=0;i<col;i++) {
        } //on-off
      } //col
    } //row
  }// while
  //dev = 1;

well I guess we are going to have to get out the crystal ball out to figure out how they (the parts or about 1/2 of the problem) are wired... I wonder where I left that damned thing anyways... Ahhh my.. who cares.

Thanks for the sarcasm... lesson learned.

I can't help with the library, I never used it. Since the MAX7219 takes cares of the multiplexing, I just made a time measurement and every 50mS in my example I sent out the register data for the next frame.