logo elektroda
logo elektroda
X
logo elektroda

TL;DR

  • Teardown of the Sonoff B05-BL-A60 smart bulb, chosen for its advertised API support and explicitly distinguished from the different B05-B-A60 variant.
  • Opening the bulb reveals a BP5758 LED driver on the LED plate, with the power supply and Wi‑Fi components underneath and easy access to 3.3V, Ground, TX, RX, and Boot pins.
  • Each bulb costs around 11€ and carries energy class F.
  • Flashing is described as feasible with online guides and SDK tools, but the current firmware does not yet support the BP5758, and the API is awkward for multiple devices because of different IDs.
Generated by the language model.
ADVERTISEMENT
📢 Listen (AI):
  • #31 21857492
    divadiow
    Level 38  
    Posts: 4859
    Help: 424
    Rate: 860
    did you backup original firmware before flashing?

    that 'single download option' should not be used with the release binary, it is for flashing back full bootable flash files/backups.

    If you can get Easy Flasher running in your OS (Mono?) then you can do the whole lot within Easy Flasher https://github.com/divadiow/BK7231GUIFlashTool
  • ADVERTISEMENT
  • #32 21857507
    defaliz
    Level 7  
    Posts: 19
    Rate: 1
    no, i've no backup, but i've others new bulb...
    i'm a little bit lost...
    with BL602 we don't use lab dev cube software ?
    i've try to flash bulb with easyguiflashtool but i've always problem to enter flash mode
    (i've allready flash lsc action plug whitout problem...)

    Added after 4 [minutes]:

    i've try with https://openshwprojects.github.io/EasyGUIFlashTool/
    and that's the logs "Unsupported operation: _newZLibInflateFilter" :

    [18:47:50] Opened file: OpenBL602_1.18.270.bin (776676 bytes)
    [18:47:50] Saved firmware: OpenBL602_1.18.270.bin
    [18:48:02] Port opened at 9600 baud.
    [18:48:08] === Sunday, 2026-03-08 ===
    [18:48:08] === Web, flasher built on 2026-02-24 15:47 #52 ===
    [18:48:08] === Starting Firmware Write on port ? ===
    [18:48:08] Platform: BL602
    [18:48:08] Firmware: OpenBL602_1.18.270.bin
    [18:48:08] Loading firmware: OpenBL602_1.18.270.bin ...
    [18:48:08] Firmware loaded: 776676 bytes
    [18:48:08] Now is: 2026-03-08 18:48:08.
    [18:48:08] Flasher mode: BL602
    [18:48:08] Going to open port.
    [18:48:08] Port ready!
    [18:48:08] Attempting DTR/RTS auto-reset into boot mode...
    [18:48:09] Sync attempt 0/1000
    [18:48:09] ... OK!
    [18:48:09] BootROM version: 1 (1)
    OTP flags:
    00000000 00000000 00000000 00000000
    00000011 00000000 00000000 00000000
    00111101 10011101 10000010 01001100
    10111001 01111100 00010111 00000000
    Chip type: BL602
    [18:48:09] Unsupported operation: _newZLibInflateFilter
    [18:48:09] Write operation finished.
  • ADVERTISEMENT
  • ADVERTISEMENT
  • #34 21857520
    defaliz
    Level 7  
    Posts: 19
    Rate: 1
    thank a lot !
    i'll try and back to give the result ....

    Added after 11 [minutes]:

    ok, i've installed mono on ubuntu 20.04
    and now the result ...
    the boot pin is high, what more can I do?

    Backup name has not been set, so output file will only contain flash type/date.
    Now is: Sunday, 08 March 2026 19:11:37.
    Flasher mode: BL602
    Going to open port: /dev/ttyUSB0.
    Port ready!
    Sync attempt 0/1000 ... failed, will retry!
    Sync attempt 1/1000 ... failed, will retry!
    If doing something immediately after another operation, it might not sync for about half a minute
    Otherwise, please pull high BOOT/IO8 and reset.
    Sync attempt 2/1000 ... failed, will retry!
    Sync attempt 3/1000 ... failed, will retry!
    Sync attempt 4/1000 ... failed, will retry!
    Sync attempt 5/1000 ... failed, will retry!
  • ADVERTISEMENT
  • #35 21857651
    divadiow
    Level 38  
    Posts: 4859
    Help: 424
    Rate: 860
    what baud? tried others?
  • #36 21857932
    defaliz
    Level 7  
    Posts: 19
    Rate: 1
    Many many thanks !
    with your screenshot i've sucessfully flashed sonoff B05-BL-A19 bulb with DevCube
    now all is working fine...
    have a good day !

    Added after 14 [minutes]:

    ok, again one thing to resolve...
    color are not OK, when i choose green on web i've blue on bulb, and all others colors are mixed...

    thank again
  • #37 21857957
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14416
    Help: 650
    Rate: 12371
    I think you'd benefit a lot from reading the full topic and guide. Look, I think this hint may help with swapped colors order:
    p.kaczmarek2 wrote:
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/commands.md LED_Map command
    Helpful post? Buy me a coffee.
  • #38 21858242
    defaliz
    Level 7  
    Posts: 19
    Rate: 1
    >>21857957 it's OK now,
    i've use this command BP5758D_Map 2 1 0 3 4
    last thing i've checked flag 12 but light don't keep brightness or color when reboot

    regards

    Added after 45 [minutes]:

    it's strange in startup menu i've no possibility to change values...

    Screenshot of OpenBeken “OpenBL602_4C829D3D” page listing pin start values and a note about Flag 12.
  • #39 21860716
    defaliz
    Level 7  
    Posts: 19
    Rate: 1
    Hello
    could you explain how using BP5758D_Current command ?
    number are they Hex or decimal ? and how limit the current ?
    thank a lot
📢 Listen (AI):

Topic summary

✨ The discussion revolves around the Sonoff B05-BL-A60 smart bulbs, focusing on their teardown and API functionality. Users express concerns about the bulb's energy class F rating and the limitations of the API, which requires device IDs for operation, complicating integration with multiple devices. The BP5758 LED driver is identified as an I2C Tuya driver, and users share experiences with firmware updates, including issues with RGB color accuracy and brightness control. Some users report successful flashing of the device and improvements in functionality, while others seek assistance with specific commands and configurations. The conversation highlights the challenges of using the Sonoff API and the desire for better local control without reliance on cloud services.
Generated by the language model.

FAQ

TL;DR: At €11 per bulb, flashing a Sonoff B05-BL-A60 unlocks full local control; “BP5758D driver is supported” [Elektroda, p.kaczmarek2, post #20264983], but OTA images must stay under 508 KB [Elektroda, protectivedad, post #20273925]

Why it matters: You can ditch the cloud, keep privacy and still use RGB-CW tuning.

Quick Facts

• BL602 Wi-Fi/BLE SoC, 2.4 GHz, 3.3 V UART lines [Elektroda, Thom4Fun, post #20261237] • BP5758D 5-channel I²C LED driver, 16-bit, up to 37 mA/chan (BP Semiconductor DS) • Typical output: 806 lm at 9 W, 2700-6500 K [Sonoff, 2023] • DIY API OTA limit: 508 KB per *.bin [Elektroda, protectivedad, post #20273925] • Retail price: ≈ €11 per bulb [Elektroda, Thom4Fun, post #20261237]

Which LED driver does the bulb use and why does it matter?

It uses a BP5758D 5-channel constant-current driver. OpenBK uses its I²C interface for independent R-G-B-C-W control, enabling true RGBCW output instead of preset scenes [Elektroda, Thom4Fun, post #20261237]

Can I flash OpenBeken on the BL602 version?

Yes. Connect 3 V3, GND, TX, RX, and BOOT pads, then run the OpenBL602 flasher from the SDK tools [Elektroda, Thom4Fun, post #20261237] Current stable build is ≈320 KB—well under the 508 KB DIY limit.

Is OTA upgrading supported once OpenBK is installed?

Full OTA isn’t implemented for BL602 yet because the stock SDK lacks a stable OTA stack [Elektroda, p.kaczmarek2, post #20381744] Use wired UART for updates until developers finish the port.

How do I wire the BP5758D pins in OpenBK?

Typical mapping: set BP5758D_CLK to Pin 2 and BP5758D_DTA to Pin 21, then reboot [Elektroda, Thom4Fun, post #20276360] If “command not found” appears, update firmware and issue BP5758D_RGBCW to remap colours.

RGB colours look wrong—how can I fix them?

Use BP5758D_RGBCW to reorder channels and then apply LedGamma 2.2–3.0 for perceptual correction [Elektroda, p.kaczmarek2, post #20378399] An upcoming gamma-control patch further tightens colour accuracy.

Brightness dropped after flashing—what’s the remedy?

Send BP5758D_Current with safe decimal currents (e.g., 20 mA per channel). Avoid exceeding datasheet limits or lifespan will shorten [Elektroda, p.kaczmarek2, post #20378399]

Why does my bulb always boot up blue even with Flag 12 set?

A firmware bug stores state yet resets RGB channels. Disable Flag 12 and add a startup backlog such as “led_dimmer 100; led_temperature 500; led_enableAll 1” until developers patch it [Elektroda, Zain00, post #20381762]

Is flashing via Cloudcutter or other Tuya exploits possible?

No. The bulb is not Tuya-based, and its BL602 bootloader isn’t supported by Cloudcutter [Elektroda, p.kaczmarek2, post #20921510] Use UART or the limited DIY API instead.

Does the DIY HTTP API require the Sonoff cloud?

No—once you enter DIY mode, the RESTful API is fully local; however, firmware upgrades through the API demand cloud registration, which many users avoid for privacy [Elektroda, Thom4Fun, post #20274285]

3-step UART flashing guide

  1. Solder jumpers: 3 V3, GND, TX, RX, BOOT (held low).
  2. Run blflash with OpenBL602_xxx.bin; wait for “SUCCESS”.
  3. Power-cycle, connect to OpenBK Wi-Fi AP, and finish setup. Experienced users finish the process in under five minutes.

What happens if the bulb won’t light after flashing?

Check if you flashed the A19 four-wire variant; mis-wired channels leave LEDs dark. Re-flash, then adjust BP5758D_CLK/DTA pins as Zain00 did to recover illumination [Elektroda, Zain00, post #20378329]

How energy-efficient is the B05-BL-A60?

It ships with EU energy class F despite only 9 W draw because efficiency metrics consider standby and lumen output; expect about 90 lm/W compared to class G bulbs at <75 lm/W [Elektroda, Thom4Fun, #20261237; Sonoff, 2023].

Can the bulb remember its last state after power loss?

Yes—enable Flag 12 (Power retain). Note the earlier blue-boot bug; include a startup backlog if you need exact colour restoration [Elektroda, Zain00, post #20379108]

What’s the maximum firmware size for OTA via the DIY API?

508 KB per binary; larger images are rejected by the ota_flash endpoint [Elektroda, protectivedad, post #20273925] A minimal loader under this limit can then pull a full image over UART.
Generated by the language model.
ADVERTISEMENT