logo elektroda
logo elektroda
X
logo elektroda

OpenBeken for RGB Floor Lamp (SNDI-57, SNDI-58) by ? with BK7231N and WS2811

emarck 78 1
ADVERTISEMENT
  • Helpful post
    #1 21626633
    emarck
    Level 4  
    The RGB Floor Light (SNDI-57, SNDI-58) by ? has been available under the Ibaye brand name since around March 2022, for example at Amazon.com, Amazon.co.uk, Amazon.de and Amazon.sa. It is usually integrated into the smart home using the Smart Life app.

    OpenBeken for RGB Floor Lamp (SNDI-57, SNDI-58) by ? with BK7231N and WS2811

    Manufacturer?
    Model nameRGB Floor Light
    Model numberSNDI-57, SNDI-58
    PCB namePCB_399P1-V1.0
    PCB date2023-07-20


    Products

    Brand nameIbaye
    Product nameRGB Floor Light
    Product numberIB0002
    GTIN-13 (EAN-13)
    Article numberX001W3ZLWJ


    Principle of operation

    A microcontroller BK7231N by Beken is used directly on the circuit board, which connects to the Tuya cloud via Wi-Fi and controls the 60 in (≈ 152 cm) long light strip divided into four segments. The 32 addressable light sections each contain three RGBIC LEDs (WS2811) and can be operated either by the BLE remote control, app, or music via microphone.


    Firmware flashing

    In addition to local operation of the floor lamp via remote control and in music mode, it is also possible to disconnect from the Tuya cloud using CloudCutter. The required profile will be provided later.
    Of course, OpenBeken can also be flashed via the serial interface (GND, 3.3V, 1TX, 1RX).

    OpenBeken for RGB Floor Lamp (SNDI-57, SNDI-58) by ? with BK7231N and WS2811


    Firmware configuration

    OpenBeken template:
    {
      "vendor": "?",
      "bDetailed": "0",
      "name": "RGB Floor Light",
      "model": "SNDI-57, SNDI-58",
      "chip": "BK7231N",
      "board": "on PCB",
      "flags": "5120",
      "keywords": [
        "PCB_399P1-V1.0",
        "Ibaye",
        "IB0002",
        "X001W3ZLWJ",
        "Ambient",
        "LED",
        "RGBIC",
        "WS2811",
        "Buttons",
        "BLE Remote",
        "IR Receiver",
        "Microphone"
      ],
      "pins": {
        "7": "Btn_SmartLED;0",
        "16": "SM16703P_DIN;0",
        "24": "Btn_ScriptOnly;3",
        "26": "IRRecv;0",
        "28": "Btn_ScriptOnly;2"
      },
      "command": "",
      "image": "https://obrazki.elektroda.pl/7868373700_1754391831.jpg",
      "wiki": "https://www.elektroda.com/rtvforum/topic_YOUR_TOPIC.html"
    }

    Contents of the autoexec.bat file:
    // Enable DDP (Distributed Display Protocol) driver
    startDriver DDP
    
    // Enable addressable LED (WS2812B) driver
    startDriver SM16703P
    
    // Init LEDs
    SM16703P_Init 32 RGB // 32 LEDs in RGB (Red Green Blue) order
    
    // Enable NTP (Network Time Protocol) driver
    startDriver ntp
    
    // Config local NTP server IP address
    //ntp_setServer 192.168.1.1 // OpenWrt
    //ntp_setServer 192.168.10.1 // LibreCMC
    ntp_setServer 192.168.178.1 // Fritz!Box
    
    // Config local timezone
    //ntp_timeZoneOfs 1 // CET (Central European Time)
    ntp_timeZoneOfs 2 // CEST (Central European Summer Time)
    
    // Config location
    ntp_setLatlong 52.518611 13.408333 // Berlin, Germany
    
    // Enable animation driver
    startDriver PixelAnim
    
    // Add names to the buttons
    //setChannelLabel 1 "Power" 1
    setChannelLabel 2 "Mode" 1
    setChannelLabel 3 "Music 1
    
    // Config animations (0 = Rainbow Cycle, 1 = Fire, 2 = Shooting Star)
    setChannel 20 -1 // Initialize animation index
    setChannelLabel 20 "Animation Index"
    alias nextAnimation backlog addChannel 20 1 0 2 1; Anim $CH20 // Cycle animation index upwards
    alias previousAnimation backlog addChannel 20 -1 0 2 1; Anim $CH20 // Cycle animation index downwards
    setChannel 21 10 // Initialize animation speed
    setChannelLabel 0 "Animation Speed"
    alias adjustAnimationSpeed backlog addChannel 21 1 0 10 1; AnimSpeed $CH21 // Cycle animation speed
    
    // Config buttons
    SetButtonTimes 10 3 3
    addEventHandler OnClick 28 nextAnimation
    addEventHandler OnDblClick 28 previousAnimation
    addEventHandler OnHold 28 adjustAnimationSpeed
    
    // Config IR remote
    addEventHandler2 IR_NEC 0x0 0x45 led_enableAll 1 // On
    addEventHandler2 IR_NEC 0x0 0x47 led_enableAll 0 // Off
    addEventHandler2 IR_NEC 0x0 0x44 led_basecolor_rgb #FF0000 // Red
    addEventHandler2 IR_NEC 0x0 0x40 led_basecolor_rgb #00FF00 // Lime
    addEventHandler2 IR_NEC 0x0 0x43 led_basecolor_rgb #0000FF // Blue
    addEventHandler2 IR_NEC 0x0 0x7 led_basecolor_rgb #FF8000 // Some Orange
    addEventHandler2 IR_NEC 0x0 0x15 led_basecolor_rgb #00FF80 // Some SpringGreen
    addEventHandler2 IR_NEC 0x0 0x9 led_basecolor_rgb #00FFFF // Cyan
    addEventHandler2 IR_NEC 0x0 0x16 led_basecolor_rgb #FFFF00 // Yellow
    addEventHandler2 IR_NEC 0x0 0xD led_basecolor_rgb #FF00FF // Magenta
    addEventHandler2 IR_NEC 0x0 0x19 nextAnimation
    addEventHandler2 IR_NEC 0x0 0x18 led_basecolor_rgb #FFFFFF // White
    addEventHandler2 IR_NEC 0x0 0xC add_dimmer 20 // Brighter
    addEventHandler2 IR_NEC 0x0 0x5E add_dimmer -20 // Darker
    addEventHandler2 IR_NEC 0x0 0x8 backlog SM16703P_SetPixel 0 255 0 0; SM16703P_SetPixel 1 255 0 0; SM16703P_SetPixel 2 255 0 0; SM16703P_SetPixel 3 255 0 0; SM16703P_SetPixel 4 255 0 0; SM16703P_SetPixel 5 255 128 0; SM16703P_SetPixel 6 255 255 0; SM16703P_SetPixel 7 255 255 0; SM16703P_SetPixel 8 255 255 0; SM16703P_SetPixel 9 255 255 0; SM16703P_SetPixel 10 0 255 0; SM16703P_SetPixel 11 0 255 0; SM16703P_SetPixel 12 0 255 0; SM16703P_SetPixel 13 0 255 0; SM16703P_SetPixel 14 0 255 0; SM16703P_SetPixel 15 0 255 128; SM16703P_SetPixel 16 0 255 255; SM16703P_SetPixel 17 0 255 255; SM16703P_SetPixel 18 0 255 255; SM16703P_SetPixel 19 0 255 255; SM16703P_SetPixel 20 0 0 255; SM16703P_SetPixel 21 0 0 255; SM16703P_SetPixel 22 0 0 255; SM16703P_SetPixel 23 0 0 255; SM16703P_SetPixel 24 255 0 255; SM16703P_SetPixel 25 255 0 255; SM16703P_SetPixel 26 255 0 255; SM16703P_SetPixel 27 255 0 255; SM16703P_SetPixel 28 255 255 255; SM16703P_SetPixel 29 255 255 255; SM16703P_SetPixel 30 255 255 255; SM16703P_SetPixel 31 255 255 255; SM16703P_Start // 5 Red, 1 Some Orange, 4 Yellow, 5 Lime, 1 Some SpringGreen, 4 Cyan, 4 Blue, 4 Magenta, 4 White
    addEventHandler2 IR_NEC 0x0 0x1C backlog SM16703P_SetPixel 0 255 0 0; SM16703P_SetPixel 1 255 0 0; SM16703P_SetPixel 2 255 0 0; SM16703P_SetPixel 3 255 0 0; SM16703P_SetPixel 4 255 0 0; SM16703P_SetPixel 5 255 0 0; SM16703P_SetPixel 6 255 0 0; SM16703P_SetPixel 7 255 0 0; SM16703P_SetPixel 8 255 0 0; SM16703P_SetPixel 9 255 0 0; SM16703P_SetPixel 10 255 0 0; SM16703P_SetPixel 11 0 255 0; SM16703P_SetPixel 12 0 255 0; SM16703P_SetPixel 13 0 255 0; SM16703P_SetPixel 14 0 255 0; SM16703P_SetPixel 15 0 255 0; SM16703P_SetPixel 16 0 255 0; SM16703P_SetPixel 17 0 255 0; SM16703P_SetPixel 18 0 255 0; SM16703P_SetPixel 19 0 255 0; SM16703P_SetPixel 20 0 255 0; SM16703P_SetPixel 21 0 255 0; SM16703P_SetPixel 22 0 0 255; SM16703P_SetPixel 23 0 0 255; SM16703P_SetPixel 24 0 0 255; SM16703P_SetPixel 25 0 0 255; SM16703P_SetPixel 26 0 0 255; SM16703P_SetPixel 27 0 0 255; SM16703P_SetPixel 28 0 0 255; SM16703P_SetPixel 29 0 0 255; SM16703P_SetPixel 30 0 0 255; SM16703P_SetPixel 31 0 0 255; SM16703P_Start // 11 Red, 11 Lime, 10 Blue
    addEventHandler2 IR_NEC 0x0 0x5A backlog SM16703P_SetPixel 0 255 0 0; SM16703P_SetPixel 1 255 0 0; SM16703P_SetPixel 2 255 0 0; SM16703P_SetPixel 3 255 128 0; SM16703P_SetPixel 4 255 128 0; SM16703P_SetPixel 5 255 255 0; SM16703P_SetPixel 6 255 255 0; SM16703P_SetPixel 7 128 255 0; SM16703P_SetPixel 8 128 255 0; SM16703P_SetPixel 9 0 255 0; SM16703P_SetPixel 10 0 255 0; SM16703P_SetPixel 11 0 255 128; SM16703P_SetPixel 12 0 255 128; SM16703P_SetPixel 13 0 255 255; SM16703P_SetPixel 14 0 255 255; SM16703P_SetPixel 15 0 128 255; SM16703P_SetPixel 16 0 128 255; SM16703P_SetPixel 17 0 0 255; SM16703P_SetPixel 18 0 0 255; SM16703P_SetPixel 19 128 0 255; SM16703P_SetPixel 20 128 0 255; SM16703P_SetPixel 21 255 0 255; SM16703P_SetPixel 22 255 0 255; SM16703P_SetPixel 23 255 0 128; SM16703P_SetPixel 24 255 0 128; SM16703P_SetPixel 25 255 0 128; SM16703P_SetPixel 26 0 255 128; SM16703P_SetPixel 27 0 255 128; SM16703P_SetPixel 28 255 255 255; SM16703P_SetPixel 29 255 255 255; SM16703P_SetPixel 30 255 128 0; SM16703P_SetPixel 31 255 128 0; SM16703P_Start // 3 Red, 2 Some Orange, 2 Yellow, 2 Some Chartreuse, 2 Lime, 2 Some SpringGreen, 2 Cyan, 2 Some Azure, 2 Blue, 2 Some Violet, 2 Magenta, 3 Rose, 2 Some SpringGreen, 2 White, 2 Some Orange
    
    // Time values available
    waitFor NTPState 1


    Firmware explaination

    Although this firmware configuration attempts to replicate the original functionality as closely as possible, this is hardly possible due to various factors. Firstly, the microphone on P23 is not currently supported by OpenBeken and will be added in the future. Secondly, the included remote control does not use Infrared (IR) as usual, but Bluetooth Low Energy (BLE), and the LED is just added as a function indicator:

    ManufacturerShenzhen Langxun Intelligence Control Technology Co., Ltd
    Brand nameLang Xun Zhi Kong (LXZK)
    Model name?24Key Remote Control?
    Model number?
    PCB nameLXZK-BT3024-2.4G V4.0
    Chip3-D12E42-J2M
    HousingLXZK-2024


    Does anyone have more information about this remote control, the chip it uses, and how to use Bluetooth with OpenBeken?
    I was able to find similar remote controls here (LXZK-TX2029-2.4G-E-VER2.0 with 3-D0TG15-J2M) and here (LXZK-TX1044T-V3.0).
    Could the chip possibly be a Y62G by Yufan Micro?

    The PCB already has the necessary preparations for an IR receiver, so that after a minor modification, an IR receiver (e.g. TSOP38238) can easily be added:

    Ibaye RGB floor lamp, model SNDI-57/SNDI-58, with colorful blinking LED lights.

    I use the remaining remote control from my second RGB Light Bar and have adjusted the autoexec.bat accordingly.
  • ADVERTISEMENT
  • #2 21627479
    p.kaczmarek2
    Moderator Smart Home
    Thank you for yet another LED presentation! Would you have time to share the effects, again?

    Hmmm, you didn't show us the remote, did you? Well, if remote is using Bluetooth, then it's still on our TODO list...
    Helpful post? Buy me a coffee.
ADVERTISEMENT