0

RGB 7-Segment Digit LED Display (#1399): Compatible SPI/I2C
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

RGB 7-Segment Digit LED Display (#1399): Compatible SPI/I2C

by robfrawley on Mon May 03, 2021 8:32 pm

For the project I am working on I require an SPI- or I2C-controlled eight digit display comprised of eight 7-segment LED modules. My goal is to put together a solution for driving these eight 7-segment LED modules using one of the following methods, from best-case to worst-case options:

  1. Using two pre-built 7-segment LED backpacks supporting SPI- or I2C- connectivity (assuming RGB 7-segment module backpacks exist at all).
  2. Using a combination LED matrix driver breakout boards (plus a controller and the custom programming to offer an I2C- or SPI-controlled character interface).
  3. Building an entirely custom solution (using a products like multiple Sparkfun LED Display Driver: MAX7219CNG (8-Digit) or multiple SparkFun LED Driver Breakout: TLC5940 (16 Channel) breakout boards, plus a controller and the custom programming to offer an I2C- or SPI-controlled character interface).

Option 1

The trouble I am finding with Adafruit's pre-made 7-segment LED backpacks, is that they are only ever advertised to work with the simple, singular colored 7-segment LED modules (such as Adafruit products #865, #812, and #1001). For my project, I need a backpack that supports 7-segment RGB LED modules; specifically, the display module I need backpack compatibility with is Adafruit's RGB 7-Segment Digit LED Modules (#1399), which (as the product name implies) is a 7-segment, single-character, LED display module, that, unlike all others 7-segment modules sold by Adafruit, has RGB color support.

Given the above information and requirements, my primary question is: do any of Adafruit's pre-built 7-segment LED backpacks support Adafruit's RGB 7-Segment Digit LED Modules (#1399)? For example, I found the following backpacks, but none provide any information about support for 7-segment RGB LED modules. Do any of these support 7-segment RGB LED modules:


Option 2

If none of the above pre-made 7-segment LED backpacks support RGB, my next question would be if an LED Driver Matrix would be a feasible alternative. As I have never used an LED Driver Matrix, I would also require some assistance on the number of them required to drive eight Adafruit's RGB 7-Segment Digit LED Modules (#1399) and basic instructions on wiring. Two examples of such LED Driver Matrix boards include the following:


Option 3

Assuming neither the pre-made 7-segment LED backpacks or the LED Driver Matrix boards sufficiently solve my project's requirement to drive eight Adafruit's RGB 7-Segment Digit LED Modules (#1399) over a simple, high-level character-based I2C- or SPI-based interface, does anyone have any ideas for a custom-built option? For example, I could use multiple Sparkfun LED Display Driver: MAX7219CNG (8-Digit) or SparkFun LED Driver Breakout: TLC5940 (16 Channel) breakout boards to control each 7-segments of the eight RGB digit displays, bit this would require enough LED Matrix Drivers to support 56 display segments (in other words, I would need to control 56 RGB LEDs independently).

Moreover, I want to be able to use a simple I2C- or SPI-based interface to send characters to the display, without the need to worry about the 7-segment displays (and which LEDs need to be lit to display a digit, for example); as such, I would need to use a custom controller, like an Arduino Pro Mini (or something else) with custom programming to accept the high-level, "character-based" I2C- or SPI-instructions and then perform the required steps to display said characters on the requested 7-segment display (of the eight) using the LED Matrix Driver (which itself, may communicate over I2C or SPI).

Thanks for anyone taking the time to read this entire message and to those who take the time to share their opinions and experiences!

-Rob Frawley 2nd

robfrawley
 
Posts: 1
Joined: Fri Nov 08, 2019 4:54 am

Re: RGB 7-Segment Digit LED Display (#1399): Compatible SPI/

by blnkjns on Tue May 04, 2021 12:49 am

I think it is best if you treat it as RGB 8x8 LED matrix. But driving those is no easy thing. You get into something like this (look for common-cathode RGB LED matrix driving):
https://www.instructables.com/RGB-LED-Matrix-1/
Maybe you can find a complete board for it, like Meggy Jr RGB:
https://shop.evilmadscientist.com/productsmenu/100
Sparkfun did not retire those display for no reason. Neopixels kind of made these classic matrices obsolete.
And then you also need to drive a custom driver. You should borrow the "font" from TM1637TinyDisplay though to make ASCII to segment mapping easy.
What about using this:
https://www.adafruit.com/product/2279 + https://www.adafruit.com/product/2601
You could make a 4x7 or 5x9 pixel LED segment font in the GFX library, and have rougly the same size characters 7x3=21mm height, or 9x3 for 27mm. or 7x4mm for 28mm characters. You could even add some fuzz to it with smoke acrylic.

blnkjns
 
Posts: 610
Joined: Fri Oct 02, 2020 3:33 am

Re: RGB 7-Segment Digit LED Display (#1399): Compatible SPI/

by adafruit_support_mike on Sun May 09, 2021 6:59 pm

robfrawley wrote:do any of Adafruit's pre-built 7-segment LED backpacks support Adafruit's RGB 7-Segment Digit LED Modules (#1399)?

No, they don't.

The 7-segment backpacks only have one control pin per display segment. An RGB display would need three: one each for the red, green, and blue LEDs.

In a perfect world you could use three single-color backpacks with an array of four RGB displays. It probably wouldn't work in reality though. The HT16K33 multiplexes displays by connecting power to them one at a time. Getting multiple HT16K33s to work in parallel would require that they activate the displays at the same time. There's no guarantee that the clocks would be in sync, so the output would probably be a mess.

robfrawley wrote:my next question would be if an LED Driver Matrix would be a feasible alternative

The Charlieplexed driver definitely wouldn't work.

Charlieplexing works by connecting LEDs in opposition between the same pins: setting pin-1 high and pin-2 low turns LED-A on. Reversing the pins (pin-1 low, pin-2 high) turns LED-B on.

In the 7-segment RGB displays, the anodes of all the LEDs are connected together. That means they can't be Charlieplexed.

The 16x8 matrix driver would have the same basic problem as the 7x4 Backpack: you could control 16 LEDs per display at the same time, but the displays have 21 LEDs to control. You'd need a couple of matrix drivers operating in parallel to control a whole display, and that raises the problem of getting the devices in sync again.

The Sparkfun 16-channel LED driver is equivalent to our PCA9685 version:

https://www.adafruit.com/product/815

and would control 16 of the 21 channels of a single 7-segment RGB display.

We have a 24-channel LED driver that would control a single 7-segment RGB display:

https://www.adafruit.com/product/1429

Another option would be to use WS2811 LED drivers:

https://www.adafruit.com/product/1378

You'd need 7 per display, but would be able to control an entire 8-digit display with a single control signal.

adafruit_support_mike
 
Posts: 62768
Joined: Thu Feb 11, 2010 2:51 pm

Please be positive and constructive with your questions and comments.