Makuna / NeoPixelBus

An Arduino NeoPixel support library supporting a large variety of individually addressable LEDs. Please refer to the Wiki for more details. Please use the GitHub Discussions to ask questions as the GitHub Issues feature is used for bug tracking.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add support for TM1934

bogdanr opened this issue · comments

Hello

I have a TM1934 LED strip. The online listing specifies that this is similar to WS2815.
20231201_100815

I tried with some of the currently supported variants but it doesn't work properly. For example TM1814 doesn't really hold a steady color with this chip and using WS2813 allows for very little brightness.

What platform are you using? ESP32? AVR?

The only Spec Sheet I found: https://sunliteleds.com/wp-content/uploads/2023/11/TM1934-specification-sheet-download.pdf

NeoWs2812xMethod (WS2813 should also) should be fine per the spec. But there is a worrying phrase used without more details in that spec.

"After power-on reset and reception of a mode setting command, ..."

and at the top of the spec...

"The chip data interface can configure DI or FDI pin input through the command. In normal mode, the input interfaces switch with each other. In DI operating mode, DI pin inputs data. In FDI operating mode, FDI pin inputs data. "

This sounds like a header (command) should be sent to configure the LEDs; but the spec does not list what this is.

The TM1914 is spec'ed with a similar documented command and my library supports it. Give it a try.

NeoPixelBus<NeoRgbTm1914Feature, NeoTm1914Method> strip();

Remember to connect both input pins as specified in the data sheet.
Remember to set the NeoTm1914Settings settings on the strip before use. See Wiki

@bogdanr Let me know if using the TM1914 works for you and then I can alias the TM1934 to it.

I am using esp8266 with ESPHOME, the following config:

...
esp8266:
  board: d1_mini_pro

light:
  - platform: neopixelbus
    variant: TM1914
    id: $id
    pin: D4
    num_leds: 125
    type: GRB
    color_correct: [30%, 30%, 30%]
    name: "$devicename Light"
#    restore_mode: ALWAYS_ON
    effects:
      - addressable_rainbow:
      - addressable_rainbow:
      - pulse:
      - strobe:
      - addressable_color_wipe:
      - addressable_scan:
      - addressable_twinkle:

With TM1914 it doesn't work properly in the sense that LED brightness is 100% unless it's completely OFF. If I use effects like color_wipe it changes the LEDs but the ones that don't show some color are 100% white. Selecting no effect with 1% brighness it's white 100% and only with 0% brighness it's off.

Setting the variant WS2811, WS2812 or WS2813 the effects work correctly (LEDs are actually turning off and not going to 100% when they should be off) but the maximum brightness is at most 10% and it's not adjustable.

Actually the problem was with color_correct: [30%, 30%, 30%].
With the following config it works just fine so if you can set the alias to ws2812x that would be great. Thanks!

    variant: ws2812x
    pin: D4
    num_leds: 125
    type: RBG