logo elektroda
logo elektroda
X
logo elektroda

[BK7231N - CBU] BlissLights Sky Light Evolve Galaxy LED Laser Projector

Dawk323 2898 15
ADVERTISEMENT

  • Hello!

    This is my first time posting something like this so apologies in advance if I have incorrectly formatted something.

    [BK7231N - CBU] BlissLights Sky Light Evolve Galaxy LED Laser Projector

    I noticed that the Smart Life app can be used alongside the Blisslights app to control the projector and sure enough, it uses a Tuya chip.

    BK7231N - CBU

    The pins located to the right of the chip on the board allowed for easy flashing. I tried and failed to use a multimeter to figure out the pins so I just started turning off and on pins. It took a lot of guessing but I got as close as I could to something functional by pulling all I could from the Genio Galaxy Lamp setup. The LED works, though I am unsure how to set it up for RGBW. I set the channels as 0,1,2,4 though that may have messed up how the Genio config renders the controls. Laser works properly and brightness works. Motor can be controlled as well. Button on the USB cable works to turn everything off and on, though the LED on the remote no longer works. Only things missing are the individual motor control and toggles not working when restarted due to the speed and brightness setting defaulting to zero. Was not able to figure out Home Assistant integration.

    [BK7231N - CBU] BlissLights Sky Light Evolve Galaxy LED Laser Projector [BK7231N - CBU] BlissLights Sky Light Evolve Galaxy LED Laser Projector [BK7231N - CBU] BlissLights Sky Light Evolve Galaxy LED Laser Projector [BK7231N - CBU] BlissLights Sky Light Evolve Galaxy LED Laser Projector


    Here is the pinout I managed to work out with my limited experience but I'm sure there are things I am missing.

    {
      "vendor": "Tuya",
      "bDetailed": "0",
      "name": "Full Device Name Here",
      "model": "enter short model name here",
      "chip": "BK7231N",
      "board": "TODO",
      "flags": "2757771",
      "keywords": [
        "TODO",
        "TODO",
        "TODO"
      ],
      "pins": {
        "6": "PWM;0",
        "7": "PWM;6",
        "8": "PWM;7",
        "9": "PWM;4",
        "14": "Btn;5",
        "24": "PWM;2",
        "26": "PWM;1"
      },
      "command": "",
      "image": "https://obrazki.elektroda.pl/YOUR_IMAGE.jpg",
      "wiki": "https://www.elektroda.com/rtvforum/topic_YOUR_TOPIC.html"
    }


    I also added this to the autoexec.bat:

    startDriver PWMToggler
    toggler_channel0 7
    toggler_name0 Laser
    toggler_channel1 6
    toggler_name1 Motor
    // this will make disabling LED also disable both togglers (laser and motor)
    addEventHandler LEDState 0 backlog toggler_enable0 0; toggler_enable1 0; 
    // this will make enabling LED also enable both togglers (laser and motor)
    // Comment out if you don't want it!
    addEventHandler LEDState 1 backlog toggler_enable0 1; toggler_enable1 1; 


    [BK7231N - CBU] BlissLights Sky Light Evolve Galaxy LED Laser Projector

    I have the original firmware backed up in case it is needed. Hope this helps!

    Cool? Ranking DIY
    About Author
    Dawk323
    Level 6  
    Offline 
    Dawk323 wrote 6 posts with rating 4, helped 2 times. Been with us since 2023 year.
  • ADVERTISEMENT
  • #2 20620305
    p.kaczmarek2
    Moderator Smart Home
    Thank you for posting this review! I am always happy to see new custom devices and so far we've only had one "laser projector" lamp on Elektroda:
    https://www.elektroda.com/rtvforum/topic3939064.html

    When you are trying to figure out pins and want to check them one by one, you should use our GPIODoctor: https://www.elektroda.com/rtvforum/topic3976371.html

    We can also try to extract GPIO from original firmware, can you attach dump file?

    Home Assistant integration for custom devices most likely will have to be done by hand, by writing YAML code for configuration.yaml.

    So you want to set some kind of default start value for speed and motor controls after reboot? Maybe we can figure that out by putting some kind of command in short startup command field, hmm...
    Helpful post? Buy me a coffee.
  • #4 20621333
    p.kaczmarek2
    Moderator Smart Home

    It seems there is no GPIO data in this binary. This device must be using a custom firmware build, which makes sense, considering all those non-standard features. So it's just not possible to extract GPIO data for this device in that way. The only thing I've found is their AP name: SL-BLISS.
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #6 20621499
    p.kaczmarek2
    Moderator Smart Home

    TuyaMCU analyzer is only for TuyaMCU devices, the devices where you have a WiFi module with a separate MCU on the board. Your device is WiFi module only, so there is nothing to analyze in that way.

    Okay, can you tell me more about this issue?
    Quote:

    Only things missing are the individual motor control and toggles not working when restarted due to the speed and brightness setting defaulting to zero

    You mean those two values are defaulted to zero?
    
    toggler_channel0 7
    toggler_name0 Laser
    toggler_channel1 6
    toggler_name1 Motor
    

    The values of toggler 0 and 1 slot?

    Then you can try adding something like that to autoexec.bat:

    
    // set value of slot 0 (without space)
    toggler_set0 50
    // set state of slot 0 (without space)
    toggler_enable0 1
    

    Helpful post? Buy me a coffee.
  • #7 20644449
    Dawk323
    Level 6  
    Apologies for the late reply. Those 2 values worked to start the motor and led with a decent value! I picked this back up to see if I could get the home assistant integration working. The biggest issue seems to be the fact that the channels are all represented differently as pwm.

    How would one go about setting up the mqtt topics to be RGBW vs single controllable channels? Beyond HA it would be nice to have a color picker in the web page itself if there is a setting for that.
  • #8 21040805
    helge1
    Level 4  
    Hi,

    I just received this projector today and found this thread. Have maybe made any progress with this in the meantime?

    Thanks!
    Helge
  • #9 21040942
    divadiow
    Level 34  
    Dawk323 wrote:
    I will put the firmware dump


    using that dump here's some bits extracted bits for the public record

    Tuya API response

    Code: JSON
    Log in, to see the code


    bin data

    Code: JSON
    Log in, to see the code


    the same GPIOs are in use on this similar device https://www.elektroda.com/rtvforum/topic4021966.html

    Added after 8 [minutes]:

    template add https://github.com/OpenBekenIOT/webapp/commit/6e8ab382203a3cbe449f829a518a8ab31ac0e7af
  • ADVERTISEMENT
  • #10 21041796
    helge1
    Level 4  
    Wow this is amazing, thank you so much!! Do I understand this right that the device should then also soon show up in this database: https://openbekeniot.github.io/webapp/devicesList.html ? Both the SK26 and the Blisslight Sky Lite Evolve Galaxy are great additions since they both have the rarely available blue laser light.
  • ADVERTISEMENT
  • #11 21041888
    divadiow
    Level 34  
    helge1 wrote:
    Wow this is amazing, thank you so much!


    well. same pins in use, other template looks slightly different.

    helge1 wrote:
    Do I understand this right that the device should then also soon show up in this database


    yes, if/when admin approves PR

    Added after 24 [minutes]:

    Differences between the two devices.

    Tuya API response comparison:

    Code: Text
    Log in, to see the code


    Storage area in bin dump comparison:

    Code: Text
    Log in, to see the code


    maybe of no use, but interesting nonetheless.
  • #12 21061830
    helge1
    Level 4  
    Quick update for everyone who is maybe also interested in using ESPHome for this Tuya MCU: I flashed this configuration https://github.com/M4GNV5/esphome-SK20-Nebula-Light which was developed for an BK7231T based projector (https://www.elektroda.com/rtvforum/topic3939064.html) without making any adjustments to the config. Surprisingly it already provides some working functionality of the projector, nevertheless it will need some config adjustments to provide a fully working user experience. I will work on this some time later and then share an updated config.
  • #13 21062703
    Dawk323
    Level 6  
    Hello! Sorry to have missed your responses. I recently tried to use esphome and managed to get a relatively close approximation based on another galaxy lamp. I will add the yaml here. I hope it helps!

    
    
    esphome:
      name: "galaxy-lamp"
      friendly_name: Galaxy Evolve
    
    globals:
      - id: dim
        type: bool
        restore_value: no
        initial_value: 'false'
    
    bk72xx:
      board: cbu
      framework:
        version: dev
    
    # Enable logging
    logger:
    
    # Enable Home Assistant API
    api:
      encryption:
        key: "*******************************"
    
    ota:
      password: "******************************"
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
      # Enable fallback hotspot (captive portal) in case wifi connection fails
      ap:
        ssid: "Galaxy-Evolve"
        password: "*****************"
    
    captive_portal:
    
    text_sensor:
      - platform: libretiny
        version:
          name: LibreTiny Version
    
    light:
      - platform: rgbw
        name: rgb Light
        icon: mdi:star-shooting
        id: rgbw_light
        red: red
        green: green
        blue: blue
        white: white
        restore_mode: RESTORE_DEFAULT_OFF
        default_transition_length: 2s
        effects:
          - random:
              name: Random
              transition_length: 5s
              update_interval: 5s
          - random:
              name: Random Slow
              transition_length: 10s
              update_interval: 5s
    
      - platform: monochromatic
        name: Star Laser
        icon: mdi:laser-pointer
        id: laser
        output: laser_pwm
        restore_mode: ALWAYS_OFF
        default_transition_length: 3s
    
      - platform: status_led
        name: Star Status Led
        icon: mdi:led-outline
        entity_category: diagnostic
        id: star_status_led
        pin: GPIO0
        internal: true
    
    fan:
      platform: speed
      name: Star Motor
      icon: mdi:play-speed
      id: motor
      output: motor_pwm
      restore_mode: ALWAYS_OFF
    
    output:
      - platform: libretiny_pwm
        id: red
        pin: GPIO6
        inverted: false
    
      - platform: libretiny_pwm
        id: green
        pin: GPIO26
        inverted: false
    
      - platform: libretiny_pwm
        id: blue
        pin: GPIO24
        inverted: false
    
      - platform: libretiny_pwm
        id: white
        pin: GPIO9
        inverted: false
    
      - platform: libretiny_pwm
        id: laser_pwm
        pin: GPIO8
        inverted: false
    
      - platform: libretiny_pwm
        id: motor_pwm
        pin: GPIO7
        min_power: 15%
    
    binary_sensor:
      - platform: gpio
        pin:
          number: GPIO14
          mode: INPUT_PULLDOWN_16
          inverted: false
        name: Star Button
        id: star_button
        on_multi_click:
        # single click
        - timing:
              - ON for at most 1s
              - OFF for at least 0.350s
          then:
            - light.toggle: rgbw_light
        # double click
        - timing:
              - ON for at most 1s
              - OFF for at most 0.35s
              - ON for at most 1s
              - OFF for at least 0.35s
          then:
            - light.toggle: laser
        # hold
        on_press:
          then:
          - if:
              condition:
                  lambda: |-
                    return id(dim);
              then:
              - delay: 0.1s
              - while:
                  condition:
                    binary_sensor.is_on: star_button
                  then:
                    - light.dim_relative:
                        id: rgbw_light
                        relative_brightness: 5%
                    - delay: 0.1s
              - lambda: |-
                  id(dim) = (false);
              else:
              - delay: 0.1s
              - while:
                  condition:
                    binary_sensor.is_on: star_button
                  then:
                    - light.dim_relative:
                        id: rgbw_light
                        relative_brightness: 5%
                    - delay: 0.1s
              - lambda: |-
                  id(dim) = (true);
    
  • #14 21136263
    helge1
    Level 4  
    @Dawk323 Hi! Thank you so much for sharing your config! I tested it and it works really well, more than good enough for me at the moment to use the lamp from time to time in my smart home setup. The blue laser version combined with another galaxy projector using green laser is really cool and provides so many cool combination options. I guess it will be later this year or beginning of next year that I will find time to look into optimizing the ESPHome configs for the three different galaxy projectors that I have now in use. But as said before, for now I'm really happy with how well they work already and how they add to the atmosphere at home. Thank you again!
  • #15 21155251
    walnutacetate
    Level 1  
    helge1 wrote:
    I flashed this configuration https://github.com/M4GNV5/esphome-SK20-Nebula-Light which was developed for an BK7231T based projector (https://www.elektroda.com/rtvforum/topic3939064.html) without making any adjustments to the config.


    @helge1 Do you mind if I ask whether this was with tuya-cloudcutter? Or another method? I have two of these devices showing main module version "1.1.0", but trying to use cloudcutter with the firmware for the SK20 only results in the error "The profile you selected did not result in a successful exploit".

    This is my first time trying to use cloudcutter and it's not clear to me what would have to happen next for this device's firmware to be added to the device supported list, assuming there is at least one version that has been successfully exploited. I've had a look at trying to flash esphome via UART and I think it might be beyond me for now. Appreciate any suggestions, TIA.
  • #16 21204590
    Dawk323
    Level 6  
    >>21155251

    I attempted cloudcutter but could not manage to find a working exploit. Honestly i would recommend buying a cheap usb flasher for this device at least, as the needed pins are exposed and can simply be pushed against to make the connection. It’s a bit fiddly but at least you only have to do it once.

Topic summary

The discussion revolves around the BlissLights Sky Light Evolve Galaxy LED Laser Projector, which utilizes a BK7231N chip and is compatible with the Smart Life app via Tuya integration. Users share experiences with flashing firmware, configuring GPIO pins, and integrating the device with Home Assistant. Challenges include setting up RGBW control and using the TuyaMCU analyzer, which is not applicable due to the device's architecture. A firmware dump was shared, revealing API details, and users discussed the potential for ESPHome integration. Some users reported success with configurations, while others faced difficulties with cloudcutter exploits and suggested using USB flashers for easier firmware access.
Summary generated by the language model.
ADVERTISEMENT