logo elektroda
logo elektroda
X
logo elektroda

[LN882H] [WS2811] Teardown LSC Connect Smart Neon LED Strip 3m (3200654)

jasperro 2052 17
ADVERTISEMENT
  • Helpful post
    #1 21281250
    jasperro
    Level 5  
    Hi there, I got a LSC Connect Smart Neon LED Strip 3m (Model 3200654) from Action.

    There are 36 addressable zones of 6 leds each = 216 leds total.
    LSC Smart Connect Smart Neon LED Strip 3m packagingPackaging of LSC Connect Smart Neon LED Strip 3m with instructions in multiple languages.Coiled white LED strip with power adapter and cables.

    I took the thing apart with a knife, destroying the casing a bit. The casing seems to be friction fitted, without clips. It should be possible to take the case apart by using some wide pulling pliers or a plastic pick.

    Looking inside, I found that it has an onboard LN882H chip, supported by OpenBK7231/OpenLN882H
    I referenced LN882H datasheet, pinout, WiFi modules (LN882HK, LN882HKx, LN882), Esphome/Tasmota style firmware and How to flash LN882H with open source Tasmota/Esphome style firmware - backup procedure included

    The led strip has white (one color) and also has addressable RGB with WS2811 (RGB order). This was not implemented in the app yet, so I wrote a small WIP driver for it based on the existing SM16703P driver and some test code from the LN882H sdk (jasperro/Openbk7231T_App#jasperroLN882H-WS2811). It has some built-in WS2811 DMA stuff.
    Close-up of the internal part of a circuit board with technical markings. Close-up of a printed circuit board with electronic components.

    Here is the thing showing a nice gradient. Using the DDP protocol with LedFX works as well.
    WS2811_SetRaw 1 0 00FF993DFC8D57F9816AF6757AF26A89EF6096EB56A2E74DADE344B8DF3CC2DA36CCD630D5D12CDECC2AE6C72AEEC22CF5BC2FFCB733FFB138FFAB3EFFA74EFFA55EFFA269FF9F73FF9D7AFF9A81FF9787FF948DFF9192FF8E97FF8B9DFF88A2FF84A8FF80AEFF7CB4FF77BBFF71C4FF6CCDFF6ED5FA70DC

    LED strip emitting a multicolored gradient coiled in spirals.

    You need to turn pin 11 (A11) on first if you want to turn the led strip on, then send PWM signal on pin 7 (A7) for white.
    To run the addressable WS2811 leds, pin A11 needs to be set to Input Off, and pin 6 (A6) can be used for WS2811 data. In this mode, pin 7 needs to be HIGH (Same as PWM 255).

    Instruction manual for GUI
    To control the led strip through the GUI is not fully straight-forward.
    For the control to work, enable Flag 3: [LED][Debug] Show raw PWM controller on WWW index instead of new LED RGB/CW/etc picker.

    To set white: Turn off "Toggle Light", Turn on "Toggle 52" (which turns on pin 11), Now channel 10 slider controls brightness of white leds.
    To set color: Turn off "Toggle 52", Turn channel 10 slider to full brightness (PWM 255), Turn on "Toggle Light". Now you can use the color selector, WS2811_SetRaw, DDP, etc.

    The device also has an IR receiver and remote, but I haven't gotten that to work yet.

    Configs and dumps
    Attached are the flashdumps of the stock firmware, and a OpenLN882H_App bin and OTA.bin

    Code: JSON
    Log in, to see the code
  • ADVERTISEMENT
  • #2 21281321
    divadiow
    Level 34  
    oh great work! It'd be good to see SPI LED support in the general release binary for LN882H
  • ADVERTISEMENT
  • Helpful post
    #3 21284784
    divadiow
    Level 34  
    Here is the bootlog from your firmware. Your backup attachment is double the expected size - containing the firmware code twice. This happened with an early version of LN882H_Flash_Dumper.py which didn't stop reading at 0x200000. A trimmed version is attached.

    Code: Text
    Log in, to see the code
  • Helpful post
    #4 21288189
    Pinni3
    Level 5  
    I was looking for this as they changed the chipset on these
    Was running ESPHome fine when it was a bk7231n chip.

    With open Bekken i'm not able to get it working.

    Is there something i am not getting right from your post ? or do i need to wait for more implementation of drivers ?

    For the IR Remote: RAW code mapped out for usage in ESPHome. Hope it helps ?

    
    binary_sensor:
      - platform: remote_receiver
        name: "ON_BUTTON"
        raw:
          code: [-9135, 4530, -572, 550, -598, 533, -591, 563, -596, 579, -568, 514, -638, 522, -598, 565, -574, 559, -561, 1713, -575, 1670, -590, 1647, -619, 1723, -539, 549, -560, 1696, -527, 1715, -556, 1686, -601, 1632, -592, 1704, -566, 548, -606, 527, -591, 564, -569, 557, -597, 574, -588, 529, -565, 571, -621, 606, -535, 1673, -570, 1669, -589, 1672, -591, 1664, -552, 1699, -559, 1704, -554]
      - platform: remote_receiver
        name: "OFF_BUTTON"
        raw:
          code: [-9138, 4519, -587, 559, -596, 562, -560, 566, -594, 562, -564, 559, -598, 521, -621, 559, -563, 560, -606, 1670, -558, 1658, -589, 1683, -593, 1689, -556, 563, -596, 1660, -585, 1661, -587, 1692, -554, 562, -593, 1691, -558, 562, -593, 561, -560, 561, -599, 553, -593, 562, -562, 559, -593, 1689, -557, 556, -594, 1686, -552, 1687, -591, 1660, -583, 1685, -563, 1690, -560, 1688, -564]
      - platform: remote_receiver
        name: "BRIGHT_UP_BUTTON"
        raw:
          code: [-9128, 4533, -591, 554, -572, 583, -568, 564, -585, 564, -558, 582, -580, 522, -592, 595, -540, 567, -612, 1654, -562, 1692, -594, 1653, -594, 1657, -594, 562, -560, 1661, -620, 1657, -560, 1711, -566, 531, -591, 596, -560, 560, -594, 564, -562, 529, -626, 560, -592, 562, -532, 594, -592, 1655, -558, 1761, -532, 1659, -586, 1695, -523, 1687, -587, 1655, -621, 1680, -529, 1728, -553]
      - platform: remote_receiver
        name: "BRIGHT_DOWN_BUTTON"
        raw:
          code: [-9146, 4531, -598, 544, -593, 563, -599, 556, -565, 531, -622, 529, -596, 536, -591, 564, -613, 546, -594, 1662, -555, 1691, -560, 1699, -555, 1718, -533, 597, -593, 1654, -593, 1662, -559, 1694, -593, 1690, -528, 593, -596, 562, -568, 557, -591, 535, -593, 565, -594, 563, -590, 535, -589, 531, -627, 1682, -537, 1685, -608, 1676, -558, 1655, -603, 1679, -566, 1666, -586, 1691, -562]
      - platform: remote_receiver
        name: "RED_BUTTON"
        raw:
          code: [-9154, 4505, -620, 535, -592, 537, -618, 565, -565, 561, -596, 565, -570, 529, -595, 537, -626, 531, -596, 1698, -526, 1692, -604, 1685, -563, 1665, -593, 533, -619, 1672, -559, 1720, -538, 1664, -564, 565, -597, 565, -597, 1678, -548, 596, -564, 565, -565, 568, -595, 531, -600, 564, -596, 1667, -558, 1697, -563, 563, -600, 1661, -563, 1671, -588, 1659, -595, 1708, -534, 1681, -598]
      - platform: remote_receiver
        name: "GREEN_BUTTON"
        raw:
          code: [ -9109, 4561, -565, 555, -562, 560, -645, 509, -597, 532, -597, 532, -596, 579, -583, 534, -597, 533, -596, 1704, -559, 1637, -629, 1681, -579, 1660, -570, 560, -596, 1662, -564, 1696, -556, 1697, -539, 1719, -533, 595, -595, 1669, -557, 564, -595, 564, -572, 557, -597, 536, -566, 596, -565, 572, -589, 1662, -564, 566, -602, 1689, -533, 1669, -593, 1692, -565, 1665, -557, 1721, -563]
      - platform: remote_receiver
        name: "BLUE_BUTTON"
        raw:
          code: [-9113, 4531, -577, 531, -622, 564, -561, 556, -595, 561, -563, 562, -597, 532, -620, 560, -562, 561, -595, 1660, -588, 1652, -560, 1721, -559, 1686, -564, 558, -594, 1686, -563, 1686, -558, 1683, -602, 527, -560, 1713, -562, 1693, -555, 562, -562, 591, -598, 558, -560, 530, -594, 594, -564, 1691, -552, 562, -560, 592, -571, 1677, -559, 1690, -588, 1688, -531, 1724, -556, 1682, -597]
      - platform: remote_receiver
        name: "WHITE_BUTTON"
        raw:
          code: [-9167, 4518, -570, 561, -563, 560, -618, 562, -622, 526, -561, 562, -589, 528, -623, 564, -559, 562, -590, 1749, -497, 1715, -566, 1657, -552, 1713, -555, 561, -598, 1699, -537, 1683, -592, 1681, -561, 1673, -565, 1679, -559, 1753, -521, 594, -526, 591, -561, 600, -550, 562, -591, 531, -622, 561, -595, 562, -556, 561, -591, 1683, -563, 1689, -545, 1688, -589, 1688, -554, 1687, -554]
      - platform: remote_receiver
        name: "ORANGE_BUTTON"
        raw:
          code: [-9150, 4520, -593, 532, -637, 525, -596, 539, -620, 534, -601, 562, -590, 533, -572, 556, -601, 615, -553, 1623, -593, 1675, -625, 1623, -597, 1706, -578, 540, -588, 1671, -585, 1671, -590, 1649, -607, 570, -559, 610, -555, 544, -584, 1666, -588, 531, -605, 555, -593, 557, -610, 561, -560, 1676, -697, 1556, -600, 1640, -612, 558, -564, 1676, -584, 1671, -596, 1655, -599, 1638, -618]
      - platform: remote_receiver
        name: "GREEN_M1_BUTTON"
        raw:
          code: [-9093, 4535, -579, 596, -562, 562, -569, 587, -534, 592, -562, 592, -563, 570, -556, 592, -562, 564, -564, 1723, -524, 1718, -563, 1695, -554, 1688, -563, 566, -559, 1687, -594, 1660, -590, 1688, -566, 1688, -557, 562, -593, 566, -563, 1686, -584, 562, -574, 524, -623, 692, -445, 562, -533, 591, -596, 1651, -593, 1702, -547, 532, -626, 1659, -599, 1617, -624, 1660, -586, 1687, -563]
      - platform: remote_receiver
        name: "BLUE_M1_BUTTON"
        raw:
          code: [-9094, 4537, -546, 597, -536, 566, -623, 564, -561, 564, -594, 533, -601, 563, -564, 562, -592, 532, -596, 1697, -561, 1693, -534, 1692, -563, 1699, -587, 564, -562, 1692, -567, 1687, -563, 1666, -599, 558, -594, 1653, -570, 560, -593, 1658, -597, 569, -557, 563, -594, 564, -563, 562, -600, 1649, -600, 567, -572, 1681, -531, 593, -563, 1697, -588, 1656, -594, 1632, -622, 1658, -600]
      - platform: remote_receiver
        name: "1_HOUR_TIMER_BUTTON"
        raw:
          code: [-9125, 4508, -590, 561, -593, 565, -564, 562, -594, 571, -558, 565, -593, 531, -595, 533, -598, 593, -562, 1692, -562, 1697, -526, 1694, -566, 1693, -593, 562, -563, 1699, -526, 1720, -545, 1712, -528, 1686, -600, 1684, -564, 565, -614, 1656, -543, 596, -563, 564, -599, 562, -529, 596, -593, 561, -564, 569, -587, 1660, -561, 593, -571, 1682, -569, 1696, -550, 1680, -564, 1692, -561]
      - platform: remote_receiver
        name: "YELLOW_BUTTON"
        raw:
          code: [-9150, 4521, -574, 563, -593, 562, -528, 594, -589, 530, -625, 562, -562, 530, -615, 540, -594, 562, -590, 1659, -586, 1681, -592, 1660, -553, 1712, -572, 615, -543, 1672, -555, 1691, -554, 1681, -592, 571, -552, 562, -591, 1683, -566, 1676, -593, 559, -531, 601, -585, 535, -609, 539, -593, 1717, -535, 1681, -556, 596, -532, 587, -582, 1658, -565, 1713, -558, 1686, -563, 1679, -560]
      - platform: remote_receiver
        name: "GREEN_M2_BUTTON"
        raw:
          code: [-9142, 4501, -618, 529, -594, 570, -589, 560, -532, 561, -624, 567, -568, 557, -592, 533, -595, 562, -590, 1635, -589, 1690, -568, 1655, -593, 1696, -559, 562, -595, 1658, -602, 1670, -577, 1660, -613, 1641, -589, 562, -563, 1690, -561, 1696, -558, 560, -561, 593, -564, 565, -566, 594, -560, 562, -595, 1658, -597, 530, -592, 531, -595, 1712, -541, 1686, -569, 1708, -574, 1657, -561]
      - platform: remote_receiver
        name: "PURPLE_BUTTON"
        raw:
          code: [-9101, 4557, -576, 562, -592, 536, -590, 558, -594, 529, -594, 561, -564, 595, -557, 561, -561, 595, -560, 1662, -617, 1652, -607, 1673, -524, 1684, -601, 553, -594, 1653, -562, 1692, -587, 1682, -602, 521, -564, 1715, -560, 1658, -616, 1651, -566, 590, -559, 566, -594, 531, -592, 567, -555, 1718, -532, 590, -601, 554, -562, 564, -593, 1657, -596, 1652, -592, 1691, -563, 1676, -561]
      - platform: remote_receiver
        name: "2_HOUR_TIMER_BUTTON"
        raw:
          code: [-9138, 4517, -574, 562, -595, 527, -618, 528, -596, 530, -601, 554, -590, 580, -543, 560, -592, 563, -587, 1654, -623, 1656, -584, 1650, -590, 1657, -619, 530, -590, 1689, -556, 1649, -625, 1659, -585, 1651, -596, 1645, -621, 1623, -630, 1645, -594, 559, -594, 535, -556, 592, -591, 532, -591, 563, -596, 528, -623, 524, -591, 562, -560, 1688, -587, 1655, -628, 1642, -593, 1661, -584]
      - platform: remote_receiver
        name: "MODE_BUTTON"
        raw:
          code: [-9125, 4509, -555, 672, -518, 527, -608, 546, -562, 561, -624, 531, -565, 561, -641, 528, -560, 555, -593, 1687, -601, 1672, -542, 1696, -555, 1707, -575, 565, -563, 1673, -574, 1655, -593, 1697, -586, 1656, -565, 563, -593, 563, -560, 564, -592, 1691, -558, 592, -563, 560, -562, 570, -557, 593, -562, 1690, -570, 1680, -563, 1724, -523, 596, -561, 1688, -571, 1684, -591, 1665, -572]
      - platform: remote_receiver
        name: "SPEED_MIN_BUTTON"
        raw:
          code: [-9153, 4533, -564, 563, -598, 535, -615, 565, -558, 563, -593, 563, -596, 562, -567, 559, -592, 564, -561, 1694, -587, 1657, -564, 1696, -584, 1659, -589, 570, -587, 1660, -569, 1680, -588, 1696, -557, 563, -596, 1624, -634, 550, -601, 529, -631, 1628, -587, 566, -605, 524, -595, 559, -653, 1604, -587, 584, -521, 1717, -560, 1664, -593, 563, -599, 1654, -586, 1699, -568, 1646, -591]
      - platform: remote_receiver
        name: "SPEED_PLUS_BUTTON"
        raw:
          code: [-9124, 4522, -572, 597, -528, 593, -562, 595, -532, 596, -566, 593, -563, 562, -594, 565, -534, 611, -547, 1666, -590, 1740, -517, 1691, -540, 1710, -566, 563, -564, 1693, -558, 1699, -555, 1693, -581, 543, -593, 568, -576, 548, -598, 563, -629, 1606, -559, 601, -556, 563, -594, 565, -576, 1686, -561, 1667, -594, 1662, -595, 1668, -584, 565, -565, 1664, -592, 1661, -596, 1670, -586]
      - platform: remote_receiver
        name: "NIGHT_SLEEP_BUTTON"
        raw:
          code: [-9117, 4606, -484, 584, -591, 530, -560, 596, -557, 560, -592, 563, -570, 600, -541, 589, -568, 557, -562, 1717, -530, 1732, -549, 1678, -594, 1654, -593, 530, -591, 1691, -583, 1652, -596, 1682, -558, 1686, -563, 1681, -590, 561, -561, 565, -590, 1685, -558, 567, -591, 559, -556, 564, -590, 560, -595, 566, -530, 1716, -559, 1683, -568, 558, -559, 1689, -587, 1691, -551, 1687, -587]
    
    


    Added after 2 [hours] 13 [minutes]:

    jasperro wrote:
    ut I haven't gotten that to work yet.

    jasperro wrote:
    This was not implemented in the app yet, so I wrote a small WIP driver for it based on the existing SM16703P driver and some test code from the LN882H sdk (jasperro/Openbk7231T_App#jasperroLN882H-WS2811). It has some built-in WS2811 DMA stuff.


    Ok, now i see and get it.
    Are they going to merge this change in the project ?
    Would be nice to have this up and running like the other one (BK chipset) I still have new one in the box (LN882H)
  • #6 21288870
    jasperro
    Level 5  
    >>21288189 The driver is still very much a work in progress. I still need to add single color support and change the way the pins work. The way the driver is now is very specific to this device only. I don't really know how to make it more generic (the only known WS2811 LN882H device is this one).

    >>21288596 It seems I used the wrong header file. I used ../hal/hal_gpio.h; it should be ../hal/hal_pins.h. Seems some other header includes are also wrong. I have made a pull request which should at least build in CI.

    I think when I make a PR on GitHub you can download a bin file from the CI pipeline. Otherwise, I will attach a OTA and non-OTA image.
  • #7 21289155
    Pinni3
    Level 5  
    jasperro wrote:
    Otherwise, I will attach a OTA and non-OTA image.

    TNX
  • ADVERTISEMENT
  • #8 21292990
    jasperro
    Level 5  
    @Pinni3 I have added my latest app bin files to the main post. Also an instruction manual when you get it flashed. Merging is something I am looking into. I still need to add documentation, maybe add pixelAnim driver support, and make the WS2811 data pin configurable. Should be enough to test it on your led strip though.

    @divadiow The reason it did not compile was because of missing declarations in OpenLN882H cmake configuration. I have made a fork with the needed changes here: github.com:jasperro/OpenLN882H#jasperroLN882H-WS2811 Could you run the pipeline on my PR again to see if that fixed it?
  • #9 21293021
    divadiow
    Level 34  
    i've re-opened my PR and updated those 6 files with changes. I think I've aligned myself with the latest for everything. Build run/failed.
  • ADVERTISEMENT
  • #10 21293031
    jasperro
    Level 5  
    >>21293021 I made changes in the .gitmodules file to point to my OpenLN882H. Why not just use my branch/PR directly?
  • #11 21293042
    divadiow
    Level 34  
    I am newish to GH. I've matched submodules file. Not sure if this is the solution. Only @p.kaczmarek2 can approve the builds from your PR.
  • #12 21293050
    jasperro
    Level 5  
    >>21293042 Ok, I understand. Only changing the .gitmodules file is not enough. The submodule also needs to be updated. I think you missed some other changes as well.
    The best way would be to git reset your own branch to my branch. With git cli:
    git remote add jasperro https://github.com/jasperro/OpenBK7231T_App.git
    git fetch jasperro
    git checkout LN882H_JASPERRO_SPI
    git reset --hard jasperro/jasperroLN882H-WS2811
    git push --force-with-lease
  • #13 21360222
    dekegels1
    Level 2  
    does anyone have this working properly with esphome and if so could they share their code?
    or does someone have it working with all colors on openbeken?
  • #14 21391408
    jasperro
    Level 5  
    >>21360222 ESPHome is not possible (at least for now), because libretiny doesn't have support for the LN882H chip.

    All colors work fine with my branch (works fine in Home Assistant as well by using MQTT HASS auto discovery), only switching between white/color is manual. I'm still using this LED strip and haven't had any problems.

    If you want the latest OTA/normal bin, I can post it if you don't want to build it yourself.
  • #15 21391425
    divadiow
    Level 34  
    should this be considered for general release?
  • #16 21391427
    dekegels1
    Level 2  
    Thanks for the reply,

    The latest OTA would be amazing.
    I haven't been able to figure out how to build it.
    Thanks
  • #18 21391542
    jasperro
    Level 5  
    >>21391425 Not yet. It works fine for me but openshwprojects still had some comments (the way I did the pin enum could break other configs, merging with SM16703P driver). See the PR for my reply: https://github.com/openshwprojects/OpenBK7231T_App/pull/1414. I applied some suggestions and now will await response.

    I also added PixelAnim support now (not fully implemented yet, shooting star does not work correctly). The commands are not WS2811 anymore but SM16703P (just like beken)

    The new OTA bin:
    OpenLN882H...02_OTA.bin Download (358.07 kB)

Topic summary

The discussion revolves around the LSC Connect Smart Neon LED Strip (Model 3200654) featuring an LN882H chip and WS2811 addressable RGB LEDs. Users share insights on disassembling the strip, firmware flashing, and compatibility issues with ESPHome and OpenBK7231/OpenLN882H. A bootlog analysis reveals issues with firmware size and driver implementation. Participants discuss ongoing development efforts to enhance driver support for the LN882H, including adding single color support and improving pin configurations. Some users report success with custom firmware builds, while others seek assistance with code for full RGB functionality. The conversation highlights the need for further driver development and community collaboration to achieve stable operation.
Summary generated by the language model.
ADVERTISEMENT