The address tape is on the mt16703 chip . Connection

Tell me, maybe someone has encountered the connection of a similar address tape on the mt16703 chip . 24V tape , warm white light , SPI tape type . it doesn’t work with configurations from esphome, but it’s possible that I’m not connecting correctly, the contact tape has three, not four : +, - , D



Just make sure you respect the correct direction, data goes to DI pin, not DO.

So how is your esphome code?

That’s what I’m doing.

code:

esphome:
  name: esp32-s2-mini-test-2
  friendly_name: ESP32 S2 Mini TEST 2

esp32:
  board: lolin_s2_mini
  framework:
    type: arduino

logger:
api:
ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Esp32-S2-Mini-Test-2"
    password: "KpG1EYqqUUe8"

web_server:
  port: 80
  version: 3

captive_portal:

one_wire:
  - platform: gpio
    pin: GPIO03

spi:
  mosi_pin: 39
  clk_pin: 37



light:
  - platform: spi_led_strip
    num_leds: 300
    id: rgb_led
    name: "RGB LED Strip"
    data_rate: 10MHz
    effects:
      - addressable_rainbow:
      - addressable_rainbow:
          name: Rainbow Effect With Custom Values
          speed: 10
          width: 50

but the code is definitely not correct, firstly, I don’t have rgb , and secondly, there is no clk_pin on the tape. with this code, the tape flickers randomly, and not all of it, but in chunks.

esphome:
  name: esp32-s2-mini-test-2
  friendly_name: ESP32 S2 Mini TEST 2

esp32:
  board: lolin_s2_mini
  framework:
    type: arduino

logger:
api:
ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Esp32-S2-Mini-Test-2"
    password: "KpG1EYqqUUe8"

web_server:
  port: 80
  version: 3

captive_portal:

one_wire:
  - platform: gpio
    pin: GPIO03

light:
  - platform: esp32_rmt_led_strip
    rgb_order: GRB
    pin: 39
    num_leds: 40
    chipset: SM16703
    name: "My Light"

With this configuration, it works as a regular dimmable tape and not as a running tape.

esp32_rmt_led_strip is the correct one.

I don’t know what you mean with this.

Did you try effects?

effects:
      - addressable_scan:
      - addressable_scan:
          name: Scan Effect With Custom Values
          move_interval: 100ms
          scan_width: 1

example


light:
  - platform: fastled_clockless
    chipset: SM16703
    pin: 39
    num_leds: 40
    rgb_order: BRG
    name: "FastLED WS2811 Light"
    effects:
      - addressable_scan:
      - addressable_scan:
          name: Scan Effect With Custom Values
          move_interval: 100ms
          scan_width: 1

It 's much better now . But since I don’t have RGB, how do I make it so that it doesn’t display multicolor in HA, but regular monochrome. and the goal is to create a running stripe on the ceiling . There will be a ribbon in the ceiling , and when turned on , it will sort of run along its entire length and stay on , and when turned off , it will run back on and off . I’m translating the text with a translator, maybe the translation is clumsy))))

cannot be used in fastled_clockless

doesn’t matter. it’s not correct anyway.

Nothing comes to my mind how to make it appare monochromatic in ha.

esphome:
  name: esp32-s2-mini-test-2
  friendly_name: ESP32 S2 Mini TEST 2

esp32:
  board: lolin_s2_mini
  framework:
    type: arduino


globals:
  - id: button_pressed
    type: bool
    restore_value: no
    initial_value: "false"

logger:
api:
ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO37
      mode: INPUT_PULLUP
      inverted: true
    name: "Button"
    on_press:
      then:
        - globals.set:
            id: button_pressed
            value: "true"
        - light.turn_on:
            id: my_light
            effect: "Sequential RGB Fill"
    on_release:
      then:
        - globals.set:
            id: button_pressed
            value: "false"

light:
  - platform: esp32_rmt_led_strip
    rgb_order: GRB
    pin: GPIO39
    num_leds: 40
    chipset: SM16703
    name: "My Light"
    id: my_light
    restore_mode: ALWAYS_OFF
    effects:
      - addressable_lambda:
          name: "Sequential RGB Fill"
          update_interval: 16ms
          lambda: |-
            const float ms_per_led = 150.0f; 
            static uint32_t last_time = 0;
            static float total_progress_ms = 0;

            // Сброс при первом запуске эффекта
            if (initial_run) {
              last_time = millis();
            }
            
            uint32_t now = millis();
            uint32_t delta = now - last_time;
            last_time = now;

            // Читаем нашу глобальную переменную
            if (id(button_pressed)) {
              total_progress_ms += delta;
            } else {
              total_progress_ms -= delta;
            }

            // Ограничители
            float max_time = it.size() * ms_per_led;
            if (total_progress_ms > max_time) total_progress_ms = max_time;
            if (total_progress_ms < 0) total_progress_ms = 0;

            // Отрисовка
            for (int i = 0; i < it.size(); i++) {
              float led_start_time = i * ms_per_led;
              float led_progress = total_progress_ms - led_start_time;

              if (led_progress <= 0) {
                it[i] = Color::BLACK;
              } else if (led_progress >= ms_per_led) {
                it[i] = Color(255, 255, 255);
              } else {
                float phase = led_progress / (ms_per_led / 3.0f);
                if (phase < 1.0f) {
                  it[i] = Color(0, (uint8_t)(phase * 255), 0);
                } else if (phase < 2.0f) {
                  it[i] = Color((uint8_t)((phase - 1.0f) * 255), 255, 0);
                } else {
                  it[i] = Color(255, 255, (uint8_t)((phase - 2.0f) * 255));
                }
              }
            }

            // Если лента полностью погасла и кнопка не нажата - выключаем свет совсем
            if (!id(button_pressed) && total_progress_ms <= 0) {
               auto call = id(my_light).turn_off();
               call.perform();
            }

with the help of 5 AI chats and time, we managed to get such a code . Worker. The lock button is used for the test, but the code works as it should. why is such a strange work with channels and colors used in the code? : since there is a chip in the tape that is used for rgb and in esphome, too, only work with rgb, and on the tape since it is monochrome (1 block (1 chip and diodes connected to it))There are 5 diodes connected, supposedly this is green, the next 5 are like red and 5 are supposedly blue. and for smoothness , it was necessary not only to ignite the blocks , there are 40 of them here and 15 diodes in each block , but as if each block also had 5 diodes in series inside …

( с помощью 5 чатов ИИ и времени удалось получить такой код . Рабочий . для теста используется кнопка с фиксацией , но код работает как нужно . почему такая странная работа с каналами и цвета используется в коде : так как в ленте стоит чип который используется для rgb и в esphome тоже только работа с rgb , а на ленте так как она монохромная (1 блок (1 чип и диоды подключенные к нему ))подключено 5 диодов якобы это зеленый, следующие 5 как бы красный и 5 якобы синий . и для плавности нужно было не только разжигать блоки их тут 40 и в каждом блоке по 15 диодов , а как бы каждый блок так же дополнительно внутри последовательно по 5 диодов … )

So you managed to get monochromatic apparence in ha?

Unfortunately, it was not possible to solve the problem in HA in a normal way, I made a virtual ( 1 ) button and a physical ( 2 ) button, which triggers the effect of a smooth rise or fall of the tape filling with light .