logo elektroda
logo elektroda
X
logo elektroda

LN882H TNCE RGBCW WiFi LED bulb - LN882HKI flashing tutorial, UART to USB, pinout

p.kaczmarek2 3051 31

TL;DR

  • Flashed a TNCE TY-BK-A60 / LN882HKI RGBCW WiFi LED bulb with OpenLN882H to make it cloud-free and usable with Home Assistant.
  • Used a simple USB-to-UART setup on the exposed pads, with P21 as the LN882H boot pin and U0-TX/U0-RX as the programming UART.
  • Backed up the original firmware first, but the dump was interrupted before the full 2MB image completed.
  • GPIO Doctor helped identify the PWM pins, and the bulb ended up running full RGBCW control successfully.
Generated by the language model.
ADVERTISEMENT
📢 Listen (AI):
  • Close-up of LED PCB with yellow diodes and markings.
    Here's step by step guide for the LN882 (LN882HKI by Lightning Semi) TY-BK-A60 LED bulb firmware change. This will let you to run the device cloud free and pair with Home Assistant. Device will be flashed with our Tasmota/Esphome inspired firmare, OpenLN882H. A simple USB to UART converted will be used for that. The programming process shown here will be fairly simple and will not require full bulb disassembly. The bulb was bought on Ali for few $, it can be sometimes even bought for as low as 1$. Let's look at the packaging:
    Packaging of the TNCE Smart E27 bulb - TCDPA601WL265 with visible product labels.
    Package of TNCE Smart E27 bulb showing product parameters.
    Packaging of the Tuya Smart LED Bulb TY-BK-A60 with product information.
    Box of TNCE Smart E27 bulb with certification labels
    TNCE Smart E27 Bulb Packaging
    TNCE Smart E27 Bulb - TCDPA601WL265
    Model: TY-BK-A60
    Manufactured: September 10, 2024
    There is also a manual inside, but we don't need it as we're going to change the firmware:
    Brochure with instructions for WiFi smart bulbs in various languages.
    and the bulb itself:
    TNCE Smart E27 LED bulb lying on technical documentation.

    Bulb teardown
    Top dome can be easily removed with some force. I managed to do it with my bare hands:
    Close-up of LED PCB with yellow diodes and markings.
    Then I had to remove the LED board. I had to pry it with screw driver, it was a bit problematic. I broke the part of the bulb edge:
    View of the interior of a TNCE Smart E27 LED bulb with the dome and LED board removed, against a background of the user manual.
    Finally, as you can see, we're getting access to the WiFi MCU:
    Interior of an opened LED bulb showing the circuit board.
    It's not a Beken chip this time, but a LN882H:
    Close-up of Lightning LN882HKI chip on a circuit board.
    LIGHTNING LN882HKI, to be precise.
    You can also see five transistors nearby, so probably bulb uses raw PWMs. No I2C LED controller there.
    Interior view of an LED bulb with a visible PCB and electronic components.
    It is also possible to glance at the power supply circuit in the back:
    Close-up of a circuit board with electronic components.
    It's a step down converter based on BP2525, just like usual. It's a very common solution in these products.
    I can also see a KP2120 (KP2120SG?) in the background, so the LED circuit might have a separate supply than a WiFi SoC.
    There are also flashing pads on the bottom of the board:
    View of the interior of a LED bulb showing the PCB and solder pads.
    P21 may sounds like a Beken pin. I think it's a left over from previous device version which might have used BK7231.



    Firmware change
    P21 is actually a LN882H boot pin. The programming UART is in the background, U0-TX and U0-RX. First add some flux and Pb solder to the pads:
    View inside an LED bulb showing a circuit board and solder pad labels.
    Then solder wires:
    Inside view of a light bulb with visible circuit board and wires.
    Follow LN882H flashing tutorial:
    https://www.elektroda.com/rtvforum/topic4028087.html
    https://www.elektroda.pl/rtvforum/topic4028087.html
    Here's my full circuit:
    Dismantled TNCE Smart E27 LED bulb with a breadboard and USB to UART adapter.
    Of course, I've also took a backup of original firmware first. It's not full 2MB because I had to interrupt read early, but it seems that data past 1MB mark is just full of 0xFF:
    https://github.com/openshwprojects/FlashDumps/commit/5e7d1bf6dac8c79dc68b34dfd6e781d435bfce42

    Initial setup
    Just like with Tasmota - disconnect boot pin, do power off/on, connect to LN822H access point:
    Notification for connecting to OpenLN882H network.
    Configure your WiFi:
    Screenshot of WiFi setup interface for OpenLN882H
    Get new device IP from DHCP:
    DHCP client list showing LN882H_STA device with assigned IP address.
    Then you need to figure out the GPIO roles. We don't have yet GPIO extraction for this platform, so I used the GPIO Doctor tool from the Web App.
    GPIO Doctor Pins interface
    Once you guess the pins with Doctor, you can set them to PWMs in Configure Module menu:
    Screenshot of GPIO settings, showing PWM configuration for A1 and A4.
    At first I got CW working:
    This is how CW controls look like:
    Screenshot of OpenLN882H interface with LED brightness and temperature slider.
    CW seems to work good:
    Illuminated TNCE Smart E27 - TCDPA601WL265 bulb lying on a wooden surface.
    Lit LED bulb placed on a wooden surface.
    Later I found RGB pins, so RGBCW is fully working now.
    LED bulb emitting purple light
    LED bulb glowing blue.
    RGBCW configuration:
    Code: JSON
    Log in, to see the code


    Summary
    Flashing process was easy and didn't require full disassembly of the bulb. I have managed to reach the pads with my soldering iron and I didn't have to remove the thread. I also guessed the meaning of pad markings - U0 is used for flashing and P21 is infact the LN882 boot pin. I also managed to guess the GPIO roles with GPIO Doctor, so full RGBCW is working now.
    Device can be now paired with Home Assistant, just like in our tutorial.
    Let us know if you have also encountered any LN882H devices already. We can help you with flashing and HA setup.
    PS: Special thanks to @divadiow for helping me to get this bulb. I've ordered another already, this time E14 thread, we will see if it will be also LN-based...

    Cool? Ranking DIY
    Helpful post? Buy me a coffee.
    About Author
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    p.kaczmarek2 wrote 14393 posts with rating 12314, helped 650 times. Been with us since 2014 year.
  • ADVERTISEMENT
  • #2 21447286
    John Yossarian
    Level 12  
    Posts: 57
    Help: 1
    Rate: 18
    Board Language: polish
    And would it go via OTA, Tuya-convert + tasmot?
  • #3 21447295
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    Unfortunately no. It only goes on devices with ESP and, in addition, most new devices are protected.

    The LN882HKI is a completely different MCU. We specifically wrote HAL for it to port firmware to it. OpenLN882H (OpenBK port) is in the style of Tasmota and supports some of the Tasmota commands, but it is a completely different code, although the idea is the same.

    You'll either have to work with cables as shown in the topic, or alternatively, you can communicate somehow on PW, I sometimes upload batch to devices on request to users.
    Helpful post? Buy me a coffee.
  • #4 21447319
    John Yossarian
    Level 12  
    Posts: 57
    Help: 1
    Rate: 18
    Board Language: polish
    >>21447295 Thanks for the reply. I haven't tried flashing yet, for now I'm gathering info:) I have a couple of these toys, but they are in daily use. Just planning to buy something to play with, with different BK circuits, esp. Well, but this tutorial for LN looks really encouraging:) .
    Thanks, pzdr
  • #5 21447336
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    Well, two comments I have.
    First, you're not sure if you're going to get something on LN882H, or BK7231, or BL602, or W800, so don't assume that in advance. But anyway, OpenBK/OpenLN supports most of the now popular platforms from Aliexpress so no problem....
    Secondly, you also have flashing tutorials here, also for the BL602: https://www.youtube.com/playlist?list=PLzbXEc2ebpH0CZDbczAXT94BuSGrd_GoM

    Just order some product you're interested in, don't set your mind to what SoC will be inside, and then make a topic on the forum and we'll help you step by step to reflash. As if I missed the topic, send me the link to the topic on PW. Only please don't ask me questions on PW - we provide help on the forum.
    Helpful post? Buy me a coffee.
  • #6 21447351
    John Yossarian
    Level 12  
    Posts: 57
    Help: 1
    Rate: 18
    Board Language: polish
    >>21447336 Well, yes, that's true. I don't have the certainty. Once I have something to play with, I'll only wonder. And I will report back on the successes:) .
  • ADVERTISEMENT
  • #7 21450387
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    I've just ordered more leds myself for testing, we'll see what arrives:
    Advertisement for a smart LED Tuya bulb with Wi-Fi and voice assistant support. .
    I am now awaiting the three packs:
    A list of orders for three smart LED bulbs from different online stores. .
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #8 21456397
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    A package has arrived with this one:
    Image of Ewelink E14 WiFi Zigbee smart LED bulb with color-changing feature. .
    It turned out to be based on the BL602 - BW2L module . I am working on it. It is possible to upload OpenBL602.

    I have ordered another one:
    Image of a GU10 LED Tuya WiFi smart bulb with intelligent control features. .
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #9 21457908
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    It came with:
    ZigBee Tuya WiFi LED bulb with a smartphone app. .
    CB2L.
    Close-up of an LED bulb with an integrated circuit labeled CB2L, with a product packaging label for TY-A60-18W-220V in the background. .

    Added after 10 [minutes]: .

    Ordering another one:
    Ad for Tuya Smart WiFi LED bulbs with RGB color-changing feature. https://www.aliexpress.com/item/1005007254996218.html
    Helpful post? Buy me a coffee.
  • #11 21459590
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    Zigbee it will run right away, no need to flash, but as if you want to experiment it is also possible to dump and upload the memory:
    How to read and back up the flash memory of a BL602/BL702/etc device using BLDevCube? .

    In the meantime I have completed the eWeLink E14 with BW2L and BL602, it is flashable but I had to desolder the module because the programming pads are on the bottom of the BW2L.
    Helpful post? Buy me a coffee.
  • #12 21461233
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    I flashed this (18W version):
    Image depicting the purchase and programming of a ZigBee Tuya WiFi 18W smart bulb and a CB2L electronic board. .
    Unfortunately the CB2L programming pad is on the bottom. I had to solder it out. Problematic copy.

    I ordered one today:
    Advertisement for COOLO EWeLink WiFi Zigbee smart LED light bulbs, 15W and 18W. .
    15W eWeLink WiFi COOLO.
    Helpful post? Buy me a coffee.
  • #13 21463754
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    The E14 led mentioned earlier in this topic from eWeLink turned out to use BL602. Today I also ordered an E14, but not from eWeLink, but from Tuya, to see if it would also be a BL602 or perhaps further BK7231.
    Colorful E14 Tuya LED bulb with WiFi and Zigbee features. .
    Helpful post? Buy me a coffee.
  • #14 21468442
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    p.kaczmarek2 wrote:
    .
    Received - 2025.03.06 There is an LN882H with BP5758 inside (not PWM!). KA0600152-ibbd
    Helpful post? Buy me a coffee.
  • #15 21468963
    divadiow
    Level 38  
    Posts: 4835
    Help: 420
    Rate: 852
    p.kaczmarek2 wrote:
    The E14 led mentioned earlier in this topic from eWeLink turned out to use BL602

    Assuming eWeLink-C3009-EW-E14-BWL2-bulb-20250225.bin is from this bulb:

    Code: Text
    Log in, to see the code


    In eWeLink app:
    FW Name: CK-BL602-5PWM-01
    Screenshot showing device information with the name Light and current firmware version 1.1.1, offering an update to 1.5.0.

    Offers update to 1.5.0
    eWeLink firmware update screen with instructions.

    which is downloaded from http://52.57.99.135:8088/ota/rom/UOqtau8qtAt8...1024.new.2.bin?deviceid=xxxxxxxxxxxxxxxxxxxxx
    (deviceID removed)

    After update the boot log is more verbose. Recently built.

    Code: Text
    Log in, to see the code
    Attachments:
    • user1.1024.new.2.bin (539.81 KB) You must be logged in to download this attachment.
  • #16 21469247
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    @divadiow the Matter bulb also arrived:
    Smart LED bulb packaging with Matter technology.
    LED board with ESP8266 module.
    Close-up of an electronic board with an ESP8266-WROOM-05 module and LED lights.
    Image of an LED bulb held in hands with a QR code and serial number.
    ESP8684-WROOM-05, I didn't research it yet. I hope it's not flash-protected?

    Added after 44 [seconds]:

    Found this: ESP8684 is the new nomenclature for ESP32-C3 based modules
    Helpful post? Buy me a coffee.
  • #17 21469251
    divadiow
    Level 38  
    Posts: 4835
    Help: 420
    Rate: 852
    ooh. I hope it isn't too, but I have a small pile of ESP Matter devices that are :(
  • #18 21469307
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    Do you know the debug log output baud rate for this module?
    Helpful post? Buy me a coffee.
  • #19 21469308
    divadiow
    Level 38  
    Posts: 4835
    Help: 420
    Rate: 852
    74880?
  • #20 21469327
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    Normal mode:
    
    ESP-ROM:esp8684-api2-20220127
    Build:Jan 27 2022
    rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT)
    SPIWP:0xee
    mode:DIO, clock div:1
    Valid secure boot key blocks: 0
    ECDSA ESP-ROM:esp8684-api2-20220127
    Build:Jan 27 2022
    rst:0xf (BROWNOUT_RST),boot:0xc (SPI_FAST_FLASH_BOOT)
    SPIWP:0xee
    mode:DIO, clock div:1
    Valid secure boot key blocks: 0
    ECDSA secure boot verification succeeded
    load:0x3fcd5d78,len:0x203c
    load:0x403acb70,len:0x6bc
    load:0x403aeb70,len:0x485c
    load:0x403ba000,len:0x2068
    entry 0x403acb70
    W (178) boot: custom bootloader with compress ota!
    ECDSA zero_code_product: enter main: 523 ms
    
    zero_code_product: Current Free Memory: 122100, Minimum Ever Free Size: 122088, Largest Free Block: 112640
    zero_code_core: Signature verification successful
    E (1125) factory_reset: Reboot count: 1, reset reason: 15
    light_matter: restore done: 868 ms
    
    E (1227) wifi:failed to post WiFi event=2 ret=259
    E (4036) wifi:failed to post WiFi event=1 ret=259
    E (4131) wifi:failed to post WiFi event=3 ret=259
    zero_code_core: Current Free Memory: 86080, Minimum Ever Free Size: 58644, Largest Free Block: 59392
    controller lib commit: [77e7dbb]
    controller rom commit: [3314f9d]
    chan:1,max_power:80
    chan:2,max_power:80
    chan:3,max_power:80
    chan:4,max_power:80
    chan:5,max_power:80
    chan:6,max_power:80
    chan:7,max_power:80
    chan:8,max_power:80
    chan:9,max_power:80
    chan:10,max_power:80
    chan:11,max_power:80
    chan:12,max_power:80
    chan:13,max_power:80
    chan:14,max_power:80
    E (4773) chip[ZCL]: Duplicate attribute override registration failed
    matter_one_core: Current Free Memory: 13108, Minimum Ever Free Size: 13108, Largest Free Block: 9984
    matter_one_core: Current Free Memory: 13108, Minimum Ever Free Size: 13108, Largest Free Block: 9984
    matter_one_core: Current Free Memory: 13108, Minimum Ever Free Size: 13084, Largest Free Block: 9984
    matter_one_core: Current Free Memory: 13108, Minimum Ever Free Size: 13084, Largest Free Block: 9984
    matter_one_core: Current Free Memory: 13108, Minimum Ever Free Size: 13084, Largest Free Block: 9984
    matter_one_core: Current Free Memory: 13096, Minimum Ever Free Size: 11576, Largest Free Block: 9984
    chan:1,max_power:80
    chan:2,max_power:80
    chan:3,max_power:80
    chan:4,max_power:80
    chan:5,max_power:80
    chan:6,max_power:80
    chan:7,max_power:80
    chan:8,max_power:80
    chan:9,max_power:80
    chan:10,max_power:80
    chan:11,max_power:80
    chan:12,max_power:80
    chan:13,max_power:80
    chan:14,max_power:80
    matter_one_core: Current Free Memory: 13096, Minimum Ever Free Size: 11576, Largest Free Block: 9984
    matter_one_core: Current Free Memory: 13056, Minimum Ever Free Size: 11576, Largest Free Block: 9984
    matter_one_core: Current Free Memory: 13056, Minimum Ever Free Size: 11576, Largest Free Block: 9984
    matter_one_core: Current Free Memory: 13056, Minimum Ever Free Size: 11576, Largest Free Block: 9984
    zero_code_core: Current Free Memory: 23864, Minimum Ever Free Size: 10668, Largest Free Block: 13056
    zero_code_product: Current Free Memory: 23864, Minimum Ever Free Size: 10668, Largest Free Block: 13056
    factory_reset: Current Free Memory: 27412, Minimum Ever Free Size: 10668, Largest Free Block: 13056
    factory_reset: Current Free Memory: 27412, Minimum Ever Free Size: 10668, Largest Free Block: 13056
    
    


    Boot mode:
     
    ESP-ROM:esp8684-api2-20220127                    
    Build:Jan 27 2022                                                
    rst:0x3 (RTC_SW_SYS_RST),boot:0x4 (DOWNLOAD(UART0))            
    Saved PC:0x40054770                                      
    Download boot modes disabled
    
    Helpful post? Buy me a coffee.
  • #21 21469338
    divadiow
    Level 38  
    Posts: 4835
    Help: 420
    Rate: 852
    :( oh dear
  • #22 21469421
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    Well, it seems I don't have much options. Buying a replacement module would cost too much, maybe at most I could try to botch there WB2S that I received from a reader... but it's not pin to pin compatible...
    Helpful post? Buy me a coffee.
  • #23 21469470
    divadiow
    Level 38  
    Posts: 4835
    Help: 420
    Rate: 852
    yeh, ESP Matter devices aren't often much fun it seems
  • #24 21469723
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    Is there a way to tell whether Matter device is using ESP or BK from the outside? Before buying...
    Helpful post? Buy me a coffee.
  • #25 21469802
    divadiow
    Level 38  
    Posts: 4835
    Help: 420
    Rate: 852
    hmm. I thought I had a kind of pattern to it. Moes can sometimes be ESP. The CozyLife /Aiyatto stuff has been a good bet so far

    https://www.elektroda.com/rtvforum/topic4081005.html
    https://www.elektroda.com/rtvforum/topic4075524.html
    https://www.elektroda.com/rtvforum/topic4077326.html

    I had a feeling that the homekit stuff were less likely to be ESP, but I don't know what I'm basing that on. As for labelling... I don't think so.
  • #26 21473843
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    Two bulbs arrived today.
    - Smart Life/Tuya Smart TY-E14-220VB*AT 5W
    Advertisement for a smart RGB LED bulb with WiFi and Bluetooth features.
    https://pl.aliexpress.com/item/1005007654887555.html
    Box of a smart bulb model C3009.
    Open LED light showing diodes and an electronic component.
    Electronic circuit inside a device with yellow insulation.
    LN882H

    - COOLO eWeLink - EW-A60-15W
    Advertisement promoting Zigbee WiFi smart LED bulbs.
    https://www.aliexpress.com/item/1005006412570573.html
    It's BW2L as well
    Helpful post? Buy me a coffee.
  • #27 21877012
    Baustromverteiler
    Level 6  
    Posts: 6
    Rate: 2
    So I recently got the the same bulb, but I cant enter download mode ... the GPIOA_9 pin is connected to the SP21 pad (checked with a multimeter) but when I try to boot into download mode the serial terminal just stays dark, the device only comes back to life if I remove the connection of SP21 to GND. Here is the bootlog, any chance they changed something in the firmware or am I just too dumb?


    
    bootloader build time: 13:48:19
    config item not found perip_param value
    -- tuya project compile time: Jul 24 2023 10:07:45--
    ble mac[98:7a:d7:2d:17:f8]
    [BLIB_I]BLIB Ver: 1.0.3 [build time:Jan 19 2023 12:14:45][0x010003ff]
    xTaskCreate, name: rw_task, priority: 9, stack size: 2048
    xTaskCreate, name: worker, priority: 2, stack size: 1536
    xTaskCreate, name: ty_main, priority: 3, stack size: 4096
    xTaskCreate, name: IDLE, priority: 0, stack size: 1024
    xTaskCreate, name: Tmr Svc, priority: 10, stack size: 2048
    Before enter tuya_main, Total:164284; Free:151944
    GPIOA_9 high level, will enter Normal mode!
    Failed to enter ate mode! Start tuya user main.
    xTaskCreate, name: tuya_app_main, priority: 4, stack size: 4096
    xTaskCreate, name: TUYA_TCPIP, priority: 9, stack size: 2048
    tkl_ethernetif_init
    tkl_ethernetif_init
    [01-01 00:00:00 ty I][lr:0x100c8f17] mqc app init ...
    xTaskCreate, name: wq_system, priority: 3, stack size: 5120
    [01-01 00:00:00 ty I][tal_thread.c:184] thread_create name:wq_system,stackDepth:5120,totalstackDepth:7168,priority:3
    xTaskCreate, name: wq_highpri, priority: 4, stack size: 4096
    [01-01 00:00:00 ty I][tal_thread.c:184] thread_create name:wq_highpri,stackDepth:4096,totalstackDepth:11264,priority:4
    xTaskCreate, name: sys_timer, priority: 5, stack [01-01 00:00:00 ty D][tal_thread.c:203] Thread:wq_highpri Exec Start. S
    et to Runningsize: 4096
     Stat
    [01-01 00:00:00 ty D][tal_thread.c:203] Thread:sys_timer Exec Start. Set to Running Stat
    [01-01 00:00:00 ty I][tal_thread.c:184] thread_create name:sys_timer,stackDepth:4096,totalstackDepth:15360,priority:5
    [01-01 00:00:00 ty E][lr:0x100d3da5] uf_open 8 err 8
    [01-01 00:00:00 ty E][soc_flash.c:77] uf file 8 can't open and read
    [01-01 00:00:00 ty E][light_memory.c:102] power mem read err
    [01-01 00:00:00 ty N][lr:0x100750c7] reset is 0>>
    xTaskCreate, name: thread_shade, priority: 5, stack size: 2048
    [01-01 00:00:00 ty N][lr:0x10088c87] ble serv not closed, forbid open!
    [01-01 00:00:00 ty N][lr:0x10074a49] BleSwitch=1
    [01-01 00:00:00 ty E][lr:0x100d3da5] uf_open 8 err 8
    [01-01 00:00:00 ty E][soc_flash.c:77] uf file 8 can't open and read
    [01-01 00:00:00 ty E][light_memory.c:102] power mem read err
    [01-01 00:00:00 ty N][lr:0x100750c7] reset is 0>>
    [01-01 00:00:00 ty N][lr:0x10074a67] first bright up
    [01-01 00:00:00 ty N][lr:0x100750c7] reset is 0>>
    [01-01 00:00:00 ty N][lr:0x100bff7b] key_addr: 0x1ec000   block_sz 4096
    [01-01 00:00:00 ty N][lr:0x100c0255] get key:
    0xbf 0xcb 0xc0 0x92 0x8 0x63 0x76 0xdd 0xc9 0xaa 0xd1 0x15 0xe2 0x90 0x90 0xdf 
    [01-01 00:00:00 ty N][lr:0x10083e21] uni_random_init...
    [01-01 00:00:00 ty N][lr:0x100840c5] tuya_tls_rand_init ok!
    ----- tkl_watchdog_init
    wdg shift_left_num:0x10, set num:65535, top:0x0d
    xTaskCreate, name: health_monitor, priority: 5, stack size: 1536
    [01-01 00:00:00 ty E][lr:0x100c862b] logseq empty
    tkl_cpu_sleep_mode_set 95 1 0
    tkl_cpu_sleep_mode_set 95 0 0
    tkl_wifi_set_lp_mode 1566, en 0, dtim 0
    [01-01 00:00:00 ty E][tal_wifi.c:714] tal_wifi_lp_dis: set wifi lp mode fail(-26880)
    [01-01 00:00:00 ty N][lr:0x100ab26b] mf is open need stop fastconnect
    set work mode 1, is open 0, current ln mode: 0
    wifi not start, turn on first
    adapt wifi start <m:1>, hw_ready:0
    start rf preprocess and image cal
    [WLIB_E]idx=00, iq_hex_cal=0x807A, i=128, q=122, iavg= 71, qavg= 25
    [WLIB_E]idx=01, iq_hex_cal=0x8076, i=128, q=118, iavg= 49, qavg=  6
    [WLIB_E]idx=02, iq_hex_cal=0x8070, i=128, q=112, iavg= 59, qavg= 16
    [WLIB_E]idx=03, iq_hex_cal=0x7E68, i=126, q=104, iavg= 18, qavg= 44
    [WLIB_E]idx=04, iq_hex_cal=0x795E, i=121, q= 94, iavg= 33, qavg= 44
    [WLIB_E]idx=05, iq_hex_cal=0x807A, i=128, q=122, iavg= 61, qavg= 19
    [WLIB_E]idx=06, iq_hex_cal=0x8077, i=128, q=119, iavg= 21, qavg= 12
    [WLIB_E]idx=07, iq_hex_cal=0x8071, i=128, q=113, iavg= 20, qavg=  3
    [WLIB_E]idx=08, iq_hex_cal=0x7F68, i=127, q=104, iavg= 49, qavg= 12
    [WLIB_E]idx=09, iq_hex_cal=0x7A5E, i=122, q= 94, iavg=  9, qavg=  0
    [WLIB_E]idx=10, iq_hex_cal=0x807A, i=128, q=122, iavg= 58, qavg= 15
    [WLIB_E]idx=11, iq_hex_cal=0x8077, i=128, q=119, iavg= 26, qavg= 11
    [WLIB_E]idx=12, iq_hex_cal=0x8070, i=128, q=112, iavg= 14, qavg=  7
    [WLIB_E]idx=13, iq_hex_cal=0x7F68, i=127, q=104, iavg= 67, qavg=  9
    [WLIB_E]idx=14, iq_hex_cal=0x7A5E, i=122, q= 94, iavg=  8, qavg= 15
    [WLIB_E]idx=15, iq_hex_cal=0x807A, i=128, q=122, iavg= 56, qavg= 18
    [WLIB_E]idx=16, iq_hex_cal=0x8077, i=128, q=119, iavg= 17, qavg=  2
    [WLIB_E]idx=17, iq_hex_cal=0x8070, i=128, q=112, iavg=  9, qavg=  7
    [WLIB_E]idx=18, iq_hex_cal=0x7F68, i=127, q=104, iavg= 74, qavg= 29
    [WLIB_E]idx=19, iq_hex_cal=0x7A5E, i=122, q= 94, iavg=  6, qavg= 39
    [WLIB_E]idx=20, iq_hex_cal=0x7F7B, i=127, q=123, iavg= 45, qavg= 42
    [WLIB_E]idx=21, iq_hex_cal=0x7F78, i=127, q=120, iavg= 21, qavg= 30
    [WLIB_E]idx=22, iq_hex_cal=0x7E73, i=126, q=115, iavg= 44, qavg= 40
    [WLIB_E]idx=23, iq_hex_cal=0x7B6D, i=123, q=109, iavg= 58, qavg= 20
    [WLIB_E]idx=24, iq_hex_cal=0x7564, i=117, q=100, iavg= 66, qavg=  6
    xTaskCreate, name: wifi_cfg, priority: 5, stack size: 2048
    xTaskCreate, name: mac_task, priority: 9, stack size: 2048
    [WLIB_I]cap_comp = 10, xtal_capbank_tab:[0]:50 [1]:45 [2]:45 [3]:45 [4]:60 [5]:80 [6]:80 [7]:80 
    [WLIB_I][original]phy_tab_1f:0x56, phy_tab_20:0x3C
    [WLIB_I][efuse]phy_tab_1f:0x56, phy_tab_20:0x3C
    [WLIB_I][flash]phy_tab_1f:0x56, phy_tab_20:0x3C, tx_pwr_comp_all=0, tx_pwr_comp_b=0, tx_pwr_comp_gn=0
    [WLIB_I]==>temp_sect:2,phy_tab_1f:0x56,phy_tab_20:0x3C
    [WLIB_I]<==temp_sect:2,phy_tab_1f:0x56,phy_tab_20:0x3C
    XTAL CAP VAL:10.
    wifi stop
    wifi sta start
    [WLIB_I]LN882H WiFi Lib Ver: 1.1.3 [build time:Apr 24 2023 15:10:58][0x010103ff]
    [WLIB_I]STA_Startup.
    STA startup!
    [WLIB_I]Disconnected.
    [WLIB_I]HwInd:UKI:0
    [WLIB_I]Disconnected.
    current work mode 0
    No need to switch mode, mode:0
    xTaskCreate, name: mf_test, priority: 4, stack size: 5120
    adapt wifi start <m:2>, hw_ready:1
    [01-01 00:00:01 ty N][lr:0x1006bbe5] mf_init succ
    [01-01 00:00:01 ty N][lr:0x10075da9] < TuyaOS V:3.5.4 BS:40.00_PT:2.3_LAN:3.5_CAD:1.0.5_CD:1.0.0 >
    < BUILD AT:2023_01_09_16_12_01 BY ci_manage FOR tuyaos-iot AT ln882h >
    IOT DEFS < WIFI_GW:1 DEBUG:1 KV_FILE:0 LITTLE_END:1 SL:0 OPERATING_SYSTEM:98 RELIABLE_TRANSFER:0 >
     
    [01-01 00:00:01 ty N][lr:0x10075db3] xxxxxxxxxxxxxx_LN882H:1.0.0
    [01-01 00:00:01 ty N][lr:0x10075e7b] connect mode is 5
    [01-01 00:00:01 ty E][lr:0x100d3da5] uf_open 2 err 8
    [01-01 00:00:01 ty E][soc_flash.c:77] uf file 2 can't opetkl_thread_release, name: mf_test
    n and read
    [01-01 00:00:01 ty E][user_flash.c:211] Prod data read err
    [01-01 00:00:01 ty E][lr:0x100d3da5] uf_open 2 err 8
    [01-01 00:00:01 ty E][soc_flash.c:77] uf file 2 can't open and read
    [01-01 00:00:01 ty E][user_flash.c:211] Prod data read err
    [01-01 00:00:01 ty N][lr:0x1006bc09] prodtest find ssid: tuya_mdev_test1
    set work mode 1, is open 1, current ln mode: 0
    current work mode 0
    No need to switch mode, mode:0
    adapt wifi start <m:2>, hw_ready:1
    adapt wifi start <m:2>, hw_ready:1
    [01-01 00:00:01 ty N][lr:0x100a76cb] wifi soc init. pid:key4xxxxxxxxxxx firmwarekey:key4xxxxxxxxxxxxxxx ver:1.0.0
    [01-01 00:00:01 ty N][lr:0x100aae0d] start wifi link params validate, nc_tp:1 md:0
    [01-01 00:00:01 ty N][lr:0x100aae95] gw_wsm.nc_tp:1
    [01-01 00:00:01 ty N][lr:0x100aae9f] gw_wsm.md:0
    [01-01 00:00:01 ty N][lr:0x10098f61] Last reset reason: 0
    [01-01 00:00:01 ty N][lr:0x10098ff1] gw_cntl->gw_wsm.stat:1
    [01-01 00:00:01 ty N][lr:0x1009908b] gw_cntl->gw_if.abi:0 input:0
    [01-01 00:00:01 ty N][lr:0x10099099] gw_cntl->gw_if.product_key:keyxxxxxxxxx, input:key4xxxxxxxxxx
    [01-01 00:00:01 ty N][lr:0x100990a5] gw_cntl->gw_if.tp:0, input:0
    [01-01 00:00:01 ty N][lr:0x100990b9] gw_cntl->gw_if.firmware_key:key4xxxxxxxxx, input:key4xxxxxxxxxxx
    [01-01 00:00:01 ty N][lr:0x100996bd] enter success_proc
    [tkl_wifi_get_mac:1229] if: 0, mac: f8:17:2d:d7:7a:97
    ble_mac: 98:7a:d7:2d:17:f8
    [01-01 00:00:01 ty N][lr:0x100996d1] serial_no:xxxxxxxxxxxx
    [01-01 00:00:01 ty N][lr:0x10075fe7] frame init ok
    [01-01 00:00:01 ty N][lr:0x1006f44b] opMeshRemoterCtrlInit!
    xTaskCreate, name: remoter_cmd_deal, priority: 3, stack size: 2560
    set work mode 3, is open 1, current ln mode: 0
    current work mode 0
    [WLIB_I]Disc[01-01 00:00:01 ty I][tal_thread.c:184] thread_create name:remoteornnected.
    _cmd_deal,stackDepth:2560,totalstackDepth:28672,priority:3
    [01-01 00:00:02 ty N[WLIB_I]LN882H WiFi Lib Ver: 1.1.3 [build time:Apr 24 202][lr:0x10076055] ble remote ok
    3 15:10:58][0x010103ff]
    [WLIB_I]SoftAP_Startup.
    SoftAP startup!
    [WLIB_I]HwInd:UKI:0
    [WLIB_I]Channel scanning not needed
    [WLIB_I]User Preferred channel idx 5-0
    [WLIB_I]Selecting 20MHz ch from One of ... 0 1 2 3 4 5 
    [WLIB_I]Selected Channel Tbl Idx 5-0
    [WLIB_I]AP: Starting network in 5-0
    [WLIB_I]Connected.
    [WLIB_I]Status: Start Successful. Entering Enable State. 
    tkl_thread_release, name: tuya_app_
    [WLIB_I]Disconnected.
    [WLIB_I]Channel scanning not needed
    [WLIB_I]User Preferred channel idx 5-0
    [WLIB_I]Selecting 20MHz ch from One of ... 0 1 2 3 4 5 
    [WLIB_I]Selected Channel Tbl Idx 5-0
    [WLIB_I]AP: Starting network in 5-0
    [WLIB_I]Connected.
    [WLIB_I]Status: Start Successful. Entering Enable State. 
    [tkl_wifi_get_mac:1229] if: 0, mac: f8:17:2d:d7:7a:97
    ble_mac: 98:7a:d7:2d:17:f8
    [tkl_wifi_get_mac:1229] if: 1, mac: f8:17:2d:d7:7a:96
    ble_mac: 98:7a:d7:2d:17:f8
    ssid:SmartLife-7A97; pwd:; channel:6, ecn:0, max conn:1, hidden:0beacon:100, mac:f8:17:2d:d7:7a:96; start:1
    [WLIB_I]Disconnected.
    ip info: 
            ip:      192.168.176.1
            gw:      192.168.176.1
            netmask: 255.255.255.0
    server config:
            ip:       192.168.176.1
            ip start: 192.168.176.2
            ip end:   192.168.176.2
    port:67
    lease:2880
    renew:2880
    max client:1
    [WLIB_I]LN882H WiFi Lib Ver: 1.1.3 [build time:Apr 24 2023 15:10:58][0x010103ff]
    [WLIB_I]SoftAP_Startup.
    SoftAP startup!
    ap_startup_cb 137, wifi softap up
    ------- dhcp stop ----------
    -------DUMP DHCP SERVER_CONFIG----------
    server_config.server=192.168.176.1
    server_config.port=67
    server_config.lease=2880
    server_config.renew=2880
    server_config.ip_start=192.168.176.2
    server_config.ip_end=192.168.176.2
    server_config.max=1
    -----------------END--------------
    IP_POOL: i=0 192.168.176.2
    xTaskCreate, name: dhcpd, priority: 4, stack size: 1280
    dhcpd_task start...
    [WLIB_I]HwInd:UKI:0
    [WLIB_I]Channel scanning not needed
    [WLIB_I]User Preferred channel idx 5-0
    [WLIB_I]Selecting 20MHz ch from One of ... 0 1 2 3 4 5 
    [WLIB_I]Selected Channel Tbl Idx 5-0
    [WLIB_I]AP: Starting network in 5-0
    [WLIB_I]Connected.
    [WLIB_I]Status: Start Successful. Entering Enable State. 
    [WLIB_I]Disconnected.
    [WLIB_I]Channel scanning not needed
    [WLIB_I]User Preferred channel idx 5-0
    [WLIB_I]Selecting 20MHz ch from One of ... 0 1 2 3 4 5 
    [WLIB_I]Selected Channel Tbl Idx 5-0
    [WLIB_I]AP: Starting network in 5-0
    [WLIB_I]Connected.
    [WLIB_I]Status: Start Successful. Entering Enable State. 
    [01-01 00:00:02 ty N][lr:0x100abab3] cur stat:13  0x10075ad5 -->>
    [01-01 00:00:02 ty N][lr:0x100abaed] wifi netstat changed to:13  -->>
    [01-01 00:00:02 ty N][lr:0x100abb03] report wifi netstat[13] to callback  -->>
    [01-01 00:00:02 ty N][lr:0x10075aed] last wifi stat:255, wifi stat 13
    [01-01 00:00:02 ty N][lr:0x10075af9] size:111184
    [01-01 00:00:02 ty N][lr:0x10075c53] start ez & ap auto blink
    [01-01 00:00:02 ty N][lr:0x100add2d] timer stated, short timer:0x0, long timer:0x100adb6d
    [01-01 00:00:02 ty N][lr:0x100cc683] bt startup attr:ff
    [01-01 00:00:02 ty N][lr:0x10088457] upd product_id type:1 key4xxxxxxxxxxxxxxx
    xTaskCreate, name: host_main_thread_hdl, priority: 8, stack size: 5120
    [01-01 00:00:02 ty I][tal_thread.c:184] thread_create name:host_main_thread_hdl,stackDepth:5120,totalstackDepth:33792,pr
    iority:8
    [01-01 00:00:02 ty I][lr:0x100bb165] le acl buf sz = 251,max buf = 5 
     
    [01-01 00:00:02 ty I][lr:0x100b9b83] acl buf sz = 251, max pkt = 5, avail pkt = 5
     
    [01-01 00:00:02 ty I][lr:0x100bb62d] GAP init: stop adv
    [01-01 00:00:02 ty I][lr:0x1007e781] ble_hs_timer reset:100 
    [01-01 00:00:02 ty I][lr:0x10080ee5] Stack sync
    [01-01 00:00:02 ty I][lr:0x10080ec5] Init/Deinit Event
    [01-01 00:00:02 ty N][lr:0x10088419] ty bt sdk init success finish
    [01-01 00:00:02 ty N][lr:0x100bbb53] Start Adv
    [01-01 00:00:02 ty N][lr:0x100999cf] __devos_init_evt success
    [01-01 00:00:02 ty I][lr:0x100bb62d] GAP init: stop adv
    [01-01 00:00:02 ty I][lr:0x1007e781] ble_hs_timer reset:0 
    [01-01 00:00:02 ty N][lr:0x100bbb53] Start Adv
    [01-01 00:00:02 ty N][lr:0x10087fc9] ble adv updated
    xTaskCreate, name: TCP_ap_v4, priority: 5, stack size: 3584
    [01-01 00:00:02 ty I][tal_thread.c:184] thread_create name:TCP_ap_v4,stackDepth:3584,totalstackDepth:37376,priority:5
    [tkl_wifi_get_mac:1229] if: 0, mac: f8:17:2d:d7:7a:97
    ble_mac: 98:7a:d7:2d:17:f8
    [tkl_wifi_get_mac:1229] if: 1, mac: f8:17:2d:d7:7a:96
    ble_mac: 98:7a:d7:2d:17:f8
    [01-01 00:00:02 ty E][lr:0x100a93c9] timer is not run,wait
    [01-01 00:00:02 ty I][lr:0x1007e885] ble_hs_timer_exp:
    reboot type(0:power-on;1:soft-rst;2:wdt-rst): 0
    reboot count: 0
    [ln_ty_sdk_ver: 0.0.5_alpha or 0x00000500] [build time:2022-05-17_14:57:03]
    [Git info: develop_198ece8]
    [BLIB Ver: 1.0.3 or 0x010003ff] [build time:Jan 19 2023 12:14:45]
     
    


    edit: so I fooled around a bit with the timing of connecting sp21 to ground and got this:

    GPIOA_9 low level, will enter ATE mode!

    so the chip seems to recognize that the pin is low ... but I still cant flash or read from the device in this state ... isnt ATE mode some kind of test mode and not the desired download mode`?
  • #28 21877420
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14393
    Help: 650
    Rate: 12314
    I didn't pay attention to this log. Can anyone check? @divadiow ?
    I would still suggest testing different baud rates, in both our flasher and original LN882H tool. How do you connect this, did you try swapping RX and TX, how do you power the module?
    Helpful post? Buy me a coffee.
  • #29 21877425
    insmod
    Level 31  
    Posts: 1353
    Help: 160
    Rate: 425
    It shouldn't be printing anything if in boot mode.

    A9 must be low before powering it up.
    If there's no log - boot mode. To double check - open COM port in any terminal program at 115200 baud and write "version".
    It should respond with "Mar 14 2021/00:23:32"
  • #30 21877429
    divadiow
    Level 38  
    Posts: 4835
    Help: 420
    Rate: 852
    power off/unplug USB port and 3.3v to device in between flash attempts. A9 grounded before powering-on
📢 Listen (AI):

Topic summary

✨ The discussion revolves around flashing the LN882H TNCE RGBCW WiFi LED bulb (LN882HKI by Lightning Semi) with custom firmware, OpenLN882H, to enable cloud-free operation and integration with Home Assistant. Users share insights on the flashing process, which requires a USB to UART converter and does not necessitate disassembling the bulb. The conversation also touches on the challenges of OTA flashing due to MCU differences, with users discussing various models and their compatibility with different firmware. Several users report on their experiences with other LED bulbs, including those based on BL602 and BL702 microcontrollers, and share links to additional flashing tutorials and resources.
Generated by the language model.

FAQ

TL;DR: For owners of the TNCE TY-BK-A60 bulb, the LN882HKI can be flashed over 3.3 V UART using U0-RX, U0-TX, GND, and the P21 boot pad; as one expert put it, "A9 must be low before powering it up." This solves cloud lock-in and enables OpenLN882H with full RGBCW control and Home Assistant pairing on this LN882H-based E27 bulb. [#21877425]

Why it matters: This thread turns a cheap Tuya WiFi bulb into a documented, repeatable cloud-free smart-lighting target instead of a one-off hardware hack.

Option Chip / path Flash method Result from thread
TNCE TY-BK-A60 LN882HKI / LN882H UART on U0 + P21 boot pad Full RGBCW working in OpenLN882H
Some older ESP devices ESP family OTA / Tuya-convert Not applicable here
Similar AliExpress bulbs BL602 / CB2L / BW2L / BZ2L / LN882H Varies by module and pad access Must identify module first
Matter bulb example ESP8684-WROOM-05 UART download blocked Flash path effectively blocked

Key insight: On LN882H bulbs, success depends less on the app brand and more on the exact chip, UART port, and boot pin behavior. In this case, using U0 instead of U1 was the decisive fix when flashing initially failed.

Quick Facts

  • The documented bulb is a TNCE Smart E27 Bulb TCDPA601WL265, model TY-BK-A60, manufactured on September 10, 2024. [#21446472]
  • The original dump was read only partially, but the author reports the flash is not full 2 MB in useful data and appears to be 0xFF past the 1 MB mark. [#21446472]
  • The working OpenLN882H RGBCW mapping uses 5 PWM channels on LN882H pins 1, 4, 5, 6, and 7. [#21446472]
  • The bulb was bought on AliExpress for a few US dollars and was stated to sometimes cost as low as $1, making it a low-risk test target. [#21446472]
  • Similar bulbs in the same buying stream arrived with BL602, CB2L, BW2L, BZ2L, LN882H, and ESP8684 platforms, so the external listing does not guarantee the internal SoC. [#21473843]

How do you flash a TNCE TY-BK-A60 RGBCW WiFi bulb with an LN882HKI chip using a USB-to-UART adapter and the U0/P21 pads?

You flash it over the LN882H boot UART, not by OTA. 1. Open the E27 bulb enough to access the board, then solder wires to U0-TX, U0-RX, GND, and P21. 2. Pull P21 low, power the module from a 3.3 V USB-to-UART adapter, and start the LN882H flasher. 3. Remove the boot strap, power-cycle, join the OpenLN882H access point, then configure Wi-Fi and pins. The thread shows this worked without fully removing the screw thread and ended with full RGBCW support. [#21446472]

What is the P21 or SP21 pad on an LN882H bulb board, and how is it used to enter boot mode?

P21, also labeled SP21 on some boards, is the LN882H boot-selection pad tied to GPIOA_9. You use it by grounding it before power-up so the chip enters boot mode instead of normal firmware startup. Later troubleshooting confirmed that the pad continuity to GPIOA_9 was correct and that the module recognized the low state. If the pad is released, the bulb resumes normal operation and prints standard boot logs again. [#21877012]

Why doesn’t Tuya-convert or OTA flashing work on LN882HKI bulbs the way it does on some ESP-based devices?

Tuya-convert does not work here because the LN882HKI is not an ESP chip and the thread states the OTA path applies only to some ESP devices. The author says most newer devices are also protected, so even that route is shrinking. OpenLN882H follows a Tasmota-like idea, but it is separate firmware with its own HAL for LN882H. On this bulb, the practical method is wired flashing over UART, not cloud or OTA replacement. [#21447295]

Which UART pads should be used on the LN882H bulb for flashing, and how do U0 and U1 differ during troubleshooting?

Use U0, not U1, for flashing the LN882H bulb. The original guide identifies U0-TX and U0-RX as the programming UART, while a later user initially wired the U1 interface because it showed serial logs. That caused confusion: U1 exposed runtime output, but flashing only worked after moving the wires back to U0. This is the key troubleshooting difference: logs alone do not prove you are on the bootloader UART. [#21878105]

Why would an LN882H bulb print normal boot logs or enter ATE mode instead of download mode when GPIOA_9 is pulled low?

It does that when the timing, wiring, or UART choice is wrong. The thread shows one device printed “GPIOA_9 high level, will enter Normal mode!” when the boot strap was ineffective, and later printed “GPIOA_9 low level, will enter ATE mode!” when the low level was detected. In this case the real fault was using U1 instead of U0, so the user saw behavior that looked wrong even though the boot pin state changed. Power must be fully removed between attempts. [#21878105]

What baud rates and serial commands should be tested when an LN882H flasher shows no response in boot mode?

Start with 115200 baud in a terminal and send the command version. The thread’s recovery advice says that a module already in boot mode should answer with “Mar 14 2021/00:23:32”. Another expert also suggested testing different baud rates in both the custom flasher and the original LN882H tool if there is still no response. If you see no boot text at all, that can be normal for boot mode. [#21877425]

How do you verify that an LN882H module is really in boot mode after grounding A9/P21 before power-up?

Verify it by grounding A9/P21 before power-up, then checking that the module stops printing normal firmware logs. One expert states, “It shouldn’t be printing anything if in boot mode.” To confirm, open the COM port at 115200 baud and type version. A valid bootloader response is “Mar 14 2021/00:23:32”. If you still see Tuya startup logs, the chip is in normal mode or you are on the wrong UART. [#21877425]

What is GPIO Doctor in the OpenLN882H web app, and how does it help find RGB and CW pin assignments on an unknown bulb?

“GPIO Doctor” is a diagnostic web-app tool that probes unknown GPIO behavior, helps identify which pins drive LEDs or functions, and speeds board bring-up when no pin extraction exists for that platform. In this bulb, the author used it because LN882H did not yet have automatic GPIO extraction. That let them first identify the CW channel, then later find the RGB pins and finish a working RGBCW setup in the Configure Module menu. [#21446472]

How do you configure full RGBCW output in OpenLN882H for the Tuya TNCE Smart E27 bulb model TY-BK-A60 after flashing?

Set the discovered LED pins as five PWM outputs in OpenLN882H. The working JSON in the thread assigns pin 1 = PWM;4, 4 = PWM;5, 5 = PWM;1, 6 = PWM;2, and 7 = PWM;3 for the TY-BK-A60 on LN882H. The author first got CW working, then found the RGB channels and confirmed full RGBCW operation. After that, the bulb could be paired with Home Assistant like other OpenBK-style devices. [#21446472]

What’s the difference between an LN882H bulb that uses raw PWM channels and one that uses a BP5758 LED driver?

A raw-PWM bulb drives its LED channels directly from multiple transistor-switched PWM outputs, while a BP5758 bulb uses a dedicated LED driver IC. The first TY-BK-A60 teardown showed five nearby transistors and no I2C controller, so the author concluded it used raw PWMs. A later bulb received on 2025-03-06 still had an LN882H, but this time with BP5758 inside, explicitly noted as “not PWM!” That changes pin discovery and firmware setup strategy. [#21468442]

Which chips have been found inside similar AliExpress smart bulbs besides LN882H, such as BK7231, BL602, BL702, W800, CB2L, BW2L, and BZ2L?

The thread found a broad mix of platforms, not a single family. Reported examples include BL602 on BW2L, BL702 on BZ2L in a Zigbee bulb, CB2L, and additional LN882H units. The author also warns buyers not to assume they will get LN882H, BK7231, BL602, or W800 in advance, because identical-looking AliExpress bulbs vary internally. The practical rule is simple: identify the module after purchase, then choose the flashing method. [#21447336]

What is ATE mode on the LN882H, and how is it different from the actual UART download mode needed for flashing?

“ATE mode” is a factory test mode that confirms a boot pin state, runs manufacturing checks, and is not the same as the serial download bootloader used for firmware flashing. The evidence is direct: one user got “GPIOA_9 low level, will enter ATE mode!” yet still could not flash or read the device. Another expert then clarified that true boot mode should produce no normal log output and should answer the version command on the serial port. [#21877012]

How does OpenLN882H compare with Tasmota and ESPHome for cloud-free bulbs and Home Assistant integration?

OpenLN882H serves the same goal as Tasmota-style firmware: local control, no vendor cloud, and Home Assistant pairing. The author explicitly describes it as Tasmota/ESPHome-inspired and says it supports some Tasmota commands, but it is different code built around a dedicated HAL for LN882H. On this bulb, it exposed a setup AP, accepted Wi-Fi credentials, and then drove full RGBCW output after GPIO mapping. That makes it a practical cloud-free path for non-ESP Tuya bulbs. [#21447295]

What are the safest ways to open and reassemble an E27 smart bulb for flashing without fully disassembling the thread or damaging the LED board?

Open the top diffuser first, then disturb as little else as possible. The author removed the dome by hand, then carefully pried the LED board, noting that this step was the risky one and broke part of the edge. The important takeaway is that full disassembly was unnecessary: the flashing pads were reachable without removing the E27 thread. Use controlled force, support the board evenly, and plan wiring before levering the LED plate. [#21446472]

How can you tell from the outside whether a Matter smart bulb is more likely to use an ESP8684/ESP32-C3 module or a Beken-based module before buying?

You usually cannot tell reliably from the outside. One participant asked exactly that, and the reply was that there was no dependable labeling pattern, only weak brand-level guesses. The thread mentions some Moes devices can be ESP, and CozyLife / Aiyatto products had looked promising, but this was not presented as a rule. A Matter bulb in the same discussion arrived with ESP8684-WROOM-05, and its UART download mode was blocked, showing why external branding is a poor predictor. [#21469802]
Generated by the language model.
ADVERTISEMENT