I am currently working on a 2 line display based on the standard 8x8 LED matrix modules.
The µC is an Atmega1284p with optiboot.
One line consists of 8 FC-16 pre-built modules. This line is working fine.
The other line is my own attempt at wiring up 5 cascaded MAX7219 chips. This line isn’t working and shows random distortions, the well known “all-on” problem, lights up with different brightness (even single lines) or shows some kind of delayed response when shifting data from one panel to the next.
Here’s a video of the problem: Max7219 + KYX-788BW
The library in use is MD_MAX72XX and I’m just running the test sketch with only the pins adjusted to my setup:
#define MAX_DEVICES 5 #define CLK_PIN 22 // or SCK #define DATA_PIN 23 // or MOSI #define CS_PIN 21 // or SS // SPI hardware interface //MD_MAX72XX mx = MD_MAX72XX(CS_PIN, MAX_DEVICES); // Arbitrary pins MD_MAX72XX mx = MD_MAX72XX(DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
The MAX7219 are the SMD variant and I purchased them from China so they may very well not be original Maxim chips but I can’t tell for sure. All I know is the engraving looks just the same as on the FC-16 Modules which are working well.
Rset is 33k and I am driving KYX-788BW. As these are Row Anode Column Cathode I just turned them 90° counter clockwise and connected them accordingly to get effectively another set of FC-16 compatible modules.
All five of them are soldered to a PCB (.svg of the layout. I just removed the GND-fill to make connections more visible. A .png is also attached in case google breaks the file again. Looks like google drive doesn’t like SVG so I had to compress it)
I suspect some kind of timing problem with the SPI data and clock line or a power problem so here’s what I tried until now:
- put additional capacitors on the V+ pins of each MAX7219 (10µF / 100µF, + 0.068µF)
- removed the big 680µF capacitors from the power bus because I suspected they may be too big
- measured all data lines to and between the chips. There are no short circuits or broken solder joints.
- removed the step up/step down power supply to get rid of possible ripple from the switchmode PSU chip
- powered the board from my PC PSU to get smooth 5VDC
- measured data, clock and cs with an oscilloscope. The signal seems to be fine and quite clean. Some spikes on the edges but no difference compared to the working FC-16 panels
- added some small capacitors to the data lines to smooth out spikes on signal edges
- added pull down / pull up resistors to the data lines to possibly get rid of induced signals from nearby tracks
Here’s the catch: Nothing of the above made any visible difference whatsoever. I am now at a loss on what is causing
the display to misbehave in such a random manner.
I hope someone here has any additional idea on what i could try or can point me to a blatant mistake I may have made.