logo elektroda
logo elektroda
X
logo elektroda

Flashing OpenBeken on BK7238 Module (WB43-M5 V1.1) with Surplife App

Jinaria 6960 47
Best answers

How can I flash OpenBeken onto a BK7238 WB43-M5 V1.1 bulb module used with the Surplife app?

Use Easy Flasher or BKFIL to write the BK7238 OpenBeken build; in Easy Flasher, place `OpenBK7238_QIO__beken_sdk_f866976df64b.bin` in the firmwares folder, rename it to `OpenBK7231N_QIO__beken_sdk_f866976df64b.bin`, enable advanced options, and select `skip key check` [#21376381] On this WB43-M5 / SurpLife bulb, flashing the QIO image to `0x0` did not boot for one tester, but restoring the original firmware and then flashing `OpenBK7238__beken_sdk_f866976df64b.rbl.bin` from `0x132000` made the AP broadcast [#21376560] If the device still fails to boot, the earlier boot issue was traced to using standard Tuya encryption keys instead of no encryption [#21438385] The current BK7238 builds are still experimental, and at least SPIDMA was reported as not working yet [#21438394]
Generated by the language model.
ADVERTISEMENT
  • #31 21440706
    taggbricka
    Level 7  
    Posts: 48
    Help: 1
    Rate: 4
    >>> Looks like a random crash? What does the reboot reason say?

    It crashes in the same manner every time. Never connects to wifi.
    I have to power cycle to get something on debug for a few seconds.
  • ADVERTISEMENT
  • #32 21633322
    diepeterpan
    Level 8  
    Posts: 22
    Rate: 3
    >>21376434

    I bought two of these exact bulbs with a BK7238 Module (WB43-M5 V1.1) with Surplife App and were able to flash it using the following pin layout, see image below.

    Sorry for the small font indicating RX, TX, 3V3 and GND.

    WB43-M5 V1.1 module with labeled RX, TX, 3V3, and GND pins on a white PCB

    Pin layout for RGB driver; was working and then stopped, maybe I have the wrong pins?

    "pins": {
    "24": "BP5758D_CLK;0",
    "26": "BP5758D_DAT;0"
    },
  • #33 21633362
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14584
    Help: 654
    Rate: 12607
    Hey, that's a nice finding! Do you have original firmware dump?

    Also, can you elaborate, what do you mean by "stopped working"? You mean it stopped after OTA or when? Was it working fully correctly, or did you just get random colors once? Because you know, if you have chosen wrong I2C LED driver, you might have gotten a random color once or twice, without it working fully.
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #34 21633369
    diepeterpan
    Level 8  
    Posts: 22
    Rate: 3
    >>21633362

    The light stopped turning on and off, can't change the color, like the pins are wrong. It was working correctly, could change the color and brightness and then no response after a while, I rebooted but light would not come on, I am concerned that wrong pins could have broken the BP5758 chip. I reset to factory settings in OpenBeken, reconfigured WiFi, then select the BP5758 driver CLK and DAT, reboot, but no light comes on. Am a bit confused.

    I do have a backup of the original firmware.
  • #35 21633375
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14584
    Help: 654
    Rate: 12607
    Well, since you're saying you reconfigured it from 0, it seems there are not much options... or are there? Can you power it off fully, wait, and power it on again?

    Was it super bright before it broke?
    Helpful post? Buy me a coffee.
  • #36 21633379
    diepeterpan
    Level 8  
    Posts: 22
    Rate: 3
    >>21633375

    Yes it was bright, I was so convinced I have the config correct. I have tried power off and on. I will try more configurations. As long as the BP5758 is fine. Thanks for trying to help.
  • #37 21633387
    divadiow
    Level 38  
    Posts: 5031
    Help: 438
    Rate: 891
    I hope your BP5758 isn't burnt out.

    If you have the same device as original post then what looks like power levels in the factory boot log can be seen

    Code: Text
    Log in, to see the code


    To mimic this would need to have been set with command

    Code: Text
    Log in, to see the code

    BP5758D_Current [MaxCurrentRGB][MaxCurrentCW]
  • #38 21633392
    diepeterpan
    Level 8  
    Posts: 22
    Rate: 3
    >>21633387

    Damn, that might just be it. What a pity if I fried the BP5758 :-( I tried the command, but sadly it's still dead Jim :-(
  • ADVERTISEMENT
  • #39 21633397
    divadiow
    Level 38  
    Posts: 5031
    Help: 438
    Rate: 891
    :(

    could flash your backup back to be 100% sure I guess

    Added after 15 [minutes]:

    was it bought from Ali Express? Could I trouble you for the exact product link if yes?

    thanks
  • #41 21633415
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14584
    Help: 654
    Rate: 12607
    Maybe a cold joint? Soldering issue?

    It seems we need to lower the default current, @divadiow
    Helpful post? Buy me a coffee.
  • #42 21633417
    divadiow
    Level 38  
    Posts: 5031
    Help: 438
    Rate: 891
    p.kaczmarek2 wrote:
    It seems we need to lower the default current, @divadiow


    yes. and/or if @max4elektroda channels/maps/current stuff ever got realised in config page in GUI then the starting current settings could be low. but lower defaults now would be quicker to do I assume

    ref: https://www.elektroda.com/rtvforum/topic4132298.html
  • #43 21633568
    max4elektroda
    Level 24  
    Posts: 754
    Help: 48
    Rate: 187
    @divadiow though I made some suggestions to alter pins, roles and channels page, current (in this context ;-)) is new to me.
  • #44 21633576
    divadiow
    Level 38  
    Posts: 5031
    Help: 438
    Rate: 891
    Letting my imagination run away with me! In my head I'd extended the idea to include settings fields for various drivers if chosen from the drop-down ;)
  • #45 21633598
    max4elektroda
    Level 24  
    Posts: 754
    Help: 48
    Rate: 187
    Feel free to draft the idea and I'll try to see, if/how this might be realized ...

    EDIT:
    I think this would need a "driver based" configuration page, like

    Add new "driver/role...", e.g. from a "select"
    BP5758D
    --> select Pins for CLK and Data
    --> select other settings like MaxCurrentRGB, MaxCurrentCW, ...

    I tried once to let copilot create such a page, but gave up after the 10th or so iteration, far from a usable result.
    Would probably needed to be coded by hand (or using better prompts ;-))
  • ADVERTISEMENT
  • #46 21633920
    diepeterpan
    Level 8  
    Posts: 22
    Rate: 3
    Weird news, I was able to flash back the backup firmware. I then paired it with the app on iOS, but the bulb did not want to turn on or anything, and I presumed it was fried.

    Then the app said there is a firmware upgrade for the bulb. I upgraded it, and the bulb then started to work, so nothing is fried.

    Now I don't know whether I want to try OpenBeken again; I might not be lucky a second time around.

    BTW, in HomeAssistant you can use the "Magic Home" plugin to use these lights with the original firmware - https://www.home-assistant.io/integrations/flux_led/

    Some more pictures of my bulb below, just a FYI.

    Close-up of smart bulb's internal PCB with colorful LEDs and microchips
    Close-up of a white PCB with Beken BK7231N chip and electronic components
    Close-up of an LED bulb circuit board with RGB LEDs and electronic components
    Close-up of WB3S Wi-Fi module and RGBWW LEDs on a smart bulb circuit board

    When I have time again to waste, I will try Flash again with OpenBeken.
  • #48 21635429
    diepeterpan
    Level 8  
    Posts: 22
    Rate: 3
    >>21635385

    I noticed that it is not 'Tuya' compatible. I was impressed by how stable OpenBeken was on it, just the BP5758D that I could not get working; maybe I did something wrong in trying to get it working. Anyway, here are pictures of the box.

    PS. Some information on the BP5758D - https://developer.tuya.com/en/docs/iot-device-dev/driver_i2c_bp5858d?id=Kb7bciwq50zfc


    WiFi+BLE smart bulb 10W, 800 lumens, product box with bulb illustration
    Side of RGB+CCT LED bulb box with technical specifications and energy label
    LED Smart Bulb box with English instructions for WiFi and Ble connection setup.
    Close-up of smart light packaging showing features and QR codes on black background.
    Black box side with white text Made in China

Topic summary

✨ Discussion revolves around flashing OpenBeken firmware onto light bulbs equipped with the BK7238 module (PCB Marking WB43-M5 V1.1). Users share experiences and methods for successfully dumping and flashing firmware, including the use of tools like Easy Flasher and BKFIL. Several users report issues with boot loops and connectivity after flashing, while others provide insights into the flashing process, including the importance of using the correct firmware size and addressing. The conversation highlights the ongoing development of the BK7238 firmware and the need for careful handling during the flashing process to avoid bricking the devices.
Generated by the language model.

FAQ

TL;DR: If you have a 2 MB Surplife BK7238 bulb and "QIO from 0x0" boot-loops, flash the original dump first, then write the .rbl OpenBeken image at 0x132000; one tester said, "then the AP broadcasts." This FAQ is for people moving a WB43-M5 V1.1 bulb from stock firmware to OpenBeken without losing recovery options. [#21376560]

Why it matters: These BK7238 bulbs can look successfully flashed yet still fail to boot, hide the AP, or stop driving the BP5758D unless you use the right image type, address, UART, and current settings.

Metoda Plik Adres flash Wynik w wątku
Bezpośredni flash QIO OpenBK7238_QIO...bin 0x0 brak startu lub pętla bootowania
Flash OTA-style OpenBK7238__...rbl.bin 0x132000 AP pojawia się i firmware startuje
Przywrócenie kopii fabrycznej pełny dump producenta cały flash urządzenie wraca do stanu wyjściowego

Kluczowy wniosek: Najważniejsza różnica nie dotyczy samego narzędzia, lecz formatu obrazu i adresu zapisu. W tym wątku działający scenariusz dla WB43-M5 V1.1 to zachowanie kopii fabrycznej oraz wgrywanie obrazu .rbl na 0x132000, a nie obrazu QIO od 0x0. [#21438266]

Quick Facts

  • Fabryczny dump żarówki miał 2 MB, a testowany eksperymentalny firmware miał około 1224 KB; sama różnica rozmiaru nie oznacza jeszcze błędu, ale była pierwszym sygnałem, że układ startuje inaczej niż pełny obraz producenta. [#21376434]
  • W logu fabrycznym widać 115200/2000000 jako sprawdzane szybkości UART oraz wersję firmware z datą buildu 20240425 i identyfikatorem 35_243_20240425_ZG-BK38-BP101. [#21375947]
  • Na module pokazano punkty RX, TX, CEN, 3.3V, GND na spodzie, co daje komplet do zasilenia i zczytania logu bez zgadywania podstawowych pinów serwisowych. [#21376511]
  • Jeden z testów wykazał pobór około 4 mA po błędnym flashu, podczas gdy działające sztuki pobierały około 35 mA po starcie; to praktyczny wskaźnik, czy firmware faktycznie ruszył. [#21438048]
  • Dla tej żarówki log fabryczny podał ustawienie sterownika LED rgbwc_ele 8 8 8 30 30, a w OpenBeken zasugerowano komendę BP5758D_Current 8 30, aby odwzorować prądy RGB i CW bliżej ustawień producenta. [#21633387]

How do I flash OpenBeken on a BK7238 bulb with a WB43-M5 V1.1 module from the Surplife app ecosystem?

Use the stock dump as your safety net, then install OpenBeken with the OTA-style image path that worked in this thread. 1. Read and save the full factory flash first. 2. Restore that original image if needed, then write OpenBK7238__...rbl.bin at 0x132000. 3. Reboot and look for the OpenBeken AP before changing Wi‑Fi or LED settings. This exact flow brought up the AP on the Surplife BulbD46D with BP5758D after direct QIO flashing failed. [#21376560]

What is the correct way to use Easy Flasher or BKFIL for BK7238 when ltchiptool can dump flash and ROM but cannot write them back?

Use Easy Flasher or BKFIL for writing, because ltchiptool in this case only handled reading. In Easy Flasher, place the BK7238 test firmware in the firmwares folder, rename it to the expected BK7231N-style filename, enable advanced options, and select skip key check. BKFIL was also used successfully for writing both the factory dump and the .rbl image. The key point is that BK7238 support was still experimental, so write support depended on these specific tools and file naming workarounds. [#21376381]

Why does a BK7238 module boot loop after flashing the OpenBK7238 QIO image from address 0x0?

It boot-loops because the direct QIO image at 0x0 was the failing path in this thread. One boot log repeatedly showed go os_addr(0x10000) and restarted instead of reaching a working AP. Later testing confirmed that flashing QIO directly could fail to boot, while the .rbl image flashed from 0x132000 worked. A later fix also identified one boot issue as wrong encryption handling during build, which broke QIO boot until corrected. [#21438385]

What firmware file and flash address worked for getting OpenBeken running on the Surplife BulbD46D with BP5758D?

The working combination was OpenBK7238__beken_sdk_f866976df64b.rbl.bin flashed at address 0x132000. The tester first restored the original full firmware image, then wrote the .rbl file from that offset. He reported that if you opened the COM port fast enough, you could catch the end of OTA activity, and after that the OpenBeken AP started broadcasting. That is the clearest successful recipe shown for this exact Surplife BulbD46D and BP5758D setup. [#21376560]

How can I capture the boot log from a BK7238 module, and which UART pins or baud rates should I check?

Capture the log over UART using the exposed service pins and check both standard and debug outputs. The module back pads were identified as RX, TX, CEN, 3.3V, GND, and a later note says OpenBeken logs to UART1 by default, so you may need P0 or P1 instead of the programming UART. In the early reverse-engineering log, the tester explicitly referenced 115200/2000000 baud checks. If one port stays silent, switch UART pins before assuming the firmware is dead. [#21438705]

What is BK7238, and how is it different from older modules like BL602 or BK7231N in smart bulbs?

BK7238 is the newer Beken Wi‑Fi module that started replacing older modules in the same bulb SKU. In this thread, the buyer had previously received bulbs with BL602, then got the same seller, same box, and same Surplife app ecosystem but with a BK7238 module marked WB43-M5 V1.1. Compared with BK7231N-era tools, BK7238 support was still labeled work in progress, so image format, flasher behavior, and boot methods differed enough to break simple one-click replacement workflows. [#21375936]

What is the BP5758D LED driver, and what settings in OpenBeken matter for RGB+CCT bulbs that use it?

"BP5758D is an LED driver IC that controls RGB+CCT channels over a two-wire interface, with configurable current levels that strongly affect brightness and safe operation." For this bulb, the factory log exposed BP5758D rgbwc_ele 8 8 8 30 30, and the suggested OpenBeken command was BP5758D_Current 8 30. CLK and DAT mapping also matter; later users tried GPIO 24 and 26. Wrong current or wrong pin mapping can leave the lamp dark even when Wi‑Fi still works. [#21633387]

Easy Flasher vs BKFIL for BK7238 flashing: which tool is better for reading, writing, and recovering these bulbs?

Neither was universally better; each solved a different stage. Easy Flasher was recommended for BK7238 read/write with a rename workaround and skip key check, while BKFIL was used successfully to write the original full image and then the working .rbl file at 0x132000. For recovery, BKFIL proved especially useful because it handled whole-image restoration cleanly in the successful test. If you need predictable rollback, keep BKFIL ready even if you start with Easy Flasher. [#21376381]

Why might the OpenBeken access point not appear after a seemingly successful flash on a BK7238 bulb?

The AP can stay hidden because the wrong image type or address was used even though flashing itself reported success. One user flashed successfully but saw no AP, then provided a log showing repeated early boot output instead of a full start. Another tester reproduced that direct QIO flashing from 0x0 gave no usable output, while restoring stock and flashing the .rbl image at 0x132000 made the AP appear. Success in the flasher does not guarantee a bootable runtime image on BK7238. [#21376560]

How do I restore the original firmware dump on a WB43-M5 V1.1 bulb if OpenBeken flashing fails or the light stops responding?

Write the saved factory dump back to the chip as a full-image restore. One tester explicitly reflashed the original firmware in its entirety before trying the .rbl OpenBeken path, and a later user restored backup firmware after BP5758D control stopped working. In that later case, the bulb still needed an app firmware upgrade before normal light control returned, which shows recovery may take two stages: flash restore first, vendor update second. Keep the original dump before any experiment. [#21633920]

What does the 'skip key check' option do in BK7231GUIFlashTool when flashing experimental BK7238 firmware?

In this thread, skip key check was the required Easy Flasher setting used to bypass key validation while loading experimental BK7238 firmware. The practical reason was simple: BK7238 support was not yet finalized, and strict checks blocked or complicated test flashing. The step was shown together with advanced options and the renamed firmware file workflow. It does not mean the image is guaranteed safe; the same post also warns that not everything may work and flashing remains at your own risk. [#21376381]

How should BP5758D current be configured in OpenBeken to match factory settings like 'rgbwc_ele 8 8 8 30 30' and avoid possible damage or non-working output?

Match the factory current as closely as possible, starting with BP5758D_Current 8 30. The factory boot log showed rgbwc_ele 8 8 8 30 30, and a later warning suggested that running with higher defaults may have contributed to the lamp becoming unresponsive. One tester feared the driver was burnt, but the device later recovered on stock firmware, so misconfiguration is a realistic failure mode. Start low, confirm output, and only then change channel mapping or brightness-related settings. [#21633387]

Why would a BK7238 bulb work in the OpenBeken web UI, accept Wi-Fi credentials, and then crash after the next power cycle?

That pattern points to a runtime crash after config is saved, not a pure flashing failure. One user reached 192.168.4.1, entered local Wi‑Fi credentials, still had a working UI, then after power cycling saw current drop from about 35 mA to 5 mA within 2 seconds and lost access. Separate posts showed BK7238 stability was still being fixed around OTA, flasher updates, and smaller firmware issues. So the likely trigger was a firmware-side crash during normal startup after config reload. [#21439906]

What does the .rbl OTA image mean on BK7238, and how is it different from flashing a QIO .bin directly?

In this thread, the .rbl image was the OTA-style payload that booted correctly when written at 0x132000, while the QIO .bin written from 0x0 was the failing direct-flash path. You do not need the internal packaging details to use it safely here; the operational difference is what matters. The tester even noted you could catch the tail end of OTA over serial, then see the AP start. For this bulb, .rbl was the working install format and QIO-at-zero was not. [#21376560]

Which GPIO pins were identified for the BK7238 NiceMCU and for the WB43-M5 V1.1 bulb, including RGB pins and BP5758D CLK/DAT mappings?

For the BK7238 NiceMCU test board, RGB LED pins were identified as P6, P24, and P26. For the WB43-M5 V1.1 bulb using BP5758D, a later user reported a working flash setup and tried BP5758D mappings of GPIO24 = CLK and GPIO26 = DAT. Service pads on the module back were labeled RX, TX, CEN, 3.3V, GND. Those values give you a concrete starting map, but the thread also shows that LED control can still fail if current settings are wrong. [#21633322]
Generated by the language model.
ADVERTISEMENT