MAX7219 LED brightnes and supply

Hi guys,

I connected a MAX7219 to a 8x8 LED Matrix. From the datasheet I determined the resistor to be 24.5kOhm (I use 3.3V 20mA Leds). After some tests it turned out, that the LEDs are way darker than the one I just supply with 5V + pre-resistor, no MAX7219.

When measuring the voltage and the current I found, that to the LED 4V and 15mA are supplied. This are rather wrong values. I counter checked all parts (compared to Tutorial – Arduino and the MAX7219 LED Display Driver IC | tronixstuff.com) and I did everything right. Did I buy a fake MAX? What can be done to offer the right current? It is really essential for my project, that the LEDs are bright.

Best Simon

Ps: I use the ledcontrol.h library. I set the brightness level via setIntensity to 15 for my experiments.

smoes:
Hi guys,

I connected a MAX7219 to a 8x8 LED Matrix. From the datasheet I determined the resistor to be 24.5kOhm (I use 3.3V 20mA Leds). After some tests it turned out, that the LEDs are way darker than the one I just supply with 5V + pre-resistor, no MAX7219.

This is normal. The MAX7219 multiplexes the LEDs. That means they're only switched on for 1/8th of the time.

smoes:
When measuring the voltage and the current I found, that to the LED 4V and 15mA are supplied. This are rather wrong values.

I don't know how you measured that but you can't connect a multimeter to a pulsed output (which is what your LEDs are receiving).

fungus:
This is normal. The MAX7219 multiplexes the LEDs. That means they're only switched on for 1/8th of the time.

Is there any chance of increasing the brightness further?

fungus:
I don't know how you measured that but you can't connect a multimeter to a pulsed output (which is what your LEDs are receiving).

Oh okay I did not know that. I just used it as I do on non pulsed outputs.

€ Does both statements also hold if only one LED is activated?

smoes:
Is there any chance of increasing the brightness further?

You might be able to increase the current a bit more but it will still be multiplexed.

smoes:
€ Does both statements also hold if only one LED is activated?

Yes. The chip doesn't adjust when there's less LEDs - matrices would constantly change brightness if it did that.

You can write to the MAX7219's "Scan limit" register to select less columns. Less columns is brighter. This won't help you make it brighter, but it will show you the difference between multiplexed/non multiplexed LEDs.

smoes:
I connected a MAX7219 to a 8x8 LED Matrix. From the datasheet I determined the resistor to be 24.5kOhm

I'm not sure how you calculated that. Generally, the resistor value to use is 10k for an 8 by 8 matrix. Do not alter the "Scan Limit" from 8 however. 40 mA drive is fine for these matrices as of course, it averages to 5 mA as long as you are multiplexing eight ways.

smoes:
After some tests it turned out, that the LEDs are way darker than the one I just supply with 5V + pre-resistor, no MAX7219.

But - just what tests were these?

fungus:
I don't know how you measured that but you can't connect a multimeter to a pulsed output (which is what your LEDs are receiving).

Wouldn't say "can't", more a problem of making any sense of it and it would entirely depend on the nature of the DMM. I suspect if you get a sensible (stable) reading then it might be measuring the average, given the 800 Hz multiplex frequency is an order of magnitude in excess of the DMMs integration frequency. Measuring current, a 10 or 100µF capacitor across the meter terminals should sort the average out pretty well and the same plus a 1K series resistor for voltage should give a good approximation anyway. (If you doubt this, measure a battery voltage with and without the 1k - made no difference to mine.)

Just tried this (no capacitors or resistors) on my (fully lit, un-initialised) matrix and I get a stable value about 0.9V at 4.5V Vcc (USB doesn't like a fully-lit matrix) which seems very optimistic.

At first, thank you both your answers.

Paul__B:
I'm not sure how you calculated that. Generally, the resistor value to use is 10k for an 8 by 8 matrix. Do not alter the "Scan Limit" from 8 however. 40 mA drive is fine for these matrices as of course, it averages to 5 mA as long as you are multiplexing eight ways.

This Table, taken from http://tronixstuff.com (taken from the Datasheet of the MAX7219) shows how to choose the correct pre-resistor for the IC depending on the LEDs specs. From there I got the value (20ma/3V). I'm still confident that was the proper choice.

Paul__B:
But - just what tests were these?

What I did was comparing a single LED on my breadboard with the ones in the matrix using different setting (single LED, row, etc) all were constantly darker, what makes perfectly sense according to fungus post.

smoes:
This Table, taken from http://tronixstuff.com (taken from the Datasheet of the MAX7219) shows how to choose the correct pre-resistor for the IC depending on the LEDs specs. From there I got the value (20ma/3V). I'm still confident that was the proper choice.

Yes, but you are presuming that you need to limit the current to 20 mA. This value - as far as I can determine - is the peak current driving each LED as it is multiplexed for a maximum of one-eighth of the time (and the driver chip itself is limited to 8 x 40 mA or 320 mA total). The LEDs you have almost certainly have a peak current rating of at least 100 mA, so there should be no reason not to select 40 mA - as is done in the commonly available matrix modules.

The table is there to allow you to limit the peak current - to the extent that there ever may be a need to, which there will not be in your case if you desire maximum brightness.

smoes:
What I did was comparing a single LED on my breadboard with the ones in the matrix using different setting (single LED, row, etc) all were constantly darker, what makes perfectly sense according to fungus post.

Indeed it does, so there should be no reason not to optimise the peak driver current to get them a little bit brighter when multiplexed.

Ahhh I see where we are getting.
Just to be sure: You say, 10kOhm would be sufficient, when I do not alter the scan limit? Implying, that the chosen resistor is set to protect a led when setting the scan limit to 1?

Paul__B:
The LEDs you have almost certainly have a peak current rating of at least 100 mA

Says who?

Paul__B:
so there should be no reason not to select 40 mA - as is done in the commonly available matrix modules.

40mA is probably OK but it won't be much brighter.

Brightness is a logarithmic thing, log(40) is only 23% more than log(20).

Which would strongly depends on the other characteristics of the brightness-function :wink:
Nevertheless 23% would be fine.

Thank you both!

smoes:
Just to be sure: You say, 10kOhm would be sufficient, when I do not alter the scan limit? Implying, that the chosen resistor is set to protect a led when setting the scan limit to 1?

No, the other way about - if the scan limit is set to one, you have continuous drive. Table 9 gives you a much lower limit for that circumstance. Presuming you are doing the full eight-way scan, you should be pretty safe with the 10k (and the third significant digit is quite superfluous).

smoes:
Which would strongly depends on the other characteristics of the brightness-function :wink:

It's not the brightness function of the LEDs - which indeed may be non-linear but not to an extent I was going to attempt to address - but the brightness response of the human eye which is essentially logarithmic.

fungus:

Paul__B:
The LEDs you have almost certainly have a peak current rating of at least 100 mA

Says who?

Yeah, you're right. They are not all as robust as these ones; But I suspect that most single-colour 8 by 8 LED matrices and many dual-colour are much the same; he is unlikely to say the least, to be using one different to those commonly available on eBay.