logo elektroda
logo elektroda
X
logo elektroda
Dostępna jest polska wersja

Czy wolisz polską wersję strony elektroda?

Nie, dziękuję Przekieruj mnie tam

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.
ADVERTISEMENT
📢 Listen (AI):
  • Because of the, from Sonoff advertised, API, I ordered from Appla.cy the B05-BL-A60 bulbs.
    B05-BL-A60 Sonoff Teardown B05-BL-A60 Sonoff Teardown

    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, B05-BL-A60 Sonoff Teardown 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:

    B05-BL-A60 Sonoff Teardown

    After disassembling, all the necessary pins are easily accessible.

    3.3V
    Ground
    TX
    RX
    Boot.

    There is an easy description on how to flash it, on:
    https://www.elektroda.com/rtvforum/topic3889041.html
    More difficulty’s I had to find the proper software to flash the chip. Finally found the tools inside the SDK.
    https://github.com/openshwprojects/OpenBK7231T_App
    Find the SDK folder for BL602 and have a look into tools...

    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.

    Cool? Ranking DIY
    About Author
    Thom4Fun
    Level 2  
    Offline 
    Thom4Fun wrote 4 posts with rating 7. Been with us since 2022 year.
  • ADVERTISEMENT
  • #2 20264983
    p.kaczmarek2
    Moderator Smart Home
    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 platform.
    Remember to try using BP5758D_RGBCW command to test the driver after enabling (BP5758D_RGBCW FF00FF0000).

    EDIT: You might need to wait 1 day more for that. We are resolving something on other platform and release is not yet public.
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #3 20265701
    ACCel
    Level 22  
    And what is this API for? Is it local or normally via cloud?
  • #4 20273925
    protectivedad
    Level 9  
    p.kaczmarek2 wrote:
    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 platform.
    Remember to try using BP5758D_RGBCW command to test the driver after enabling (BP5758D_RGBCW FF00FF0000).

    EDIT: You might need to wait 1 day more for that. We are resolving something on other platform and release is not yet public.


    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 with the build tools or I'd try to create a "lite" version. Since you have the experience do you think that it is possible to build a smaller then 508KB firmware that can be used to then write the normal firmware? Or is that just too small?

    That is the way I have done it with my Sonoff MINIR2s.

    Thanks,
  • #5 20274285
    Thom4Fun
    Level 2  
    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 will create a lot of reconfiguration if it needs to be replaced or the IP will change.
    There is a full description at:
    https://sonoff.tech/diy-developer/
    I was in hope to be able to use the API for integrating the devices without open and flashing etc etc, but I gave up. Too much trouble. Including that I was not able to update the Firmware. Therefore, you have to register the device. But I do not like to connect anything to the Chinese cloud at all, because you never know what else will be included in their firmware…

    I am not so well at this time. When I will be back from Hospital, I will spend some more time and reporting here…

    Regards
    Thomas
  • #6 20276360
    Thom4Fun
    Level 2  
    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 stuff, but the webapplication not.
    As well, the the gui shows 1 driver loded (BP5758D) total 11. The command BP5758D_RGBCW returns "command not found".

    I put
    BP5758D_CLK on Pin 2 and channel to 1, and
    BP5758D_DTA on Pin 21 and channel to 2.

    Not sure if the channel stuff is needed, but in general it works well. The colors are mistaken, but I am sure that this will easy to correct with BP5758D_RGBCW if implemented. As soon as possible, I will update the teardown with more infos.

    Regards
    Thomas
  • #7 20277075
    protectivedad
    Level 9  
    Thom4Fun wrote:
    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 will create a lot of reconfiguration if it needs to be replaced or the IP will change.
    There is a full description at:
    https://sonoff.tech/diy-developer/
    I was in hope to be able to use the API for integrating the devices without open and flashing etc etc, but I gave up. Too much trouble. Including that I was not able to update the Firmware. Therefore, you have to register the device. But I do not like to connect anything to the Chinese cloud at all, because you never know what else will be included in their firmware…

    I am not so well at this time. When I will be back from Hospital, I will spend some more time and reporting here…

    Regards
    Thomas


    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 it comes to adjusting brightness and color temperature it gets a little complicated (haven't solved it yet).

    If you interested the script I use is:
    Code: Bash
    Log in, to see the code
  • #8 20277330
    Thom4Fun
    Level 2  
    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 new firmware and some other points I don’t really like. Maybe I will give it later on a try.
  • ADVERTISEMENT
  • #9 20376848
    Zain00
    Level 11  
    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 .
  • ADVERTISEMENT
  • #10 20376994
    p.kaczmarek2
    Moderator Smart Home
    @Zain00 , to make sure, is your bulb using BL602?
    Helpful post? Buy me a coffee.
  • #11 20377022
    Zain00
    Level 11  
    p.kaczmarek2 wrote:
    @Zain00 , to make sure, is your bulb using BL602?


    This is my bulb

    B05-BL-A60 Sonoff Teardown B05-BL-A60 Sonoff Teardown B05-BL-A60 Sonoff Teardown

    It seems the chip is the same as what @Thom4Fun has, but mine has only 4 pins to the leds while Thom4Fun has 6 pins

    Edit: I just noticed that I have the B05-BL-A19 model
  • #12 20378329
    Zain00
    Level 11  
    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 firmware.
  • #13 20378355
    p.kaczmarek2
    Moderator Smart Home
    @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 correction setting (you can even calibrate your device!)
    https://github.com/openshwprojects/OpenBK7231T_App/issues/599

    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/led_gamma_control.md
    Helpful post? Buy me a coffee.
  • #15 20378399
    p.kaczmarek2
    Moderator Smart Home
    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 I am not sure if it's a build made hours before Gamma Control merge, or after...

    Dodano po 1 [minuty]:

    Oh wait! There is another thing to try!
    BP5758D_Current command!
    This can increase brightness of the LED, but do not set too much values, because you'll shorten their life significantly.

    See:
    B05-BL-A60 Sonoff Teardown
    This command can be executed at runtime, but if you want a permanent setting, then you should put it in "short startup command", so it's executed with every reboot.

    NOTE: when testing, refer to datasheet and start with lowest current values. We don't know which current value used original firmware. So you have to experiment. But don't overdo it! It's better to set lower and lengthen LED lifespan than to set higher and burn them.
    Helpful post? Buy me a coffee.
  • #16 20378565
    Zain00
    Level 11  
    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
  • #17 20378794
    p.kaczmarek2
    Moderator Smart Home
    Zain00 wrote:
    It does give me "NOT found", and I used OpenBL602_1.15.301.bin.

    It seems your build didn't include that, but don't worry, it's not necessary:
    https://github.com/openshwprojects/OpenBK7231T_App/issues/599

    Zain00 wrote:
    I did try "BP5758D_Current 0001111"

    I think it doesn't support binary notation, only hexadecimal and decimal. You should convert desired value from datasheet to decimal. Right now, you entered a random value (code interpreted it as a decimal 1111, one thousand, one hundred eleven) and lucked out that it works.

    Zain00 wrote:

    Also, as @Thom4Fun said the RGP colors are not accurate

    Did you mean RGB?
    Well, this patch is said to improve it at a lot:
    https://github.com/openshwprojects/OpenBK7231T_App/issues/599
    Helpful post? Buy me a coffee.
  • #18 20379108
    Zain00
    Level 11  
    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 off then on. But once I restart or power the bulb on it gives always blue RGB color.
    Is this a bug or should I enable other Flag ?

    Sory for the many questions, I'm still new to this.
  • #19 20381744
    p.kaczmarek2
    Moderator Smart Home
    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 check what's happening.

    Maybe you can mitigate it by setting a preferred predefined color in short startup command?
    Helpful post? Buy me a coffee.
  • #20 20381762
    Zain00
    Level 11  
    That what I did for now using the command "backlog led_dimmer 100; led_temperature 500; led_enableAll 1" and disabling Flag 12
  • #21 20443024
    p.kaczmarek2
    Moderator Smart Home
    Okay so far I can only say that we've programmed the bulb and made a video about it:



    Here is the packaging + manual:
    B05-BL-A60 Sonoff Teardown
    B05-BL-A60 Sonoff Teardown B05-BL-A60 Sonoff Teardown B05-BL-A60 Sonoff Teardown B05-BL-A60 Sonoff Teardown
    B05-BL-A60 Sonoff Teardown B05-BL-A60 Sonoff Teardown
    I will do some more tests soon to figure out the errors.
    Helpful post? Buy me a coffee.
  • #22 20921371
    denisrobel
    Level 3  
    is it possible toflash this device OTA via cloudcutter?
  • #23 20921510
    p.kaczmarek2
    Moderator Smart Home
    I don't think so, as far as I know this device isn't even Tuya?
    Helpful post? Buy me a coffee.
  • #25 21736773
    mstsc
    Level 1  
    Was there a solution to the mixed up colors? I successfully flashed my lamp. But the cold color doesn't work well, and the red and blue RBGs are mixed up. OpenBK7231T/OpenBeken release 1.18.206
  • #26 21736851
    p.kaczmarek2
    Moderator Smart Home
    Helpful post? Buy me a coffee.
  • #27 21856718
    defaliz
    Level 7  
    >>21736851 Hi,
    i try to flash this bulb (sonoff b05 BL A19) but i don't know how to enter in flash mode with the boot pin ?
    thank for help
  • #28 21857434
    defaliz
    Level 7  
    ok, i've follow the video to flash B05-BL-A19 bulb, download lab_dev_cube and OpenBL602_1.18.270.bin file,
    then flash with success, but no wifi AP when i re-plug the bulb
    here are the logs , do you know where is the problem ?
    regards
    
    [17:17:34.026] - ========= Interface is Uart =========
    [17:17:34.031] - eflash loader bin is eflash_loader_40m.bin
    [17:17:34.171] - Version: eflash_loader_v2.4.2
    [17:17:34.173] - Program Start
    [17:17:34.173] - ========= eflash loader cmd arguments =========
    [17:17:34.173] - /home/alain/bl_iot_sdk/tools/flash_tool/chips/bl602/eflash_loader/eflash_loader_cfg.ini
    [17:17:34.174] - Config file: /home/alain/bl_iot_sdk/tools/flash_tool/chips/bl602/eflash_loader/eflash_loader_cfg.ini
    [17:17:34.178] - serial port is /dev/ttyUSB0
    [17:17:34.178] - cpu_reset=False
    [17:17:34.180] - chiptype: bl602
    [17:17:34.180] - ========= Interface is uart =========
    [17:17:34.180] - com speed: 2000000
    [17:17:34.180] - Eflash load helper file: /home/alain/bl_iot_sdk/tools/flash_tool/chips/bl602/eflash_loader/eflash_loader_40m.bin
    [17:17:34.182] - ========= load eflash_loader.bin =========
    [17:17:34.182] - Load eflash_loader.bin via uart
    [17:17:34.183] - ========= image load =========
    [17:17:34.466] - tx rx and power off, press the machine!
    [17:17:34.468] - cutoff time is 0.1
    [17:17:34.571] - power on tx and rx
    [17:17:35.315] - reset cnt: 0, reset hold: 0.005, shake hand delay: 0.1
    [17:17:35.316] - clean buf
    [17:17:35.317] - send sync
    [17:17:35.522] - ack is b'4f4b'
    [17:17:35.553] - shake hand success
    [17:17:35.565] - get_boot_info
    [17:17:35.569] - data read is b'0100000000000000030000003d9d824cb97c1700'
    [17:17:35.571] - ========= ChipID: 7cb94c829d3d =========
    [17:17:35.571] - last boot info: None
    [17:17:35.571] - sign is 0 encrypt is 0
    [17:17:35.572] - segcnt is 1
    [17:17:35.581] - segdata_len is 37152
    [17:17:35.666] - 4080/37152
    [17:17:35.751] - 8160/37152
    [17:17:35.837] - 12240/37152
    [17:17:35.923] - 16320/37152
    [17:17:36.008] - 20400/37152
    [17:17:36.094] - 24480/37152
    [17:17:36.179] - 28560/37152
    [17:17:36.265] - 32640/37152
    [17:17:36.351] - 36720/37152
    [17:17:36.363] - 37152/37152
    [17:17:36.366] - Run img
    [17:17:36.468] - Load helper bin time cost(ms): 2284.8525390625
    [17:17:36.570] - Flash load shake hand
    [17:17:36.596] - default set DTR high
    [17:17:36.697] - clean buf
    [17:17:36.698] - send sync
    [17:17:36.904] - ack is b'4f4b'
    [17:17:36.937] - Read mac addr
    [17:17:36.941] - flash set para
    [17:17:36.941] - ========= flash read jedec ID =========
    [17:17:36.944] - Read flash jedec ID
    [17:17:36.944] - readdata:
    [17:17:36.944] - b'ef401580'
    [17:17:36.944] - Finished
    [17:17:36.956] - Program operation
    [17:17:36.956] - Flash Chip Erase
    [17:17:37.968] - erase pending
    [17:17:38.977] - erase pending
    [17:17:39.986] - erase pending
    [17:17:40.994] - erase pending
    [17:17:41.574] - Chip erase time cost(ms): 4617.172119140625
    [17:17:41.576] - Dealing Index 0
    [17:17:41.577] - ========= programming chips/bl602/img_create_iot/img_single.bin to 0x00000000
    [17:17:41.589] - ========= flash load =========
    [17:17:41.793] - decompress flash load 429684
    [17:17:41.806] - Load 2048/429684 {"progress":0}
    [17:17:41.822] - Load 4096/429684 {"progress":0}
    [17:17:41.836] - Load 6144/429684 {"progress":1}
    [17:17:41.851] - Load 8192/429684 {"progress":1}
    [17:17:41.866] - Load 10240/429684 {"progress":2}
    [17:17:41.881] - Load 12288/429684 {"progress":2}
    [17:17:41.896] - Load 14336/429684 {"progress":3}
    [17:17:41.911] - Load 16384/429684 {"progress":3}
    [17:17:41.926] - Load 18432/429684 {"progress":4}
    [17:17:41.942] - Load 20480/429684 {"progress":4}
    [17:17:41.957] - Load 22528/429684 {"progress":5}
    [17:17:41.972] - Load 24576/429684 {"progress":5}
    [17:17:41.987] - Load 26624/429684 {"progress":6}
    [17:17:42.003] - Load 28672/429684 {"progress":6}
    [17:17:42.018] - Load 30720/429684 {"progress":7}
    [17:17:42.033] - Load 32768/429684 {"progress":7}
    [17:17:42.048] - Load 34816/429684 {"progress":8}
    [17:17:42.063] - Load 36864/429684 {"progress":8}
    [17:17:42.078] - Load 38912/429684 {"progress":9}
    [17:17:42.093] - Load 40960/429684 {"progress":9}
    [17:17:42.108] - Load 43008/429684 {"progress":10}
    [17:17:42.122] - Load 45056/429684 {"progress":10}
    [17:17:42.137] - Load 47104/429684 {"progress":10}
    [17:17:42.154] - Load 49152/429684 {"progress":11}
    [17:17:42.169] - Load 51200/429684 {"progress":11}
    [17:17:42.184] - Load 53248/429684 {"progress":12}
    [17:17:42.199] - Load 55296/429684 {"progress":12}
    [17:17:42.214] - Load 57344/429684 {"progress":13}
    [17:17:42.229] - Load 59392/429684 {"progress":13}
    [17:17:42.244] - Load 61440/429684 {"progress":14}
    [17:17:42.259] - Load 63488/429684 {"progress":14}
    [17:17:42.274] - Load 65536/429684 {"progress":15}
    [17:17:42.290] - Load 67584/429684 {"progress":15}
    [17:17:42.304] - Load 69632/429684 {"progress":16}
    [17:17:42.319] - Load 71680/429684 {"progress":16}
    [17:17:42.334] - Load 73728/429684 {"progress":17}
    [17:17:42.349] - Load 75776/429684 {"progress":17}
    [17:17:42.364] - Load 77824/429684 {"progress":18}
    [17:17:42.379] - Load 79872/429684 {"progress":18}
    [17:17:42.393] - Load 81920/429684 {"progress":19}
    [17:17:42.409] - Load 83968/429684 {"progress":19}
    [17:17:42.424] - Load 86016/429684 {"progress":20}
    [17:17:42.440] - Load 88064/429684 {"progress":20}
    [17:17:42.454] - Load 90112/429684 {"progress":20}
    [17:17:42.470] - Load 92160/429684 {"progress":21}
    [17:17:42.485] - Load 94208/429684 {"progress":21}
    [17:17:42.499] - Load 96256/429684 {"progress":22}
    [17:17:42.514] - Load 98304/429684 {"progress":22}
    [17:17:42.529] - Load 100352/429684 {"progress":23}
    [17:17:42.544] - Load 102400/429684 {"progress":23}
    [17:17:42.559] - Load 104448/429684 {"progress":24}
    [17:17:42.574] - Load 106496/429684 {"progress":24}
    [17:17:42.588] - Load 108544/429684 {"progress":25}
    [17:17:42.603] - Load 110592/429684 {"progress":25}
    [17:17:42.618] - Load 112640/429684 {"progress":26}
    [17:17:42.633] - Load 114688/429684 {"progress":26}
    [17:17:42.648] - Load 116736/429684 {"progress":27}
    [17:17:42.665] - Load 118784/429684 {"progress":27}
    [17:17:42.679] - Load 120832/429684 {"progress":28}
    [17:17:42.694] - Load 122880/429684 {"progress":28}
    [17:17:42.710] - Load 124928/429684 {"progress":29}
    [17:17:42.725] - Load 126976/429684 {"progress":29}
    [17:17:42.740] - Load 129024/429684 {"progress":30}
    [17:17:42.755] - Load 131072/429684 {"progress":30}
    [17:17:42.771] - Load 133120/429684 {"progress":30}
    [17:17:42.786] - Load 135168/429684 {"progress":31}
    [17:17:42.801] - Load 137216/429684 {"progress":31}
    [17:17:42.817] - Load 139264/429684 {"progress":32}
    [17:17:42.832] - Load 141312/429684 {"progress":32}
    [17:17:42.847] - Load 143360/429684 {"progress":33}
    [17:17:42.862] - Load 145408/429684 {"progress":33}
    [17:17:42.878] - Load 147456/429684 {"progress":34}
    [17:17:42.892] - Load 149504/429684 {"progress":34}
    [17:17:42.907] - Load 151552/429684 {"progress":35}
    [17:17:42.923] - Load 153600/429684 {"progress":35}
    [17:17:42.937] - Load 155648/429684 {"progress":36}
    [17:17:42.952] - Load 157696/429684 {"progress":36}
    [17:17:42.967] - Load 159744/429684 {"progress":37}
    [17:17:42.983] - Load 161792/429684 {"progress":37}
    [17:17:42.998] - Load 163840/429684 {"progress":38}
    [17:17:43.012] - Load 165888/429684 {"progress":38}
    [17:17:43.028] - Load 167936/429684 {"progress":39}
    [17:17:43.043] - Load 169984/429684 {"progress":39}
    [17:17:43.056] - Load 172032/429684 {"progress":40}
    [17:17:43.072] - Load 174080/429684 {"progress":40}
    [17:17:43.095] - Load 176128/429684 {"progress":40}
    [17:17:43.109] - Load 178176/429684 {"progress":41}
    [17:17:43.124] - Load 180224/429684 {"progress":41}
    [17:17:43.139] - Load 182272/429684 {"progress":42}
    [17:17:43.153] - Load 184320/429684 {"progress":42}
    [17:17:43.168] - Load 186368/429684 {"progress":43}
    [17:17:43.183] - Load 188416/429684 {"progress":43}
    [17:17:43.198] - Load 190464/429684 {"progress":44}
    [17:17:43.213] - Load 192512/429684 {"progress":44}
    [17:17:43.228] - Load 194560/429684 {"progress":45}
    [17:17:43.243] - Load 196608/429684 {"progress":45}
    [17:17:43.258] - Load 198656/429684 {"progress":46}
    [17:17:43.273] - Load 200704/429684 {"progress":46}
    [17:17:43.289] - Load 202752/429684 {"progress":47}
    [17:17:43.303] - Load 204800/429684 {"progress":47}
    [17:17:43.318] - Load 206848/429684 {"progress":48}
    [17:17:43.334] - Load 208896/429684 {"progress":48}
    [17:17:43.349] - Load 210944/429684 {"progress":49}
    [17:17:43.364] - Load 212992/429684 {"progress":49}
    [17:17:43.379] - Load 215040/429684 {"progress":50}
    [17:17:43.392] - Load 217088/429684 {"progress":50}
    [17:17:43.408] - Load 219136/429684 {"progress":50}
    [17:17:43.423] - Load 221184/429684 {"progress":51}
    [17:17:43.437] - Load 223232/429684 {"progress":51}
    [17:17:43.452] - Load 225280/429684 {"progress":52}
    [17:17:43.467] - Load 227328/429684 {"progress":52}
    [17:17:43.482] - Load 229376/429684 {"progress":53}
    [17:17:43.497] - Load 231424/429684 {"progress":53}
    [17:17:43.512] - Load 233472/429684 {"progress":54}
    [17:17:43.527] - Load 235520/429684 {"progress":54}
    [17:17:43.540] - Load 237568/429684 {"progress":55}
    [17:17:43.555] - Load 239616/429684 {"progress":55}
    [17:17:43.570] - Load 241664/429684 {"progress":56}
    [17:17:43.585] - Load 243712/429684 {"progress":56}
    [17:17:43.600] - Load 245760/429684 {"progress":57}
    [17:17:43.616] - Load 247808/429684 {"progress":57}
    [17:17:43.631] - Load 249856/429684 {"progress":58}
    [17:17:43.645] - Load 251904/429684 {"progress":58}
    [17:17:43.660] - Load 253952/429684 {"progress":59}
    [17:17:43.676] - Load 256000/429684 {"progress":59}
    [17:17:43.691] - Load 258048/429684 {"progress":60}
    [17:17:43.706] - Load 260096/429684 {"progress":60}
    [17:17:43.721] - Load 262144/429684 {"progress":61}
    [17:17:43.734] - Load 264192/429684 {"progress":61}
    [17:17:43.750] - Load 266240/429684 {"progress":61}
    [17:17:43.764] - Load 268288/429684 {"progress":62}
    [17:17:43.780] - Load 270336/429684 {"progress":62}
    [17:17:43.795] - Load 272384/429684 {"progress":63}
    [17:17:43.810] - Load 274432/429684 {"progress":63}
    [17:17:43.825] - Load 276480/429684 {"progress":64}
    [17:17:43.840] - Load 278528/429684 {"progress":64}
    [17:17:43.855] - Load 280576/429684 {"progress":65}
    [17:17:43.870] - Load 282624/429684 {"progress":65}
    [17:17:43.886] - Load 284672/429684 {"progress":66}
    [17:17:43.901] - Load 286720/429684 {"progress":66}
    [17:17:43.915] - Load 288768/429684 {"progress":67}
    [17:17:43.930] - Load 290816/429684 {"progress":67}
    [17:17:43.945] - Load 292864/429684 {"progress":68}
    [17:17:43.960] - Load 294912/429684 {"progress":68}
    [17:17:43.975] - Load 296960/429684 {"progress":69}
    [17:17:43.990] - Load 299008/429684 {"progress":69}
    [17:17:44.005] - Load 301056/429684 {"progress":70}
    [17:17:44.020] - Load 303104/429684 {"progress":70}
    [17:17:44.034] - Load 305152/429684 {"progress":71}
    [17:17:44.049] - Load 307200/429684 {"progress":71}
    [17:17:44.064] - Load 309248/429684 {"progress":71}
    [17:17:44.079] - Load 311296/429684 {"progress":72}
    [17:17:44.094] - Load 313344/429684 {"progress":72}
    [17:17:44.110] - Load 315392/429684 {"progress":73}
    [17:17:44.125] - Load 317440/429684 {"progress":73}
    [17:17:44.140] - Load 319488/429684 {"progress":74}
    [17:17:44.155] - Load 321536/429684 {"progress":74}
    [17:17:44.170] - Load 323584/429684 {"progress":75}
    [17:17:44.185] - Load 325632/429684 {"progress":75}
    [17:17:44.200] - Load 327680/429684 {"progress":76}
    [17:17:44.216] - Load 329728/429684 {"progress":76}
    [17:17:44.231] - Load 331776/429684 {"progress":77}
    [17:17:44.246] - Load 333824/429684 {"progress":77}
    [17:17:44.261] - Load 335872/429684 {"progress":78}
    [17:17:44.276] - Load 337920/429684 {"progress":78}
    [17:17:44.291] - Load 339968/429684 {"progress":79}
    [17:17:44.306] - Load 342016/429684 {"progress":79}
    [17:17:44.320] - Load 344064/429684 {"progress":80}
    [17:17:44.334] - Load 346112/429684 {"progress":80}
    [17:17:44.350] - Load 348160/429684 {"progress":81}
    [17:17:44.365] - Load 350208/429684 {"progress":81}
    [17:17:44.380] - Load 352256/429684 {"progress":81}
    [17:17:44.396] - Load 354304/429684 {"progress":82}
    [17:17:44.410] - Load 356352/429684 {"progress":82}
    [17:17:44.425] - Load 358400/429684 {"progress":83}
    [17:17:44.440] - Load 360448/429684 {"progress":83}
    [17:17:44.455] - Load 362496/429684 {"progress":84}
    [17:17:44.470] - Load 364544/429684 {"progress":84}
    [17:17:44.484] - Load 366592/429684 {"progress":85}
    [17:17:44.499] - Load 368640/429684 {"progress":85}
    [17:17:44.514] - Load 370688/429684 {"progress":86}
    [17:17:44.529] - Load 372736/429684 {"progress":86}
    [17:17:44.544] - Load 374784/429684 {"progress":87}
    [17:17:44.560] - Load 376832/429684 {"progress":87}
    [17:17:44.575] - Load 378880/429684 {"progress":88}
    [17:17:44.590] - Load 380928/429684 {"progress":88}
    [17:17:44.614] - Load 382976/429684 {"progress":89}
    [17:17:44.631] - Load 385024/429684 {"progress":89}
    [17:17:44.655] - Load 387072/429684 {"progress":90}
    [17:17:44.671] - Load 389120/429684 {"progress":90}
    [17:17:44.695] - Load 391168/429684 {"progress":91}
    [17:17:44.711] - Load 393216/429684 {"progress":91}
    [17:17:44.735] - Load 395264/429684 {"progress":91}
    [17:17:44.751] - Load 397312/429684 {"progress":92}
    [17:17:44.774] - Load 399360/429684 {"progress":92}
    [17:17:44.790] - Load 401408/429684 {"progress":93}
    [17:17:44.814] - Load 403456/429684 {"progress":93}
    [17:17:44.830] - Load 405504/429684 {"progress":94}
    [17:17:44.846] - Load 407552/429684 {"progress":94}
    [17:17:44.869] - Load 409600/429684 {"progress":95}
    [17:17:44.886] - Load 411648/429684 {"progress":95}
    [17:17:44.902] - Load 413696/429684 {"progress":96}
    [17:17:44.926] - Load 415744/429684 {"progress":96}
    [17:17:44.942] - Load 417792/429684 {"progress":97}
    [17:17:44.966] - Load 419840/429684 {"progress":97}
    [17:17:44.990] - Load 421888/429684 {"progress":98}
    [17:17:45.006] - Load 423936/429684 {"progress":98}
    [17:17:45.021] - Load 425984/429684 {"progress":99}
    [17:17:45.044] - Load 428032/429684 {"progress":99}
    [17:17:45.060] - Load 429684/429684 {"progress":100}
    [17:17:45.061] - Load 429684/429684 {"progress":100}
    [17:17:45.064] - Write check
    [17:17:45.079] - Flash load time cost(ms): 3488.94873046875
    [17:17:45.080] - Finished
    [17:17:45.086] - Sha caled by host: 60e9cb979395900bee7cb952583825efb4d89a534b04c0ea07749fdb1cb135aa
    [17:17:45.087] - xip mode Verify
    [17:17:45.303] - Read Sha256/776676
    [17:17:45.305] - Flash xip readsha time cost(ms): 215.1240234375
    [17:17:45.306] - Finished
    [17:17:45.309] - Sha caled by dev: 60e9cb979395900bee7cb952583825efb4d89a534b04c0ea07749fdb1cb135aa
    [17:17:45.309] - Verify success
    [17:17:45.310] - Program Finished
    [17:17:45.310] - All time cost(ms): 11137.064697265625
    [17:17:45.472] - close interface
    [17:17:45.474] - [All Success]
  • #29 21857439
    divadiow
    Level 38  
    defaliz wrote:
    but no wifi AP when i re-plug the bulb


    does this mean on mains power or still on 3.3v?
  • #30 21857474
    defaliz
    Level 7  
    Thank for reply divadiow
    Still on 3.3 v, but i don't know if i use correctly lab dev cube ?

    Screenshot of firmware download tool with UART settings and a selected BIN file

    Added after 4 [minutes]:

    i've re-plug the pcb on power 230v and it's the same..
    and now no possibility to use the bulb with ewelink app...
📢 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.

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.
ADVERTISEMENT