Prototyping A Modular LED Matrix


[Will] was toying with the idea of creating a scrolling LED marquee to display messages as his wedding in May. But you’ve got to crawl before you can walk so he decided to see what he could do with the MAX7219 LED driver chips. They do come in a DIP package, but the 24-pin 0.1″ pitch chip will end up being larger than the 8×8 LED modules he wanted to use. So he opted to go with a surface mount part and spun a PCB which makes the LEDs modular.

These drivers are great when you’re dealing with a lot of LEDs (like the motorcycle helmet of many blinking colors). Since they use SPI for communications it’s possible to chain the chips with a minimum of connections. [Will] designed his board to have a male header on one side and a female socket on the other. Not only does it make aligning and connecting each block simple, but it allows you to change your mind at any time about  which microcontroller to use to command them. For his first set of tests he plugged the male header into a breadboard and drove it with an Arduino. We hope to hear back from him with an update when gets the final device assembled in time for the big day.

23 thoughts on “Prototyping A Modular LED Matrix

    1. If you’re talking about the chip, you can request free samples from Maxim direct. DIP and SMD are both available as “engineering samples”. Much better then paying $10 each for them.

    2. Tell me about it. Everything is pretty cheap except for the MAX7219. Unless you buy like 100 of them. Maybe if I can get enough people to want one. The other option is a little cheaper for smaller quantities is the AS1107 from AMS, which is drop in compatible. I need to try one out.

        1. I’ve always thought/wondered about these — they just can’t be genuine Maxim parts. There’s been a ~3-month flood of “MAX7219” LED matrixx+PCB kits out on eBay that go for ~$5 that are certainly using the same.

          The price of real MAX7219s though legit channels is a tragedy.

          1. Whoever’s making them (if that’s what’s going on) must think that they can make money on them. Or they tried, couldn’t make a go of it, and these are what’s left. Or some other reason entirely… if they’re even new.

            Why does Maxim charge so much for them? Either they cost a fair amount to make, or they’re charging whatever they think the market will bear into a low-volume, captive market for legacy/specialty parts. This would be counter to what Maxim usually does — a common complaint with them is that they EOL products very aggressively, leaving a lot of annoyed engineers/purchasing agents stuck. I’ve heard often enough that some engineers say that Maxim is a manufacturer of last resort for them, because they can’t count on the parts being around for very long, if there’s an alternative. Look at Touchstone, they seem to almost exclusively clone Maxim parts and seem to be making a business of it.

            Segment LCDs haven’t killed LED displays, but we’re almost there already for most of the small display market. It doesn’t seem like a long-lived category at this point, although ams doesn’t seem to have given up on it entirely — I think that they’re still coming out with new products in this space.

            I’m having trouble making an educated guess as to what the story is. This one’s bugged me for the last few years that I’ve known about it.

  1. There are also the Maxim ICM7211 and ICM7212:

    Interestingly some of these ICs output Code B which is ‘0123456789-EHLP ‘ instead of hex which gives ‘0123456789ABCDEF’.

    I’ve been trying to find out what ‘Code B’ is actually for. I’ve asked the questions on several forums and got unhelpful answers, usually from people who don’t read the question.

    I even asked Maxim support and the best they could come up with was this old Intersil datasheet:

    Some engineer at some point must have decided that those Code B values were useful for something. They made a chip to output them. But what exactly are they for?

    Has anyone ever actually build something and said ‘what we need for this display is Code B output’. In which case was what that something?

    You can get free samples of the Maxim Code B outputting one and I have requested some but I don’t think Maxim know where New Zealand is as nothing I order from them ever arrives!


    1. Thanks for nothing jerk. If I may posit a solution to your quandry? What I have may not be correct but based on my limited knowledge it’s a thought.

      It’s kind of strange that A: The order of 0123456789-EHLP space was chosen and B: It’s still being made.

      So following that train of thought, it’s painfully obvious that EHLP does not spell out HELP nor does the inclusion of P mean that words like HI or LO can be spelled. If HELP was the intent, then a smart engineer would have ordered it accordingly to reduce unnecessary work on MCU’s. The inclusion of the MCU AND multiplexed BCD interface makes the intents pretty clear. There is some kind of legacy support going on.

      So my first and only theory is:

      It’s used to represent British Sterling, eg in calculators that probably convert from older Sterling numbers to modern Sterling. Given that – is minus and E is ERROR then H could be HalfPence, L for Pound and P for Pence. I don’t know how to do the conversion so…. Meh.

      I was curious about a working example though. I poked around some data sheets and it’s a damn nightmare. The CD4055/CD4056 data sheets show 0123456789LHPA-blank. Another Google showed that the 74LS47 or 74*48 has an entirely different >9th digit scheme not worth typing here. Strangely the 7447/7448 series seems to be older and bit more common that Maxim’s Code B. I really can’t fathom what the *47/*48 series the extended digits was used for.

      Once I encountered that crap, I gave up. Not much point in going further with such obscure stuff getting in the way. :(

  2. This kindda looks similar to LED matrix controller that sparkfun are selling
    ( except theirs has an atmega that you can program. You can chain them same way (mechanically).
    Images can be either stored inside the microcontroller or sent over the input lines. While those things aren’t cheap, this looks like reinventing the wheel to me.

    1. This wheel is ~4x cheaper (although not a perfect substitute)\ and seems to work on the 3mm LED matrices whereas SF’s implementation can’t. This seems more of a unicycle-tenspeed comparison to me…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.