esphome / feature-requests

ESPHome Feature Request Tracker
https://esphome.io/
406 stars 26 forks source link

Add support for Adafruit HT16K33 based LED displays #625

Open patfelst opened 4 years ago

patfelst commented 4 years ago

Describe the problem you have/What new integration you would like Could you please add support for Adafruit LED backpack displays all based on the HT16K33 I2C chip. Their products include an LED bargraph, LED 8x8 dot matrix (single and multi-color), 7-segment LED, and 4-digit alpha-numeric LED display.

Please describe your use case for this integration and alternatives you've tried: ESPHome currently does not have support for an alpha-numeric LED display which I am most interested in, yes ESPHome has the max7219 platform, and the upcoming TM1637 but they only support 7-segment displays.

Additional context There is an existing Arduino library which supports all the LED backpack types of displays. It is I2C based so should be a relatively simple adaption of the lcd_pcf8574 display platform.

patfelst commented 4 years ago

Samuel Sieb has kindly created a custom component which currently supports just the 4-digit alpha-numeric display. I will not be able to test until the weekend. https://github.com/ssieb/custom_components/tree/master/lcd_ht16k33

docteurzoidberg commented 3 years ago

@ssieb made a custom component for the alphanumeric version of theses backpacks, here: https://github.com/ssieb/custom_components/tree/master/ht16k33_alpha Would be great to include !

42Network commented 3 years ago

How do we vote? I vote for this one for sure. ssieb has quite a few components which could be pulled in to ESPhome.

ssieb commented 3 years ago

Pulling isn't something that happens. I need to write some docs and make PRs.

42Network commented 3 years ago

Yes, I know you'd have to submit a PR. Meanwhile I'm glad for your work and I can include locally. However, I just now realized your code will not work for my HT16K33-based numeric LED display. It actually does work, but randomly displays garbage. I am using it for a simple temperature display, e.g. 104.1.

I got it working though using this example: https://github.com/JAAlperin/esphome-adafruit-7-segment-LED-backpack-example. This isn't as nice as yours, though, because it requires much more code inside the display lambda.

I am not much of a programmer but I may try to either make your code work with the simple 4 digit numeric display, or make that other code work directly with ESPhome, with the appropriate Python wrappers.

ssieb commented 3 years ago

Right, my component is for the alphanumeric displays that have 14 segments, not the 7 segment displays. Is it the one with the colon in the middle? I just checked the wiring for that one and it seems a little wacky, but a simple component should be easy. I don't see much point in including the scrolling support for a display like that.

42Network commented 3 years ago

I agree - scrolling for number-only 4-digit 7-segment isn’t needed. But brightness control and access to the dots and colon and possibly individual segment control (ie there are a few letters and symbols that can be shown with just 7 segments) would be useful.

But for the moment I just need to show two or three digits, a decimal, and one more digit, eg “104.1” I am using it to show my hot tub water temperature.

cwross commented 2 years ago

Very interested in this as well, particularly for the 4-digit 7-segment display. I can test if needed. Thanks!

feaver12 commented 2 years ago

i am also interested in support for this same display!!!

smartroad commented 2 years ago

Just to throw my towel into the ring, this is also used for Adafruits "Trellis" button/led board (https://www.adafruit.com/product/1616)

Could make a nice HMI self lighting buttons? (showing when things are on/off, maybe flashing for attention?). I don't know enough to add this myself :(

cTurtle98 commented 1 year ago

any progress on this one? i would love to be able to use this

kj4dxk commented 1 year ago

I would like to use it to make a thermostat display.

SteveRMann commented 5 months ago

Also interested. I have devices that use the 14-segment display from Adafruit, but I have to run them on Arduino and use MQTT to update them.