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.
Because of the, from Sonoff advertised, API, I ordered from Appla.cy the B05-BL-A60 bulbs.
Each one has a price of around 11€. Take care, I am talking here about the B05-BL-A60 NOT the B05-B-A60 which has a different chip, different led driver and no API!
Surprised of the energy class F, I tested the API which is more or less useless if you have a need of some more devices and if you don’t want to struggle with different ID's for each single device.
After opening the bulb, you will find the LED plate with an BP5758 LED Driver. THE BP5758 seams to be an I2C Tuya Driver. Removing the LED Plate, you will find the power supply and the WIFI components:
After disassembling, all the necessary pins are easily accessible.
The firmware do not support the BP5758 yet, but the work is in progress. When I flash the next chip, I will be prepared and will enrich this teardown with more links, better pictures and a step by step description.
About Author
Thom4Fun wrote 4 posts with
rating 7 .
Been with us since 2022 year.
Thank you for teardown.
The BP5758D driver is supported, but was not enabled for BL602. I have enabled it so you can test now again.
I have also improved some things and did several bugfixes for that... [Read more]
ACCel
03 Nov 2022 08:26
And what is this API for? Is it local or normally via cloud? [Read more]
protectivedad
08 Nov 2022 01:24
The documentation at:
https://sonoff.tech/sonoff-diy-developer-documentation-b02-bl-b05-bl-http-api/
Tells me there is an ota_flash command but it says the largest bin is only 508KB. I'm not familiar... [Read more]
Thom4Fun
08 Nov 2022 11:44
Hi.
The API can be used only local. First, you have to bring the device into the DIY mode. Then, you can use a RESTfull API.
But the API is not very useful. You have to know the ID of the device, which... [Read more]
Thom4Fun
09 Nov 2022 16:45
Hello.
Sorry for the delay, I have some healty problems and have to be back to the hospital on Friday.
But I give the new version a try on a brand new device, and with luck. The gui shows the LED... [Read more]
protectivedad
09 Nov 2022 22:49
Actually the deviceid is not required. Use curl and point to the url away you go. I'm using openhab with http and exec binding. Works well for turn on, off and setting any of the preprogrammed modes. When... [Read more]
Thom4Fun
10 Nov 2022 08:06
Thank you for the code.
But in any way you use a Chinese firmware where you never know what’s happen without sniffing the network traffic at any time, you have to register to the cloud to get the... [Read more]
Zain00
09 Jan 2023 19:37
My bulb won't light up.
I put BP5758D_CLK on Pin 2 and channel to 1
And BP5758D_DTA on Pin 21 and channel to 2
I need help please . [Read more]
p.kaczmarek2
09 Jan 2023 20:33
@Zain00 , to make sure, is your bulb using BL602? [Read more]
Zain00
09 Jan 2023 20:45
This is my bulb
https://obrazki.elektroda.pl/9749965600_1673293428_thumb.jpg https://obrazki.elektroda.pl/7788231200_1673293430_thumb.jpg https://obrazki.elektroda.pl/6066274800_1673293428_thumb.jpg... [Read more]
Zain00
10 Jan 2023 17:56
New Update: I reflashed the chip and somehow it works now.
But I noticed that the brightness has decreased, also the I can dim it further down now with openbeken than what I could with the original f... [Read more]
p.kaczmarek2
10 Jan 2023 18:13
@Zain00 can you show a screenshot from main HTTP page showing version and build date?
Our contributor @rogere66 recently submitted a patch that greatly increased lighting quality and introduced gamma... [Read more]
Can you try doing this process?
https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/led_gamma_control.md
Or does it yields "unknown command"? You have yesterdays build, but at the moment... [Read more]
Zain00
10 Jan 2023 20:18
It does give me "NOT found", and I used OpenBL602_1.15.301.bin.
I did try "BP5758D_Current 0001111" command and I think it's working now.
Also, as @thom4Fun said the RGP colors are not accurate [Read more]
p.kaczmarek2
10 Jan 2023 22:13
It seems your build didn't include that, but don't worry, it's not necessary:
https://github.com/openshwprojects/OpenBK7231T_App/issues/599
I think it doesn't support binary notation, only hexadecimal... [Read more]
Zain00
11 Jan 2023 08:21
Thank you, yes I mean RGB. Can I update over the air with BL602 chips ? I read before that it's not available
One other issue I'm facing, I enabled Flag 12 so the state of the bulb is saved when powred... [Read more]
p.kaczmarek2
12 Jan 2023 17:44
Fully working OTA was not present in BL602 SDK we used so it's not yet done. It's on TODO list but BL602 is not as frequent as other platforms.
Regarding blue bug - it's not expected, I will try to... [Read more]
Zain00
12 Jan 2023 17:48
That what I did for now using the command "backlog led_dimmer 100; led_temperature 500; led_enableAll 1" and disabling Flag 12 [Read more]
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]
Run blflash with OpenBL602_xxx.bin; wait for “SUCCESS”.
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.
Comments
Thank you for teardown. The BP5758D driver is supported, but was not enabled for BL602. I have enabled it so you can test now again. I have also improved some things and did several bugfixes for that... [Read more]
And what is this API for? Is it local or normally via cloud? [Read more]
The documentation at: https://sonoff.tech/sonoff-diy-developer-documentation-b02-bl-b05-bl-http-api/ Tells me there is an ota_flash command but it says the largest bin is only 508KB. I'm not familiar... [Read more]
Hi. The API can be used only local. First, you have to bring the device into the DIY mode. Then, you can use a RESTfull API. But the API is not very useful. You have to know the ID of the device, which... [Read more]
Hello. Sorry for the delay, I have some healty problems and have to be back to the hospital on Friday. But I give the new version a try on a brand new device, and with luck. The gui shows the LED... [Read more]
Actually the deviceid is not required. Use curl and point to the url away you go. I'm using openhab with http and exec binding. Works well for turn on, off and setting any of the preprogrammed modes. When... [Read more]
Thank you for the code. But in any way you use a Chinese firmware where you never know what’s happen without sniffing the network traffic at any time, you have to register to the cloud to get the... [Read more]
My bulb won't light up. I put BP5758D_CLK on Pin 2 and channel to 1 And BP5758D_DTA on Pin 21 and channel to 2 I need help please . [Read more]
@Zain00 , to make sure, is your bulb using BL602? [Read more]
This is my bulb https://obrazki.elektroda.pl/9749965600_1673293428_thumb.jpg https://obrazki.elektroda.pl/7788231200_1673293430_thumb.jpg https://obrazki.elektroda.pl/6066274800_1673293428_thumb.jpg... [Read more]
New Update: I reflashed the chip and somehow it works now. But I noticed that the brightness has decreased, also the I can dim it further down now with openbeken than what I could with the original f... [Read more]
@Zain00 can you show a screenshot from main HTTP page showing version and build date? Our contributor @rogere66 recently submitted a patch that greatly increased lighting quality and introduced gamma... [Read more]
@p.kaczmarek2 https://obrazki.elektroda.pl/9500877000_1673370992_thumb.jpg [Read more]
Can you try doing this process? https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/led_gamma_control.md Or does it yields "unknown command"? You have yesterdays build, but at the moment... [Read more]
It does give me "NOT found", and I used OpenBL602_1.15.301.bin. I did try "BP5758D_Current 0001111" command and I think it's working now. Also, as @thom4Fun said the RGP colors are not accurate [Read more]
It seems your build didn't include that, but don't worry, it's not necessary: https://github.com/openshwprojects/OpenBK7231T_App/issues/599 I think it doesn't support binary notation, only hexadecimal... [Read more]
Thank you, yes I mean RGB. Can I update over the air with BL602 chips ? I read before that it's not available One other issue I'm facing, I enabled Flag 12 so the state of the bulb is saved when powred... [Read more]
Fully working OTA was not present in BL602 SDK we used so it's not yet done. It's on TODO list but BL602 is not as frequent as other platforms. Regarding blue bug - it's not expected, I will try to... [Read more]
That what I did for now using the command "backlog led_dimmer 100; led_temperature 500; led_enableAll 1" and disabling Flag 12 [Read more]