Addressable 7-Segment Displays May Make Multiplexing a Thing of the Past

[Sean Hodgins] has a knack for coming up with simple solutions that can make a big difference, but this is one of those “Why didn’t I think of that?” things: addressable seven-segment LED displays.

[Sean]’s design is basically a merging of everyone’s favorite Neopixel RGB LED driver with the ubiquitous seven-segment display. The WS2811 addressable RGB driver chip doesn’t necessarily have to drive three different color LEDs – it can drive three segments of the same display. With three of the chips on a single board, all seven segments plus the decimal point of a display can be controlled over a single data line. No more shift registers, no more multiplexing. And as a nice touch, individual displays can be ganged together with connectors on the back of each module. [Sean] has some code to support the display but is looking for someone to build a standalone library for it, so you might want to pitch in. Yes, he plans to sell the boards in his shop, but as with all his projects, this one is open source and everything you need to build your own is up on GitHub. The brief video below shows a few daisy-chained displays in action.

Like many ofΒ [Sean]’s designs, including this Arduino rapid design board, this is a simple way to get a tedious job done, and it wrings a lot of functionality from a single IO pin.

Thanks to [0] for the tip.

52 thoughts on “Addressable 7-Segment Displays May Make Multiplexing a Thing of the Past

          1. That’s why I put down the word “eventually” in my initial comment as I tried making something similar about a year ago but gave up because I couldn’t get the cost down enough to justify building one from scratch on my own (eg less than retail cost) when one include’s the time commitment.

  1. neat idea. one big advantage over the shift register approach is the built-in brightness control.

    You *could* use a single chip (instead of 3 chips) per display by using daisy-chainable shift register, like the everyone’s (lame) favorite 74HC595, but have to put up with a bunch of resistors, and get no brightness control.

    Or (better), a dedicated LED driver like the one-dollar STP16CPC26, which can drive 16 segments (2 displays), and also is daisy-chainable, and also can drive high-voltage LEDs for large, bright displays.

    Or (what I’m doing for a remoteable display) is 8 7-segment displays on a single I2C chip: the AS1115, with a single resistor for brightness control. $4.50 single-chip solution for up to eight 7+1 segment displays (or an 8×8 matrix). And provides scanning for up to 16 pushbuttons too.

    1. If you want brightness control using a 74HC595, just PWM the output enable line (OE). In many cases you don’t need to control the brightness of a specific segment or digit. Most of the times you just want to dim it entirely to save power or reduce brightness in dark environments.

      But the 74HC595 does require more wires so I can understand that this isn’t always preferred when you want to slam in a display of a theoretical infinite size and have lot’s of money to spare. So This little project seems like a nice thought.

    2. The only remarkable advantage of [Sean Hodgins] solution is that you use only 3 wires (GND,VCC,SIGNAL) to drive as many as you want.
      All the other suggested shift register solutions need at least 4 wires (GND,VCC, Clock, Signal).
      One wire “change la donne”.

    1. Like they did with the Voltage displays.
      Just dont reverse the power, They do a little pop. And thats the end of them.
      Great job. But there must be a easier way of doing it.
      Still a great job….

      1. if you were surprised by reversed voltage killing them, then I have some other tips:
        it seems that hitting them with a hammer also does some damage,
        and even high voltage of a few hundred volts (even with the correct polarity) seems to kill them too.
        Submerging it for long periods of time with power applied doesn’t seem to do them good either.
        And I’m pretty sure that high intensity electric fields could interact with the communication too.

        Jeezzz… this is electronics stuff is really difficult stuff!
        It isn’t like you can randomly connect everything make a wish and then it does something.

          1. It would cost another cent, which would add another 10c to the price, and someone else would undercut them. With these boards you make the absolute cheapest thing that isn’t going to swamp you in returns.

      2. Modern super lean manufacturing: Ask prices quotes from a number of chinese manufacturers, send all project files so they can make an accurate quote.
        And then buy the finished product from alibabba 2 weeks later.

      1. One MAX7221 chip can drive from 1 to 8 digits of 7+1 segments (or a 8×8 matrix), has 16 levels of brightness control, but needs 3 control wires.

        But you cannot compare: the functionnality is not the same. What is proposed here in this hack is to have directly extensible displays of numerous digits without having to modify the hardware.
        The MAX7221 approach is more “static”

        Depending on your use case, you will use different solutions.
        One is not better than another: it all depends what you want to achieve, and comparing different solutions can only be done in the frame of determining which solution better fits your needs

      2. The MAX72XX is much easier to use because it’s not timing critical. People use libraries without any thought at all, but controlling the 800kHz synchronous data line on a WS2811 is difficult for an MCU. You need a continuous stream of bits that are either 350 or 900 nanoseconds long with a tolerance of 150 nanoseconds. A “reset” signal is a 50 microsecond pause. This pushes an Arduino to its limit, you can do very little besides control the WS2811 with a single Arduino. And even a more powerful CPU is burning timers, interrupts, and processing power that can be put to better uses.

        If you’re that short on IO, you’re still better off with a MAX72XX and a port extender.

  2. Thems chinese already got several different tube 7seg x 4 digits or more, and some with keyboard and encoder extra built in on the Amazon. 7219, SPI,I2C, and the such. Whole display intensity instead of individual . 2812 and RGB 7seg display is a cool idea too but not feeling need for either. Too cheap and ol school for the idea i guess.

    1. Did u check the price for maxim 7219 on mouser? Ya nothing funky going on there. Same on digikey. So anyway… for the price of 4 of them fancy TI chips could get 8 digit 7 segment with 7219 stuffed and ready or for the price of 7219 alone on mouser can get four stuffed boards. I do love TI but sheesh.

  3. Kinda unfortunate you have to use three ICs per 7-segment display.

    All that said, does someone have a photograph or video of using independent dimming on individual segments of a monochrome 7-segment display? Try as I might, I’m having a hard time figuring out where I’d want to use it.

    1. I saw an application where before a digit itself changed (in a count-down timer), each individual segment dimmed down in sequence one right after the other. I guess it was kind of indicating fractions of a count without using another digit.

    2. I imagine a better solution would be the ATTiny44 with it’s internal 8Mhz oscillator and some hardware timers set up to control the DIN/DOUT (like a WS2811 chip) and drive 8 pwm channels.

  4. I dont get it. Why try to reinvent the wheel? WS2811 is 4.65 USD single quantity. You need 3 for a single digit. nearly 15 dollars, plus the additional parts (PCB and display, resistors, connectors etc). And you need to send 3 values per digit. Meanwhile MAX6958 is 9 dollars in single and drives 4 digits at a time. With one address /value per digit.
    I get using what you are used to.. but 20 seconds of googling would turn up a variety of better options.

    1. $4.65?! Speaking of Googling…

      https://www.aliexpress.com/item/DC5V-WS2811-addressable-pixel-PCBA-without-LED-square-type/32466969629.html

      These are what I buy. Currently $23.23 (delivered by DHL) for breakaway panels of 100 pieces, though I buy them by the hundreds (of 100-unit panels) so the total cost for each unit with shipping is far lower. Add the RGB LED of your choice (e.g., https://www.aliexpress.com/item/8mm-diffused-rond-hat-RGB-LED-3-2V-60ma-common-anode-4pin-dump-RGB/32270741270.html), or use them to drive a lot of other things (with a little creative adjustment of the passives). Using this PCB avoids the hassle of soldering a tiny surface-mount WS2811 chip, for about the same cost as just a chip. And, it includes passives that are useful for avoiding signal problems in long chains.

      Yes, interconnecting a lot of these tiny PCBs can require some tedious wiring, and you 𝘀𝘒𝘯 buy them preassembled in strings (e.g., https://www.aliexpress.com/store/product/DC5V-WS2811-pixel-node-50node-a-string-non-waterproof-SIZE-13mm-13mm/312912_1624010105.html), but I like the versatility of being able to create any configuration I want (and use custom-length, less-visible wiring). Also, you can pass the LEDs’ leads through a hole in something before soldering them to the PCBs, so you get an easy mounting solution (I use this a lot!).

      And, before anyone feels compelled to point out that you can cheaply buy strips of SMD LEDs in many configurations, I want to add that I 𝘨𝘳𝘦𝘒𝘡𝘭𝘺 prefer the look of diffused “top hat” LEDs to SMD for any application where they will physically fit.

      Actually, not to sound like a shill, but I recommend Shenzhen Rita Lighting for all sorts of LED-related stuff. Way too many of the sellers on AliExpress are scammers selling junk, but I have had excellent service from these folks for several years now. Yes, they only use expensive shipping methods like DHL, and are perhaps better for large-quantity orders like I make, but you get what you pay for. I generally receive my orders from them in under a week (to the U.S. east coast).

      1. There’s a reason those Chinese chips are so cheap. They’re either knock-offs not made to quality standards or factory seconds that don’t work in some way.

        Years ago, I built a 16×40 panel out of 10 60mm 8×8 LED matrices and 10 MAX7219’s (about 50 cents each from ali-express). The chips don’t initialize right every time, so when turning on my project I need to cycle power several times to get all 10 boards to light. The the MAX719’s start crashing after 5-25 hours of use leaving an entire 8×8 section dark until I cycle power on the whole project. I’ve added capacitors everywhere, well beyond what the datasheet recommends and it doesn’t improve things at all. I still use it as a nice clock, but I have to power-cycle it several times a week to fix the glitched display..

        1. That’s unfortunate. However, in the past few years I’ve used tens of thousands of cheap Chinese WS28xx thingies in my lighting projects, some of which have been fairly demanding, and while there have been some individual component failures (easily replaced) I haven’t yet had any projects simply fail because of low-spec components. I’m just doing all this for the jollies, not to make money, and if I had to pay the price of “real” parts then I couldn’t afford to do this at all.

          Also, the very few AliExpress merchants that I’m willing to deal with (like Shenzhen Rita Lighting) have been very good about either replacing bad parts or refunding their cost. Since they’re so cheap, for safety I always buy many more of the parts than I think I’ll actually needβ€”and as a result, have collected a large number of unnecessary spares.

          As always, YMMV.

  5. I really love the modular idea but not the price.

    Something like MAX7221 on a PCB with 8 or 10 7seg positions that are snap off so you only populate the ones you want would be better I think.

    It would even be better if there were other module types like buttons, rotary encoders, slide pots, bar graphs etc.

  6. Inventor needs to shop more on eBay. I’ve been using Chinese made 4 digit LED “tubes” that use a 2 wire serial protocol to drive 4 digits. The chip is capable of driving 6. It has PWM brightness control via command bytes. It also incorporates a keypad scanner. All multiplexing is done internally on the “tube” so you only have to send it the data. Yes, it’s one more signal wire than this, but $1 vs $15 is no contest. Search the Internet for TM1637 displays. And then there are the MAX products.

  7. This ultra-cheap (under US$2), daisy-chainable, 16-channel, I2C-connected board with 12-bit PWM outputs will directly drive an individual LED (like one segment of the display) on each channel. So, two seven-segment digits with (FWIW) much finer brightness control on each segment (WS2811 is 8-bit PWM) per board. Yeah, I2C requires one more data line than a WS2811 solution, but as always you get what you pay for: https://www.aliexpress.com/item/16-Channel-12-bit-PWM-Servo-Driver-I2C-interface-PCA9685-for-arduino-or-Raspberry-pi-shield/32447354314.html

    And if you don’t want to buy from AliExpress, and aren’t a poor, starving student, you can always get the same thing from our dear friends at Adafruit: https://www.adafruit.com/product/815

    1. BTW, over the past few years I’ve bought & used 𝙝π™ͺπ™£π™™π™§π™šπ™™π™¨ of these little PCA9685 modules from a variety of AliExpress merchants (though I’ve recently settled on Advanced Tech as my favorite). They are my hands-down, all-time favorite gadget, because they can be used for so very, very many cool things that are difficult and/or painfully expensive to do in any other way (the connectors on the module are laid out on the assumption that they’ll be used to drive servo motors, but my preferred use is as a driver for various sorts of lights). And so far (knock on wood) I haven’t found a single one that didn’t work for me, not that I’d really worry about it since replacement is so cheap & easy (but, why would anyone go to all the trouble to build a rather complex board around this cheap little chip without testing the chip first?). I now have a stock of close to a thousand, because I’m worried about what Agent Orange’s trade war with China might do for future availability and, to be mildly hyperbolic, I’d rather die than have to live life without this module. For years before it was available I used all sorts of other PWM solutions, and for me the PCA9685 has been a revolution.

      These modules used to be pretty expensive, and for a short while I was buying raw PCA9685 surface-mount chips and soldering them up myself. But now, at less than two bucks for an assembled module, that would be an insane thing to do. Get ’em while you can, folks.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

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