Please help troubleshoot MAX7219 7 segment displays

Hi all,

So as some of you have noticed, i have asked about MAX7219 problem on the other topic that was about I2C so decided to make this as a new topic as i am having problems with MAX displays.

To explain what the problem is:

  1. If i have one display connected, it works great, but as soon as i add a second one, both displays start flickering, showing random numbers, or they just work for 10 seconds and then go crazy.
  2. MAX chip is getting really hot. If i have just one module there is no heat issue.

Now for the setup:

  1. I am using small (10mm) 7 segment displays as on the image below

  1. I have removed diode D1 as many other people suggested

  2. I have tried connecting SPI wires on various pins on the board, all with the same result. Using MEGA board i have them at pins 50, 52 and 53 as someone suggested that those are hardware SPI pins for MEGA. Same problem as with any other pin combination

  3. i am also aware that i should add capacitor to those two small holes bellow D1 diode but now the question is, is it ok to use ceramic cap or it has to be electrolytic? I am aware those are not the same.
    For electrolytic, i am not sure about polarity... looking at the picture, negative side should go left?

  4. I have the 5V and GND connected on both sides of the daisy chain, if i just leave the power and GND from the first module, same thing happens but the displays are dimmer.

  5. displays are set to full brightness in the code.

  6. i am using external power supply that powers MEGA and the displays. GND for both MEGA and displays are connected.

  7. in the code, i have set up the pin numbers and 2 as a number of devices, when they both work for a few moments they show correct characters on correct positions.

At one point i made them both to work for a few hours, they did heat up but not that much, then after a few hours 2nd in chain module started showing odd characters on the display along with correct ones.

Now, i am aware that these are cheap Chinese displays but they all work fine on their own, no problems whatsoever, no heating either, but as soon as i add one more, everything goes south.

Main concern here is the heating problem as i think this will point to the thing i am doing wrong.

Any help would be highly appreciated.

Many thanks,
Alek

The previous thread is here: simple way to add more than 8 I2C devices - Project Guidance - Arduino Forum but only the latter half is relevant.

  1. By removing D1 you meant bridging it ?

  2. You have daisy chained these in the correct direction ? That is, the end with a pin marked as DIN goes towards the Arduino, so it is Arduino --> DIN (module1) DOUT --> DIN (module2) DOUT --> X

  3. I guess I would then start measuring the current (mA) through the Arduino-->Load, Arduino-->DIN and Arduino-->CLK lines.

There are many tales in circulation about the mysterious behaviour of certain clone/fake max72xx chips so this is also something to consider.

thanks!

to answer your questions:

  1. Yes! D1 Bridged
  2. Yes, correct orientation
    3.will do measuring today

And finally, yes, this one is from "AZ Delivery" but the chip is without label and obviously a cheap Chinese fake and my bet is on the last one. I think these cheap knockoffs are just not reliable for any serious work.

Next step would be to do my own PCB, place in a proper 7219 and add others components myself...

Thanks again,
Alek

One other thing you can try instead of daisy chaining these in the conventional manner, is to put them in parallel (with the exception of the DIN/DOUT pins which have to be daisy chained).
This allows you to experiment with with series resistors in the signal lines, since there are reports that this trick can improve the stability of some varieties of these chips, which tend to phantom power themselves through these other pins. Try around 1K.

Genuine max72xx chips in small quantities from reputable dealers are quite expensive.

Hi,

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?

At this stage this is very important so we all are on the same page.

  • What 7 segment display modules have you got?
  • Have you got any code?
  • If so can you post it please and tell us what it does or doesn't do?
  • Have you been able to just control ONE of these modules ALONE with no other hardware or software?

Lets get back to basics and see if we can see where you are with your project.

Thanks.. Tom... :slight_smile:

Thanks Tom!

Will post circuit as soon as i get home.

To answer your questions:

  1. I use these cheap 0.36" modules

  2. Code when i get home as well.

  3. i have 6 adafruit 7 seg displays on backpacks to show time, date etc. MAX7219 should show week number, potentiometer value etc.

  4. YES! if i connect ANY MAX module it works perfectly, shows whatever i want it to show. Not only on another board without anything else but works perfectly on my current setup with adafruit modules, sensors, etc.

Basically, problems start when i connect the 2nd MAX module, then both 1st and 2nd start heating up, they start flickering, showing random numbers etc...

Thanks,
Alek

Hi,
Do you have a DMM to check the 5V pin on the controller?

Thanks.. Tom.... :slight_smile:

TomGeorge:
Hi,
Do you have a DMM to check the 5V pin on the controller?

Thanks.. Tom.... :slight_smile:

Yep, 4.92V. Fed from LM2596 Regulator Module.

something just crossed my mind, should i have a "beep" on continuity test for both 5V and GND, on MAX module in and out pins? I have it on 5V but not on GND as both GND pin holes on both ends dont want to take solder, it blobs, while it goes nice on all other pins

thanks,
Alekl

Clean the solder off, use a solder sucker, or heat it up and smack it on a table, then resolder it. Don't apply solder for a second or two or three until the joint has a chance to heat up.

yes, i do know how to solder and never had issues but these modules, ALL of them refuse to take solder on GND pin only. While it nicely flows around the pin on all other holes, on this one it "jumps" on top of the pin and refuses to stick to the board hole... there is a metal around the hole, i even tried adding flux paste, nothing...

will try to solder from the other side

thanks,
Alek!

Ok, 2 displays working for past 20 minutes, after proper soldering GND pins at higher temps. So this could have been the problem but i still have chip heating problem.
Each module has 4 characters used/ON so it should not be heating up. Will leave it running to see what happens.

thanks,
Alek

The Max7219 has a Scan register that tells it how many 7-segment displays there are.
See if you can find that in the code and set it to for the correct number of displays.

Thanks, but can you please just clarify? I already have the number of displays in the code, not sure what you mean?

Thanks,
Alek

ah ok, you mean digits and i was thinking about number of modules. So what would be practical use of this? To have one 4 digit display present on the module?

Thanks,
Alek

elcrni:
So what would be practical use of this? To have one 4 digit display present on the module?

Yes. If you are using all 8 digits, you want it set for 8.