MAX7219 tube clock/How the chip thinks/09. Brightness is two numbers
How the chip thinks · 09 of 12

Brightness is two numbers

Peak current times duty cycle. The peak is a 10 kΩ resistor soldered to the back of the board and no sketch can reach it; the duty is a register you can set sixteen ways. Multiply them and you get the number that decides whether your USB port copes.

Two numbers, multiplied

A fixed resistor and a variable duty
17/32
setIntensity8
What it is showing
Duty cycle
17/32
Supply current
157 mA
Intensity byte
0x0A 0x08
Two numbers multiplied, and you only own one. The 10 kΩ resistor on the board fixes the peak segment current near the chip’s 40 mA maximum; the intensity register then scales it in sixteen steps of two thirty-seconds. So software can make it dimmer and never brighter, and level 15 is as bright as this board goes. The scan is running at about 800 Hz either way, far above anything the eye or a phone camera resolves.

Move the slider and watch the current on the right. Everything about brightness on this board is those two bars multiplied together.

The peak is set by RSET, the single resistor on the back of the driver board. The chip sources roughly a hundred times whatever current flows into its ISET pin, and 10 kΩ puts that just under the 40 mA per segment the datasheet calls its maximum. It is a chip resistor. You cannot change it from a sketch and there is no reason to want to — the datasheet's own floor is 9.53 kΩ, so the board is already about as bright as the part allows.

The duty is the intensity register, address 0x0A. Sixteen steps, and on a MAX7219 they are the odd thirty-seconds: 1/32 at level 0, 3/32, 5/32, all the way to 31/32 at level 15. Evenly spaced, unlike the TM1637's, so turning it up one notch does the same thing everywhere on the scale.

Software can therefore make the display dimmer and can never make it brighter.

The MAX7221 column

The datasheet prints the two parts' intensity tables side by side, MAX7219 in one column and MAX7221 in the next, and the MAX7221's steps are sixteenths rather than odd thirty-seconds. Quoting the wrong column is the commonest MAX7219 error in circulation — it is off by a factor of two at the bottom of the range, exactly where a night-light setting lives.

This board has the MAX7219, so the numbers are 1/32 to 31/32.

What it draws

The datasheet gives the arithmetic itself. Supply current is the chip's own 8 mA plus the duty cycle times the segment current times the number of segments lit on the digit being scanned:

I = 8 mA + duty × 40 mA × segments

Only one digit is driven at a time, which is why the answer does not multiply by eight. At level 15 with every segment on, that lands at about 320 mA — and the datasheet's measured typical for exactly those conditions is 330 mA, which is the check that this is the right equation and not a plausible-looking one.

A third of an amp is fine from a USB port and fine through an Uno's 5V pin. It is not fine from a 3.3 V regulator, and it is enough to make a long thin lead sag. If your board resets when the digits fill up, this is why, and dropping to level 4 takes it under 100 mA.

Practical settings

Where it livesLevelRoughly
A dark bedroom0–2Visible, not distracting
An indoor desk4–8The default in most examples is 8
A bright room, or through the diffusion sheet10–15Full output

The diffusion sheet costs light, which is the whole point of it — it trades peak brightness for a soft even glow. A display behind the sheet usually wants two or three levels more than the same display without it.

Off is not level 0

Turning the display off is the shutdown register, not the bottom of the intensity scale. It stops the scan, blanks everything, drops the chip to about 150 µA — and leaves all eight digit bytes exactly where they were, so bringing it back takes one write and no re-sending.

Which is also how you blink the entire display, or fade a clock out overnight without losing the time it was showing.

When it does not work

setIntensity(0, 15) is not bright enough

Then you are at the top of what this board does. The peak segment current is set by the 10 kOhm resistor next to the pads, near the chip's 40 mA maximum, and the intensity register only ever scales that down. The diffusion sheet also costs light — take it off if you want the digits at their sharpest.

Level 0 still glows

It is meant to. The lowest step is one thirty-second of the peak, not zero, and in a dark room it is a comfortable night level. Genuinely off is the shutdown register, which blanks the display and leaves all eight digit bytes intact so you can turn it straight back on.

My board browns out when the display fills up

Eight digits with everything lit at level 15 is around a third of an amp at 5 V, which is the datasheet's own typical figure. A thin USB lead, a shared supply or a regulator already doing something else will sag under it. Drop the intensity, or give the display its own 5 V and tie the grounds.

Two displays on one board are different brightnesses

Check the scan limits match. Brightness depends on how long each digit's turn is, and that is one over the number of digits scanned — so a chip set to six digits runs each of them at a sixth and looks brighter than one set to eight. The datasheet says the same thing about mismatched chains.

The digits flicker on camera but not to my eye

That is the multiplexing, at about 800 Hz, beating against your camera's shutter or rolling readout. Nothing is wrong and there is no setting for it: the scan rate is fixed by the chip's own oscillator. A longer exposure averages it out.

Where this goes next

On a clock panel the second digit's point line goes to the colon — and on the other six digits it goes nowhere at all.

The colon is a decimal point

Edit this page — content/books/max7219-tube-clock/brightness-is-two-numbers.mdx

Community

Questions about this product

See what other owners have asked, and read their solutions.

Ask a question ↗

MAX7219 Vintage Tube LED Clock Kit

Loading discussions…

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Modules and blocks on the forum