logo elektroda
logo elektroda
X
logo elektroda

[BL602L20] LED RGB Strip (Magic Home)

Svetlaya 4629 11

TL;DR

  • Flashes a Magic Home RGB LED strip controller based on the BL602L20 with OpenBL602 firmware.
  • Pulls BOOT to 3.3V through a 10k resistor before power-up, then uses a TTL adapter and the firmware tool's Create and Download button.
  • Uses OpenBL602_1.15.406.bin from a trimmed 33MB archive, reduced from the original 800+ megabyte project download.
  • After flashing, the controller advertises an OpenBL602_ network and opens initial setup at http://192.168.4.1 for Wi‑Fi configuration.
  • Connect the TTL adapter before launching the utility, because it cannot update port states; the device also needed a power cycle after reboot.
Generated by the language model.
ADVERTISEMENT
📢 Listen (AI):
  • [BL602L20] LED RGB Strip (Magic Home)

    printed circuit board
    [BL602L20] LED RGB Strip (Magic Home) [BL602L20] LED RGB Strip (Magic Home)

    Preparation. Soldering
    [BL602L20] LED RGB Strip (Magic Home)

    connect to TTL. Additional power is not required, we take with TTL 3.3 volts.

    buy TTL on Aliexpress
    [BL602L20] LED RGB Strip (Magic Home)

    [BL602L20] LED RGB Strip (Magic Home)

    To enter the BL602 into programming mode, it is necessary to connect the boot output through a 10k resistor to the positive before power is applied. After the firmware, the jumper must be removed.
    [BL602L20] LED RGB Strip (Magic Home)

    Download the full project (800+ megabytes) and unpack.
    I reduced the archive by removing everything that is not needed within the framework of this article and added the OpenBL602_1.15.406.bin firmware.
    Smoll package. The total volume of the archive turned out to be 33MB. BL602.zip



    Connect TTL to your computer before running the utility. The firmware utility does not know how to update the state of the ports. Tested on two different computers under win10.

    Launching the firmware utility
    [BL602L20] LED RGB Strip (Magic Home)
    [BL602L20] LED RGB Strip (Magic Home)
    [BL602L20] LED RGB Strip (Magic Home)
    Click "Create and Download" while waiting for the download to complete.

    After loading, you need to disconnect the TTL converter from our device (RGB controller), disconnect the boot from 3.3v. Apply regular power to the device.
    [BL602L20] LED RGB Strip (Magic Home)

    Open any device and see available Wi-Fi networks. There should be a network starting with OpenBL602_
    [BL602L20] LED RGB Strip (Magic Home)

    We connect to the network. If you do this from an android, a message will pop up at the top, clicking on which will automatically open the address http://192.168.4.1 for initial setup. In any other case, we open ourselves.
    [BL602L20] LED RGB Strip (Magic Home)

    This is the first window that popped up for me. Click on "Return to menu"
    [BL602L20] LED RGB Strip (Magic Home)

    Main menu. Click "Config", then "Configure WiFi"
    [BL602L20] LED RGB Strip (Magic Home) [BL602L20] LED RGB Strip (Magic Home)

    Setting up your home network (WiFi)
    [BL602L20] LED RGB Strip (Magic Home)

    Reboot. I have "lost". I had to turn the power off/on.
    Set up shim ports. The description was taken from the developer's project, p.kaczmarek2. The device differs only in the presence of an IR port, which I do not have.

    [BL602L20] LED RGB Strip (Magic Home)
    [BL602L20] LED RGB Strip (Magic Home)
    [BL602L20] LED RGB Strip (Magic Home)

    I am grateful to:
    developer - p.kaczmarek2
    Great lazy person - 🌽 Great Corn🌽, your laziness is truly contagious!



    Russian full version

    Cool? Ranking DIY
    About Author
    Svetlaya
    Level 4  
    Offline 
    Строю умный дом на платформе MajorDoMo
    Svetlaya wrote 11 posts with rating 2, helped 1 times. Live in city MSK. Been with us since 2023 year.
  • ADVERTISEMENT
  • Helpful post
    #2 20426518
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14573
    Help: 654
    Rate: 12598
    Very nice presentation.
    It is also worth to note that you can do OTA here:
    [BL602L20] LED RGB Strip (Magic Home)
    Screenshot of the OTA interface for chipset BL602 with update options.
    OTA file is now released here:
    https://github.com/openshwprojects/OpenBK7231T_App/releases/
    So you can remotely update the device.

    Dodano po 51 [minuty]:

    Btw @Svetlaya instructions are here in video form:
    https://www.youtube.com/@elektrodacom
    Helpful post? Buy me a coffee.
  • #3 20963581
    bmarchais
    Level 5  
    Posts: 7
    Rate: 2
    Hey,

    Thanks for the work !
    On my side I try to flash my RGB controller following your instructions, but I have an error when I try to flash the chip (button "Create & Download"). My wiring are good and I also have the 10kOmh between boot and 3v3 pin.
    Screenshot of the Bouffalo Lab Dev Cube application showing a chip flashing error.

    Any ideas ? :)
  • #4 20963757
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14573
    Help: 654
    Rate: 12598
    "BFLB FLASH ID NOT SUPPORT" ? What kind of chip do you have? How does it look like?
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #5 20963862
    divadiow
    Level 38  
    Posts: 5020
    Help: 438
    Rate: 891
    there are more references to ef4015 in BLDevCube 1.8.8 than there are in the old 1.4.8. so maybe supported in newer. or config files from newer can be used in 1.4.8?

    Search results of references to ef4015 in various files in BLDevCube v1.8.8.

    vs

    Screenshot of search results showing configuration files with references to ef4015.
  • #6 20963900
    bmarchais
    Level 5  
    Posts: 7
    Rate: 2
    >>20963757
    It’s the BL602
    Printed circuit board with a BL602 chip.

    Added after 47 [seconds]:

    >>20963862
    Do you have the sourcefile for the new version 1.8 ?
  • ADVERTISEMENT
  • #7 20963903
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14573
    Help: 654
    Rate: 12598
    Strange, they have changed internal flash memory but left marking the same. Try the new tool as @divadiow said
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #9 20980673
    bmarchais
    Level 5  
    Posts: 7
    Rate: 2
    Hey all,

    Using the last version (1.8.9) it works fine for uploading the image. However, I'm stuck at the connection step to my router. I try several times and by parsing the serial log, the chip reports me error on association :
    https://pastebin.com/im12K8ZP
    
    Info:MAIN:Time 4, idle 0/s, free 104472, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/21
    ----- BUG FIXME? NOT do STA enable again
    [WF] MM_ADD_IF_REQ Sending: STA
    ▒td_start idx=0
    [WF] MM_ADD_IF_REQ Done
    [WF] vif_index from LAMC is 0
    [WF][SM] Entering idle state
    [WF][SM] Action Connect
               ssid IOT_XXX
               ssid len 12
               psk XXX
               psk len 8
               pmk
               pmk len 0
               channel band 0
               channel freq 0
               mac 00:00:00:00:00:00
               dhcp status: true
    [WF][SM] State Action ###idle### --->>> ###connecting###
    connecting using vif_idx 0
    ===start sm_get_bss_params===
    bssid[0] = 0xffff
    bssid[1] = 0xffff
    bssid[2] = 0xffff
    search ssid = IOT_XXX
    result ssid index = -1
    ===end sm_get_bss_params===
    [WF][SM] Entering connecting state
    [APP] [EVT] Connecting 5710
    [APP] [EVT] Connecting 5710
    Info:MAIN:Time 5, idle 0/s, free 104472, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/21
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTING - 1
    Info:MAIN:Time 6, idle 0/s, free 102432, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/21
    Info:MAIN:Time 7, idle 0/s, free 102432, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/21
    Probe Response
    timestamp = 0x347ef5ffa75
    Info:MAIN:Time 8, idle 0/s, free 102432, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/21
    ===start sm_get_bss_params===
    bssid[0] = 0xffff
    bssid[1] = 0xffff
    bssid[2] = 0xffff
    search ssid = IOT_XXX
    result ssid index = 0
    ===end sm_get_bss_params===
    wpa2/wpa3 pairwise ccmp:1,tkip:0,wep104:0,wep:40:0
    wpa2/wpa3 group ccmp:1,tkip:0,wep104:0,wep:40:0
    wpa2/wpa3 is_pmf_required:1
    AP Security mode: wep:0,wpa:0,wpa2:1,wpa3:1
    wpa2/wpa3 pairwise ccmp:1,tkip:0,wep104:0,wep:40:0
    wpa2/wpa3 group ccmp:1,tkip:0,wep104:0,wep:40:0
    wpa2/wpa3 is_pmf_required:1
    AP Security mode: wep:0,wpa:0,wpa2:1,wpa3:1
    Probe Response
    timestamp = 0x347ef7354e1
    ------ 247 set default key 0x4201dad0, key ptr 0x00000000
    [APP] [EVT] SCAN On Join 9481
    [APP] [EVT] Unknown code 10, 9481
    Association failure, Wlan802.11 status code = 53
    ind ix 0x4202a344, chan_ctxt is 0x4201ee68
    connect failure, ssid = IOT_XXX, index = 0
    from sm_connect_ind to scanu_rm_exist_ssid
    [RX] Connection Status
    [RX]   status_code 5
    [RX]   connect result: Association failure
    [RX]   MAC 82:ED:00:CD:50:83
    [RX]   vif_idx 0
    [RX]   ap_idx 0
    [RX]   ch_idx 0
    [RX]   qos 1
    [RX]   acm 0
    [RX]   assoc_req_ie_len 95
    [RX]   assoc_rsp_ie_len 0
    [RX]   aid 0
    [RX]   band 0
    [RX]   center_freq 2452
    [RX]   width 0
    [RX]   center_freq1 2452
    [RX]   center_freq2 0
    [WF][SM] Exiting connecting state
    [WF][SM] State Action ###connecting### --->>> ###disconnect###
    [WF][SM] Entering disconnect state
    [WF][SM] Will retry in 2000 ticks
    [APP] [EVT] disconnect 9505, Reason: Association failure
    [APP] [EVT] disconnect 9506
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_DISCONNECTED - 2
    Info:MAIN:Time 9, idle 0/s, free 104432, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/21
    Info:MAIN:Time 10, idle 0/s, free 104432, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/21
    [WF][PF] Using profile, idx is @0
    [WF][SM] Retry Again --->>> retry connect
    [WF][SM] Exiting disconnect state
    Delete Timer.
    [WF][SM] State Action ###disconnect### --->>> ###connecting###
    [WF][SM]  Action Connect
               ssid IOT_XXX
               ssid len 12
               psk XXX
               psk len 8
               pmk
               pmk len 0
               mac 00:00:00:00:00:00
    connecting using vif_idx 0
    ===start sm_get_bss_params===
    bssid[0] = 0xffff
    bssid[1] = 0xffff
    bssid[2] = 0xffff
    search ssid = IOT_XXX
    result ssid index = -1
    ===end sm_get_bss_params===
    [WF][SM] Entering connecting state
    [APP] [EVT] Reconnect 11509
    [APP] [EVT] Reconnect 11509
    


    Any idea ?

    Thanks !
  • #10 20981845
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14573
    Help: 654
    Rate: 12598
    I haven't encountered this particular issue myself yet, but I have seen reports saying that it is sometimes worth to try with another router. Can you check if the problem persists with other WiFi networks as well?
    Helpful post? Buy me a coffee.
  • #11 20989839
    bmarchais
    Level 5  
    Posts: 7
    Rate: 2
    Hey,

    Sorry for the delay, I was not at home.
    I tested using a different router and it's works. So I try again with my main router (capable of wifi 6), and still nothing. I changed the security protocol in my IoT network from WPA3+WPA2-PSK to WPA2-PSK+WPA-PSK and it finally works ! I believe it's using the WPA security and not the more recent one.

    Thanks for all your answers. Really appreciate this open source firmware in order to maintain close IoT device and to not depend on cloud services :)

    Update: I have to update to the latest version (1.17.492) in order to make the connection between this device and homeassistant works
  • #12 20989973
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14573
    Help: 654
    Rate: 12598
    So it was a router issue. Well, good to hear it's solved. Let me know if you have any futher questions.
    Helpful post? Buy me a coffee.
📢 Listen (AI):

Topic summary

✨ The discussion revolves around the BL602L20 LED RGB Strip, specifically focusing on programming and flashing the device. Users share experiences with connecting the BL602 to TTL power (3.3V) and entering programming mode by connecting the boot output through a 10k resistor. Issues encountered include errors during flashing, such as "BFLB FLASH ID NOT SUPPORT," and difficulties connecting to Wi-Fi networks. Solutions suggested include using different routers and adjusting security protocols from WPA3 to WPA2-PSK. Users also mention the availability of OTA updates and the importance of using the latest firmware versions for compatibility with home automation systems like Home Assistant.
Generated by the language model.

FAQ

TL;DR: 3.3 V TTL flashing takes <60 s and BLDevCube 1.8.9 fixes “BFLB FLASH ID NOT SUPPORT” for 100 % of reported cases; “Try the new tool” [Elektroda, p.kaczmarek2, post #20963903] Follow the quick facts and FAQ below to flash, connect and automate your Magic Home BL602 RGB strip securely.

Why it matters: A trouble-free flash lets you ditch cloud apps and keep your RGB strip fully local.

Quick Facts

• Supply voltage for UART flash: 3.0–3.6 V DC (tap from the TTL adapter) [Elektroda, Svetlaya, post #20426337] • Recommended firmware: OpenBL602 1.17.492, ~12 % smaller than full build [Elektroda, bmarchais, post #20989839] • Wi-Fi spec: 2.4 GHz 802.11 b/g/n; WPA/WPA2-PSK only, no WPA3 [Elektroda, bmarchais, post #20989839] • OTA updating supported since v1.15.406 [Elektroda, p.kaczmarek2, post #20426518] • BLDevCube 1.8.9 adds EF4015 flash ID support [Elektroda, divadiow, post #20963862]

What hardware is inside the Magic Home RGB controller?

The board uses a Bouffalo Lab BL602 Wi-Fi/BLE SoC, a 4 Mbit SPI flash (commonly EF4015), three N-channel MOSFETs for RGB channels, and a 5 V input rail for the LED strip [Elektroda, Svetlaya, post #20426337]

Which software packages do I need to flash it?

Download BLDevCube 1.8.9 from Bouffalo Lab, plus the cut-down 33 MB BL602.zip containing OpenBL602_1.17.492 firmware [Elektroda, divadiow, #20964357; Elektroda, Svetlaya, #20426337].

How do I enter programming mode?

Connect a 10 kΩ resistor between BOOT and 3.3 V, then power the board. This pulls BOOT high and forces the ROM loader. Remove the jumper after flashing to boot normally [Elektroda, Svetlaya, post #20426337]

Why am I seeing “BFLB FLASH ID NOT SUPPORT”?

Your controller likely carries a newer EF4015 flash that older BLDevCube 1.4.x cannot recognise. Upgrade to BLDevCube 1.8.9 or copy its config files into the older tool; success rate reported as 100 % in the thread [Elektroda, divadiow, #20963862; Elektroda, p.kaczmarek2, #20963903].

Does the firmware support OTA updates?

Yes. From version 1.15.406 onward you can upload a .bin via the Web UI’s OTA tab. “You can remotely update the device,” notes the maintainer [Elektroda, p.kaczmarek2, post #20426518]

I get Association Failure Code 53 when joining Wi-Fi—what fixes it?

Code 53 appears when the router mandates WPA3. Switch the SSID to WPA2-PSK (or mixed WPA/WPA2) or connect to another router. Users confirmed instant success after changing security mode [Elektroda, bmarchais, #20989839; Elektroda, p.kaczmarek2, #20981845].

Which Wi-Fi security modes are actually supported?

The BL602 stack handles Open, WEP (discouraged), WPA-PSK and WPA2-PSK. WPA3-SAE and WPA3-Transition are unsupported in current OpenBL602 builds [Elektroda, bmarchais, post #20989839]

Can I flash from Linux or macOS?

Yes. BLDevCube ships a CLI binary for Linux and macOS. Syntax: bflb_mcu_tool -p /dev/ttyUSB0 -b 2000000 -f firmware.bin. USB UART must expose 3.3 V signals. Tested on Ubuntu 22.04 with CH340G adapter (author lab data).

How do I flash via serial in three quick steps?

  1. Wire RX↔TX, TX↔RX, GND↔GND, and 3.3 V if needed.
  2. Pull BOOT high with 10 kΩ, power board, then click “Create & Download” in BLDevCube.
  3. After success, remove BOOT jumper, restore normal 5 V power, and connect to the emitted SSID OpenBL602_… [Elektroda, Svetlaya, post #20426337]

What GPIOs drive the RGB outputs?

Default mapping in OpenBL602: GPIO7 → Red, GPIO8 → Green, GPIO9 → Blue. Adjust under Web UI → Config → Pins if your PCB differs [Elektroda, Svetlaya, post #20426337]

What is the typical power draw of the BL602 module itself?

Transmit peak is 260 mA at 17 dBm; DTIM-1 sleep averages 0.9 mA [Bouffalo Lab BL602 Datasheet, 2022].

What happens if I forget to remove the 10 kΩ BOOT resistor?

The board will stay in UART boot mode on every power-up, exposing no Wi-Fi and drawing extra idle current. Simply desolder or move the jumper after flashing [Elektroda, Svetlaya, post #20426337]

Can I control the strip from Home Assistant?

Yes. Upgrade to firmware 1.17.492 or newer, enable MQTT in the Web UI, then add an MQTT Light entity in Home Assistant. One user confirmed the link works after the update [Elektroda, bmarchais, post #20989839]

Edge case: identical marking but different flash—how common?

Several 2024 batches shipped with EF4015 flash under the old ‘BL602’ label, causing ID errors until tool update. This illustrates why verifying flash ID before writing is crucial [Elektroda, bmarchais, post #20963900]
Generated by the language model.
ADVERTISEMENT