Multiplexing many 7s digits with a single chip

Hey people, I'm trying to resume some project I was working on, with the very small electronics knowledge I have and after being idle for months is almos as a freash start.

Getting to the point, I want to use few of these... using few arduino pins as possible

I was planning to do it with some 595s but the circuits get too complex for wiring and coding.

I know there is some expensive chip that can handle one (and more) of these, including segments and digits, but I can't remember which one, can someone please point it to me?

Thanks in advance!

You're probably thinking of the Maxim 7219.

Thank you! I think that is the one I was looking for.
So, if I get it right with one of these I would be able to handle 8 digits and their segments, am I right?
And a final question: Can I wire them in cascade like the 595s?

but the circuits get too complex for wiring and coding.

Yes, it really is simpler to use LCDs

The 7219 is for common cathode displays. I believe the 595s are only for common anode

The 7219 is for common cathode displays.

Really? I already have the displays and they are common anode :frowning:
Any similar chip that work with them?


74hc595 can be used for either common anode or common cathode displays. But it is not a great chip for this purpose for either type. Best to use 1 74hc595 chip per digit, and individual digit displays, to keep the display bright.

max7219 can be used for common anode. However, it was designed for common cathode and some of its features won't work with common anode and using common anode with these chips makes writing the sketch very difficult for a newbie. It may still be the best solution for you and I'm sure you can get enough help on this forum when writing the sketch, as long as you are willing to work at it.

saa1064 chips are designed for common anode displays, but they can only run 4 digits per chip. They are large chips and more expensive than max7219 and require more external components to work. Up to 4 of these chips can be attached to the Arduino's i2c bus.

There are other solutions which will work with common anode displays, like tpic6c595, but these will mean a more complex sketch in which the Arduino performs multiplexing. Other components will be needed.


max7219 can be used for common anode.

And that is the important point. There is absolutely nothing wrong with using the MAX7219 for common anode 7-segment displays. There is no hardware problem whatsoever - you just connect it up with cathodes to cathode driver pins and anodes to anode drive pins.

For common cathode displays, the MAX7219 has a mode where it "decodes" decimal digits - but not hexadecimal, so it is limited there - as 4-bit values into the 7-segment patterns. For the codes above 8, it produces the characters "H", "E", "L", "P", "-" and blank.

For common anode displays, rather than having one byte per digit as with common cathode displays, you have one byte per segment so that corresponding segments of all eight digits are collected together. You therefore have to generate a "frame buffer" as an array and selectively write individual bits of each array element to correspond to the particular pattern of each digit (for which of course, you use a lookup table of the 7-segment patterns), then ripple that buffer into the MAX7219, which admittedly is a trifle more complex than writing one byte for each digit.

But most certainly, the value of not having to multiplex the display makes it all worthwhile. :grinning:

Thank you guys, that gives me some hope.
BTW, what about ICM7218a? I'm reading in another topic someone used them with common anode displays.
Should I try those or should I still stick with the MAX7219?

BTW, what about ICM7218a?

Not a very common chip - will be difficult to find and probably much more expensive than max7219. Also requires 10 Arduino outputs to drive even one of those chips, plus an extra Arduino output for each additional chip, versus only 3 Arduino outputs for as many max7219 as you like.

I will go for the max7219 then.

I know this chip is expensive, however I can see them at $4 the 10 pieces set on ebay.
Are they Chinese clones or something? Will they work anyway?

Yes, if they are much less than $10 each, they will be clones. There is always a higher risk with clones that you will get a bad one, but this seems to be quite rare. I have only ever heard of a few issues with them, but never had any issues myself.