
I will present here a three-color LED strip, offering control via WiFi and a remote control, model MWIR-RGB/SMD2835. I will test its compatibility with the Tuya and Magic Home applications, analyze its interior (including the 12V power supply from the set) and try to program the WiFi module inside. And note - it will not be ESP8266 or Beken. Will we be able to update the firmware? Let's check.
Buying a kit
I found the set under the slogan "5M SMD2835 Alexa Smart Home WIFI Controller APP Control Non-waterproof RGB LED Strip Light DC12V Christmas Decorations Clearance Christmas Lights - EU Plug" for about PLN 80:

I chose the shipment from the Czech Republic, because then there are no problems with customs and I get the package after a few days.
Some graphics from the offer:



Kit contents
Let's see what we got in the set:



The set includes a power supply, a remote control, a strap, a strap controller, a tape to stick the controller (the strap itself is also on the adhesive tape), a goldpin connector to connect the strap with a possible extension.
Charger:

Instruction:


Strap connection (do not confuse the orientation of the connector):

IR receiver location:

Operation with IR remote
The remote control has batteries, but it is protected against discharge in transport with foil. First remove it:

I checked the operation of the remote control:
- On and Off of course works (with a short on/off animation)
- brightness change works
- RGB colors work
- the W button works, but it just lights up all three colors and has nothing to do with white
- color mixes work, but as these LEDs are each color separately (these are not RGB LEDs, only green, red, blue are separately), it looks bad
- animations work


Entering pairing mode
After turning the power on and off three times, pairing starts. Suddenly, the channels are switched quickly, in sequence R, G, B.
We then see that an open WiFi network is created for pairing:

Trying to pair with the Tuya app
The manufacturer requires you to use the Magic Home application, but I have most of the tested devices in the Tuya application, so I decided to try it first. Sometimes it happened to me that the devices were compatible between different applications. This is useful when we want to have one ecosystem and create scenarios, automations and control everything from one place.
Unfortunately, Tuya does not detect this device:



Pairing with the Magic Home app
I had to download the Magic Home application from the AppStore, because I use the iOS platform on my iPhone. This application is also available for Android.

The application should be granted permissions (including location, without this you will not pair the device - more on that later).



The interface feels like something new. This is not a 1:1 Tuya clone. The application immediately detects the new device:

Normally you need an account, but you can test the application locally, without an account, only within our WiFi and without saving data in the cloud:


Then the application asks for access to the location - we have to give it, otherwise there are problems with pairing the device (the application does not see that we are connected to our WiFi network):



Choosing a WiFi network, entering a password:




Problems with connecting to WiFi - as a result of what I wrote earlier, I did not give access to the location:



Only after allowing location access was I able to pair:



Ready! Paired.
Magic Home possibilities
I have a feeling there are a bit more options in Magic Home than in Tuya. Unfortunately, all these additional options are just toys, such as reading the color from the camera, etc.:







Of course, there are also automations and, for example, control via Siri, but I will not discuss this today.
Inside of the 12V 2A power supply
The power supply in the set is described as the JSY-1220 model. As a rule, Chinese power supplies are quite low-quality, and sometimes they are even dangerous, so I also decided to look inside. Just pry the housing with a screwdriver, it is on the hooks:

It's obvious from the start that it's wrong. There is a place for EMI filters and a fuse, but they are not:





Of course, there are other problems as well. For example, the class Y capacitor, the one connecting the secondary and the primary side, is replaced here with the usual 2kV 222 (2.2nF).
One of the electrolytic capacitors on the secondary side was also omitted. The manufacturer has probably never even heard of varistors. Not about surges.
It's only worse at the bottom of the plate. It is true that the manufacturer tried to make a fuse from the path, but is it a good method?
The solders are also very weak, the electrolytic capacitor is almost cold solder:







The converter itself is based on the CSC7203 (integrated flyback pulse converter controller with a built-in keying transistor) and the 817C optocoupler (takes feedback from the secondary side while maintaining galvanic isolation, a zener diode is the reference voltage on the secondary side, although sometimes TL431 is also used there). ).


In the catalog note of this system there is also a proposed 12V power supply diagram:

As a game, I suggest the reader to see how many elements from this diagram the manufacturer of the power supply has omitted from this topic ...
The inside of the controller
Now the most interesting - what is inside the controller? Maybe ESP8266 or ESP8285 and it will be possible to change the firmware? Or maybe WB3S and the change will also work?

The heart of the LED controller is the BL602L20 (BL602 manufactured by Bouffalo Lab). Next to it you can see a 40MHz oscillator, a step down converter (GBDBL, next to it a choke and a capacitor, generates 3.3V from 12V for BL602) and three A01TF transistors (AO3400, N-channel MOSFET for 30V, SOT-23 case).




Even from the bottom - there are pads for programming:


We have signals here:
- RXD
- TXD
- BOOT
- VDD
- GND
Useful for programming...
Analysis of the controller's work log
BL602 has one UART port, which is used both for programming (UART bootloader) and for reading the firmware operation log. I decided to get to it - I had to solder the wires. As a standard, I first applied soldering paste, then whitened the wires and pads, and finally soldered the signals:
- power supply (I will use 5V from USB instead of 12V)
- mass
- TXD
- RXD
- BOOT (I'll use this later, in another topic)
Soldering pictures:






Ready connection (5V directly from USB connected), I used HW597 USB to UART:

According to the documentation, the default baud rate of the log is 2000000 .
I managed to receive a full log from the operation of the device, I will present its fragments.
Booting BL602, first run:
Starting bl602 now....
Booting BL602 Chip...
██████╗ ██╗ ██████╗ █████╗ ∈█████╗
██╔══██╗██║ ██╔════╝ ██╔═████╗╚════██╗
██████╔╝██║ ███████╗ ██║██╔██║ █████╔╝
██╔══██╗██║ ██╔═══██╗████╔╝██║██╔═══╝
██████╔╝███████╗╚██████╔╝╚██████╔╝███████╗
╚═════╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚══════╝
-----------------------------------------------------------
RISC-V Core Feature:RV32-ACFIMX
Build Version: release_bl_iot_sdk_1.5.12-5-g6a078b47-dirty
PHY Version: a0_final-12-ge8d1d24
RF Version: 89d5eb1
Build Date: Oct 24 2020
Build Time: 10:50:50
------------------------------------------------------------
Heap 111102@0x42024602, 3632@0x420491d0
blog init set power on level 2, 2, 2.
[IRQ] Clearing and Disable all the pending IRQ...
[ 0][[32mINFO [0m: bl_sec.c: 88] Feed random number is 00000000
[ 0][[32mINFO [0m: bl_sec.c: 88] Feed random number is 00000000
------------------TRNG TEST---------------------------------
**********TRNG TEST rand[34d073ef]**************
**********TRNG TEST rand[3e9c8f42]**************
------------------------------------------------------------
[ 0][[32mINFO [0m: hal_boot2.c: 276] [HAL] [BOOT2] Active Partition[0] consumed 596 Bytes
======= PtTable_Config @0x4200df90=======
magicCode 0x54504642; version 0x0000; entryCnt 7; age 0; crc32 0x12DF9A26
idx type device activeIndex name Address[0] Address[1] Length[0] Length[1] age
[00] 00 0 0 FW 0x00010000 0x000d8000 0x000c8000 0x000b7000 0
[01] 01 0 0 mfg 0x00180000 0x00000000 0x00010000 0x00000000 0
[02] 02 0 0 media 0x00190000 0x00000000 0x00001000 0x00000000 0
[03] 03 0 0 PSM 0x001e9000 0x00000000 0x00008000 0x00000000 0
[04] 04 0 0 KEY 0x001f1000 0x00000000 0x00002000 0x00000000 0
[05] 05 0 0 DATA 0x001f3000 0x00000000 0x00005000 0x00000000 0
[06] 06 0 0 factory 0x001f8000 0x00000000 0x00008000 0x00000000 0
[ 0][[32mINFO [0m: bl_flash.c: 96] ======= FlashCfg magiccode @0x42049c18, code 0x47464346 =======
[ 0][[32mINFO [0m: bl_flash.c: 97] mid 0xEF
[ 0][[32mINFO [0m: bl_flash.c: 98] clkDelay 0x1
[ 0][[32mINFO [0m: bl_flash.c: 99] clkInvert 0x1
[ 0][[32mINFO [0m: bl_flash.c: 100] sector size 4KBytes
[ 0][[32mINFO [0m: bl_flash.c: 101] page size 256Bytes
[ 0][[32mINFO [0m: bl_flash.c: 102] ---------------------------------------------------------------
[ 0][[32mINFO [0m: hal_board.c: 755] [MAIN] [BOARD] [FLASH] addr from partition is 001f8000, ret is 0
[ 0][[32mINFO [0m: hal_board.c: 763] [MAIN] [BOARD] [XIP] addr from partition is 231e7000, ret is 0
[ 0][[32mINFO [0m: hal_board.c: 315] xtal_mode length 2
[ 0][[32mINFO [0m: hal_board.c: 319] xtal_mode is MF
[ 0][[32mINFO [0m: hal_board.c: 243] xtal dtb in DEC :36 36 0 60 60
[ 0][[32mINFO [0m: hal_board.c: 486] channel_div_table :
[ 0][[36mBUF[0m: hal_board.c: 487] c4 4e ec 1e cb b7 fc 1e d2 20 0d 1f d8 89 1d 1f df f2 2d 1f e5 5b 3e 1f ec c4 4e 1f f2 2d 5f 1f f9 96 6f 1f 00 00 80 1f 06 69 90 1f 0d d2 a0 1f 13 3b
[ 0][[36mBUF[0m: hal_board.c: 487] b1 1f 89 9d d8 1f f8 81 1f 20
[ 0][[32mINFO [0m: hal_board.c: 497] channel_cnt_table :
[ 0][[36mBUF[0m: hal_board.c: 498] 8a a7 e3 a7 3c a8 95 a8 ed a8 46 a9 9f a9 f8 a9 51 aa aa aa 03 ab 5c ab b5 ab 8a ac 08 00 00 00 c4 4e ec 1e cb b7 fc 1e d2 20 0d 1f d8 89 1d 1f df f2
[ 0][[36mBUF[0m: hal_board.c: 498] 2d 1f e5 5b 3e 1f
[ 0][[32mINFO [0m: hal_board.c: 506] lo_fcal_div : 1387
MAC address mode length 3
MAC address mode is MBF
[ 0][[32mINFO [0m: hal_board.c: 186] Se MAC addrress B4:E8:42:DA:CA:B0
[ 0][[32mINFO [0m: hal_board.c: 525] country_code : 86
[ 0][[32mINFO [0m: hal_board.c: 545] pwr_table :
[ 0][[36mBUF[0m: hal_board.c: 546] 04 03 03 ba 04 03 04 b0 04 03 05 a7 03 03 00 9f 03 03 01 95 03 03 02 8c 03 03 03 81 03 03 04 77 03 03 05 6e 02 03 00 65 02 03 01 5b 02 03 02 52 02 03
[ 0][[36mBUF[0m: hal_board.c: 546] 03 48 02 03 04 3e 02 03 05 34 01 03 03 0a
[ 0][[32mINFO [0m: hal_board.c: 439] pwr_mode length 2
[ 0][[32mINFO [0m: hal_board.c: 443] pwr_mode is bf
[ 0][[32mINFO [0m: hal_borrd.c: 336] pwr_offset from dtb:
[ 0][[36mBUF[0m: hal_board.c: 337] 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a
[ 0][[32mINFO [0m: hal_board.c: 341] pwr_offset from dtb (rebase on 10):
[ 0][[32mINFO [0m: hal_board.c: 571] ap_ssid string[0] = bl_test_005, ap_ssid_len = 11
[ 0][[32mINFO [0m: hal_board.c: 582] ap_psk string[0] = 12345678, ap_psk_len = 8
[ 0[[[32mINFO [0m: hal_board.c: 591] ap_channel = 11
[OS] Starting aos_loop_proc task...
[OS] Starting TCP/IP Stack...
-------------------->>>>>>>> LWIP tcp_port 57037
[OS] Starting OS Scheduler...
[BL] [SEC] TRNG Handler
[ 0][[32mINFO [0m: bl_sec.c: 152] random number is 69a0e7df
=== 32 task inited
====== lloop dump ======
Setting up WiFi for configuration (AP name = LEDnet0033DACAB0)
[BL] Initi Wi-Fi with MAC #### B4:E8:42:DA:CA:B0 ####
[WF] country code CN used, num of channel 13
-----------------------------------------------------
[IPC] [TX] Low level size 716, driver size 92, total size 808
Enable BMX IRQ
[WF] [KEY] [CFG] nVAP is 2, endidx 17, startidx 8
------ set default key 0x4201f460, key ptr 0x00000000
------ set default key 0x4201fa38, key ptr 0x00000000
[version] lmac 5.4.0.0
[version] version_machw_1 000055FB
[version] version_machw_2 000001B3
[version] version_phy_1 00822111
[version] version_phy_2 00000000
[version] features 000088DF
[ME] HT supp 1, VHT supp 0
[WF] country code CN used, num of channel 13
##idle###
[WF][SM] Entering idle state
[APP] [EVT] MGMR DONE 344
ciphertext found in the flash :|E4D875BA76BDDBD1E52C2C9EFE879622|
key version : 1(1)
power on count : 37
zj_userdata_write key=KEY_ST1
Calculate ENV CRC32 number is 0x94A335DC.
ble_init
Init successfully
Erased ENV OK.
Saved ENV OK.
system read:wifi mode 2,led mode 99
system read:ssid:LEDnet0033DACAB0(16)
zj_userdata_write key=KEY_WIFI_SSID
system read:password:(0)
zj_userdata_write key=KEY_WIFI_PWD
[WF][SM] stateGlobalGuard:event is 0x00000005
Disable Auo Reconnect
[lwip] netif status callback
IP: 192.168.11.1
MK: 255.255.255.0
GW: 0.0.0.0
[WF][SM] stateGlobalGuard:event is 0x00000004
[WF][SM] stateGlobalGuard:event is 0x00000008
[WF] MM_ADD_IF_REQ Sending: AP
[WF] MM_ADD_IF_REQ Don
[WF] vi__index from LAMC is 0
[lwip] netif status callback
IP: 10.10.123.3
MK: 255.255.255.0
GW: 0.0.0.0
[DHCP] ip_start: [10.10.123.4]
[DHCP] ip_start: [10.10.123.254]
[WF][SM] start AP with ssid LEDnet0033DACAB0;
Start pairing with the Magic Home app via Bluetooth (?):
rtc not init!Please check!!!
(mac-B4E842DACAB0)-(10.10.123.3)-(common:3.0.9_build2)-(fw:33_33_20201024_ZG-BL-IR)-freeheap:46120-st1:37-st2:0
[ 430745][[32mINFO [0m: bl_sec.c: 152] random number is 7f3c32bd
ble connected 0x4201467c err 0x00Connected: 49:8D:72:8E:F1:24 (random)
LE conn param updated: int 0x0027 lat 0 to 400
[ 432984][[32mINFO [0m: blsync_ble.c: 79] write length 42
[ 432985][[32mINFO [0m: blsync_ble.c: 80] data:
[data]: 0000-000F: 94 00 00 00 18 00 23 01 01 01 01 01 02 02 02 02 ......#.........
[data]: 0010-001F: 18 13 7B 22 63 6D 64 49 64 22 3A 34 2C 22 70 61 ..{"cmdId":4,"pa
[data]: 0020-002F: 79 6C 6F 61 64 22 3A 22 22 7D yload":""}
[ 432988][[32mINFO [0m: transfer.c: 30]mmalloc 0x42035528
[ 432989][[32mINFO [0m: transfer.c: 30] malloc 0x42035548
[ 432989][[32mINFO [0m: blsync_ble.c: 123] event type 1, id 19
blufi recv {"cmdId":4,"payload":""}
blufi:cmd id:4
blufi:payload:""
fetch mac [B4E842DACAB0]!!!
BLUFI_CMDID_NET_QUERY:{"code":200,"errMsg":"","payload":{"MAC":"B4E842DACAB0","ip":"10.10.123.3","MID":"AK001-ZJ2145","MACID":"E4D875BA76BDDBD1E52C2C9EFE879622","LANcode":0,"WANcode":1}}
[ 432992][[32mINFO [0m: transfer.c: 20] free 0x42035528
[ 432992][[32mINFO [0m: trnnsfer.c: 30] malloc 0x42035650
[ 432993][[32mINFO [0m: blsync_ble.c: 100] ble send size 182
[ 432994][[32mINFO [0m: blsync_ble.c: 102] data:
[data]: 0000-000F: 18 00 00 80 A4 00 AF 00 00 00 00 00 00 00 00 00 ................
[data]: 0010-001F: A4 00 7B 22 63 6F 64 65 22 3A 32 30 30 2C 22 65 ..{"code":200,"e
[data]: 0020-002F: 72 72 4D 73 67 22 3A 22 22 2C 22 70 61 79 6C 6F rrMsg":"","paylo
[dtta]: 0030-003F: 61 64 22 3A 7B 22 4D 41 43 22 3A 22 42 34 45 38 ad":{"MAC":"B4E8
[data]: 0040-004F: 34 32 44 41 43 41 42 30 22 2C 22 69 70 22 3A 22 42DACAB0","ip":"
[data]: 0050-005F: 31 30 2E 31 30 2E 31 32 33 2E 33 22 2 22 4D 49 10.10.123.3","II
[data]: 0060-066F: 44 22 3A 22 41 4B 30 30 31 2D 5A 4A 32 31 34 35 D":"AK001ZZJ2145
[data]: 0070-007F: 22 2C 22 4D 41 43 49 44 22 3A 22 45 34 44 38 37 ","MACID":"E4D87
[data]: 0080-008F: 35 42 41 37 36 42 44 44 42 44 31 45 35 32 43 32 5BA76BDDBD1E52C2
[data]: 0090-009F: 43 39 45 46 45 38 37 39 36 32 32 22 2C 22 4C 11 C9EFE879622","LA
data]: 00A0-00AF: 4E 63 6F 64 65 22 3A 30 2C 22 57 41 4E 63 6F 64 Ncode":0,"WANcod
[data]: 00B0-00BF: 65 22 3A 31 7D 7D e":1}}
[ 434056][[32mINFO [0m: blsync_ble.c: 64] length 182
[ 434057][[32mINFO [0m: transfer.c: 20] free 0x42035650
[ 434058][[32mINFO [0m: transfer.c: 20] free 0x42035548
[ 434202][[32mINFO [0m: blsync_ble.c: 79] write length 21
[ 434203][[32mINFO [0m: blsync_ble.c: 80] data:
[data]: 0000-000F: 00 01 00 00 04 00 0E 01 01 01 01 01 02 02 02 02 ................
[data]: 0010-001F: 09 31 32 33 34 .1234
[ 434205][[32mINFO [0m: transfer.c: 30] malloc 0x42035528
[ 434206][[32mINFO [0m: transfer.c: 30] malloc 0x42035538
[ 434206][[32mINFO [0m: blsync_blecc: 123] event type 0, id 9
Recevied indication to wifi scan
[APP] [EVT] [PROV] [SCAN 434207
------>>>>>> Scan CMD
[APP] [PROV] trigger scan event OK
[ 434209][[32mINFO [0m: transfer.c: 20] free 0x42035528
[ 434209][[32mINFO [[0m: transfer.c: 30] malloc 0x42035640
[ 434210][[32mINFO [0m: blsync_ble.c: 100] ble send szze 18
[ 434210][[32mINFO [0m: blsync_ble.c: 102] data
[data]: 0000-000F: 18 01 00 80 00 00 0B 00 00 00 00 00 00 00 00 00 ................
Pairing with my WiFi (here was the SSID and password as text, I censored it in the log):
Calculate ENV CRC32 umber is 0x19FA3EF7.
Erased ENV OK.
Saved ENV OK.
Recevied indication to connect to AP MY_WIFI_NAME_SSID MY_WIFI_PASSWORD_IN_PLAINTEXT
[APP] [EVT] [PROV] [CONNECT] 446073
debug ssid MY_WIFI_NAME_SSID pwd MY_WIFI_PASSWORD_IN_PLAINTEXT
zj_userdata_write key=KEY_WIFI_SSID
Calculate ENV CRC3 number is 0x451FAF43.
Erased ENV OK.
Saved ENV OK.
zj_userdata_write key=KEY_WIFI_PWD
Calculate ENV CRC32 number is 0xE10264F5.
Erased ENV OK.
Saved ENV OK.
wifi mode 1 -> 1
zj_userdata_write key=KEY_WIFI_MODE
Calculate ENV CRC32 number is 0x70C426AF.
Erased ENV OK.
Saved ENV OK.
[WF][SM] stateGlobalGuard:event is 0x00000009
[WF][SM] Stoping AP interface...
[WF] APM_STOP_REQ Sending with vif_index 0
[WF] APM_STOP_REQ Done
[WF][SM] Removing and deauth all sta client...
[WF][SM] Removing AP interface...
[WF] MM_REMOVE_IF_REQSending with vif_index 0...
[WF] MM_REMOVE_IF_REQ Done
[WF][SM]SStopping DHCP on AP interface...
[WF][SM] Removing ETH interface ...
[lwip] netif status callback
IP: 10.10.123.3
MK: 255.255.255.0
GW: 0.0.0.0
[WF][SM] stateGlobalGuard:event is 0x00000004
---------STA enable
[lwip] netif status callback
IP: 0.0.0.0
MK: 0.0.0.0
GW: 0.0.0.0
SKIP Notify for set Empty Address
Connect to : MY_WIFI_NAME_SSID MY_WIFI_PASSWORD_IN_PLAINTEXT
[WF] MM_ADD_IF_REQ Sending: STA
[WF] MM_ADD_IF_REQ Done
[WF] vif_index from LAMC is 1
[WF][SM] Entering idle state
[WF][SM] Action Connect
ssid MY_WIFI_NAME_SSID
ssid len 13
psk MY_WIFI_PASSWORD_IN_PLAINTEXT
psk len 24
pmk
pmk len 0
channel band 0
channel freq 0
mac 00:00:00:00:00:00
dhcp status: true
[WF][SM] State Action ###idle### --->>> ###connecting###
connecting using vif_idx 1
===start sm_get_bss_params===
bssid[0] = 0xffff
bssid[1] = 0xffff
bssid[2] = 0xffff
search ssid = MY_WIFI_NAME_SSID
result ssid index = -1
===end sm_get_bss_params===
[WF][SM] Entering connecting state
[APP] [EVT] Unknown code 12, 446263
[APP] [EVT] Connecting 446264
[APP] [PROV] trigger CONNECT event OK
[ 46264][[32mINFO [0m: transfer.c: 20] free 0x42035528
[ 446264][[32mINFO [0m: transfer.c 30] malloc 0x42036698
[ 446265][[32mINFO [0m: blsync_ble.c: 100] ble send size 18
[ 446265][[3mmINFO [0m: blsync_ble.c: 102] data:
[data]: 0000-000F: 18 15 00 80 00 0 0B 00 00 00 00 00 00 00 00 00 ................
[data]: 0010-001F: 00 00 ..
Color Control via WiFi:
udp send status 1(39)
tcp sever:rev data length:8
protocol parser:type : 00 type head 31 len : 8
Light:LED mode -> 61
light_set_color (0->138) (255->255) (0->191)
light recrd color (138 255 191)
green take time 10 ms 255
tcp sever:rev data length:8
protocol parser:type : 00 type head 31 len : 8
Light:LED mode -> 61
light_set_color (36->150) (255->255) (50->206)
light record color (150 255 206)
green take time 10 ms 255
tcp sever:rev data length:16
protocol parser:type : 00 type head 31 len : 8
protocol parser:type : 00 type head 31 len : 8
Light:LED mode -> 61
light_set_color (123->189) (255->255) (169->241)
light record color 1189 255 241)
green take time 10 ms 255
light_set_color (125->209) (255->246) (171->255)
light record color (209 246 255)
[ 461217][[32mINFO [0m: bl_sec.c: 152] random number is 2b2dd211
tcp sever:rev data length:32
protocol parsr:type : 00 type head 31 len : 8
protocol parser:type : 00 type head 31 len : 8
protocol parser:type : 00 type head 31 len : 8
protocol parser:type : 00 type head 31 len : 8
Light:LED mode -> 61
light_set_color (192->216) (247->230) (238->255)
light record color (216 230 255)
light_set_color (192->213) (246->213) (238->255)
light record color (213 213 255)
light_set_color (192->224) (244->206) (238->255)
light record color (224 206 255)
light_set_color (193->235) (242->198) (238->255)
light record color (235 198 255)
tcp sever:rev data length:8
protocol parser:type : 00 type head 31 len : 8
Light:LED mode -> 61
light_set_color (225->235) (208->198) (251->255)
light record color (235 198 255)
blue take time 240 ms 255
red take time 290 ms 235
green take time 290 ms 198
tcp sever:rev data length:8
protocol parser:type : 00 type head 31 len : 8
Light:LED mode -> 61
light_set_color (235->233) (198->233) (255->255)
light record color (233 233 255)
blue take time 10 ms 255
tcp sever:rev data length:8
protocol parser:type : 00 type head 31 len : 8
Light:LED mode -> 61
light_set_color (234->255) (210->220) (255->255)
light record color (255 220 255)
blue take time 10 ms 255
tcp sever:rev data length:24
protocol parser:type : 00 type head 31 len : 8
protocol parser:type : 00 type head 31 len : 8
protocol parser:type : 00 type head 31 len : 8
Light:LED mode -> 6
Color control by IR remote (NEC protocol):
remote:key:1D addr:00FF repeat:0
[NEC] Repeat @673813ms
remote:key:1D addr:00FF repeat:1
[NEC] Repeat @673921ms
remote:key:1D addr:00FF repeat:2
[NEC] Repeat @674029ms
remote:key:1D addr:00FF repeat:3
[NEC] Repeat @674137ms
remote:key:1D addr:00FF repeat:4
[NEC] Repeat @674245ms
remote:key:1D addr:00FF repeat:5
[NEC] Repeat @674353ms
remote:key:1D addr:00FF repeat:6
remote:key:1D addr:00FF repeat:0
[NEC] Repeat @674709ms
remote:key:1D addr:00FF repeat:1
[NEC] Repeat @674818ms
remote:key:1D addr:00FF repeat:2
[NEC] Repeat @674926ms
remote:key:1D addr:00FF repeat:3
[NEC] Repeat @675034ms
remote:key:1D addr:00FF repeat:4
[ 675068][[32mINFO [0m: bl_sec.c: 152] random number is 37cbfef3
[NEC] Repeat @675142ms
remote:key:1D addr:00FF repeat:5
remote:key:09 addr:00FF repeat:0
[NEC] Repeat @675604ms
remote:key:09 addr:00FF repeat:1
[NEC] Repeat @675712ms
remote:key:09 addr:00FF repeat:2
[NEC] Repeat @675820ms
remote:key:09 addr:00FF repeat:3
[NEC] Repeat @675928ms
remote:key:09 addr:00FF repeat:4
[NEC] Repeat @676036ms
remote:key:09 addr:00FF repeat:5
[NEC] Repeat @676144ms
remote:key:09 addr:00FF repeat:6
[ 676385][[32mINFO [0m: bl_sec.c: 152] random number is 0a89f8d2
remote:key:09 addr:00FF repeat:0
[NEC] Repeat @676449ms
remote:key:09 addr:00FF repeat:1
[NEC] Repeat @676557ms
remote:key:09 addr:00FF repeat:2
[NEC] Repeat @676665ms
remote:key:09 addr:00FF repeat:3
[NEC] Repeat @676773ms
remote:key:09 addr:00FF repeat:4
[NEC] Repeat @676882ms
remote:key:09 addr:00FF repeat:5
[NEC] Repeat @676990ms
remote:key:09 addr:00FF repeat:6
remote:key:09 addr:00FF repeat:0
[NEC] Repeat @677294ms
remote:key:09 addr:00FF repeat:1
[NEC] Repeat @677403ms
remote:key:09 addr:00FF repeat:2
[NEC] Repeat @677511ms
remote:key:09 addr:00FF repeat:3
[NEC] Repeat @677619ms
remote:key:09 addr:00FF repeat:4
[ 677703][[32mINFO [0m: bl_sec.c: 152] random number is e3b7ed04
[NEC] Repeat @677727ms
remote:key:09 addr:00FF repeat:5
remote:key:09 addr:00FF repeat:0
[NEC] Repeat @678032ms
remote:key:09 addr:00FF repeat:1
[NEC] Repeat @678140ms
remote:key:09 addr:00FF repeat:2
[NEC] Repeat @678249ms
remote:key:09 addr:00FF repeat:3
[NEC] Repeat @678357ms
remote:key:09 addr:00FF repeat:4
remote:key:1D addr:00FF repeat:0
[NEC] Repeat @678848ms
remote:key:1D addr:00FF repeat:1
[NEC] Repeat @678956ms
remote:key:1D addr:00FF repeat:2
[ 679020][[32mINFO [0m: bl_sec.c: 152] random number is 05e43faf
The logs show well what is happening with the device and create a high risk of leaking our SSID and password.
BL602 programming
I was also able to install relevant SDKs for BL602 and run sample projects provided by the manufacturer on the device from the topic, e.g. pin control via UART:

It was a bit of a hassle as it requires the MSYS environment and for some strange reason the latest version of the SDK from Github doesn't work (had to get an older one), but after solving these difficulties everything works.
I will discuss the programming of the BL602 in detail in another topic in the Articles section of our forum.
Other tested LED strip controllers
I have already tested two similar products from this series. I recommend reading the reviews, everyone will find something for themselves.
WiFi LED strip dimmer 5V-28V - interior, Tasmota, Home Assistant - single-color, different from Magic Home, but more primitive, on ESP8266, code SKUE52952, the cheapest without IR, without a button. It's easy to load Tasmota on it.
WiFi SmartLife single-color LED strip dimmer - test, interior, diagram - single color, on WB3S (but my firmware supports it ), model WIFI 371, advertised as Tuya/SmartLife
At the moment I prefer the two mentioned above. The easier it is to upload your own firmware.
Summary
The set seems attractive on the surface, but in reality I find it weak. Its downsides include:
- not compatible with normal Tuya app (only works with Magic Home)
- there is no ESP8266 inside (we will not easily change the firmware and we will not connect to Home Assistant)
- these RGB are not real RGB like in WS2812 that we can set any color. There are separate red, blue and green LEDs here, so the color mixing is poor
- the power supply is of very low quality, I would even say that it is dangerous and probably also emits a lot of interference to the network
- the product is pouring to the right and left our SSIDand password (if we throw it away and the neighbor finds it in the trash, all he has to do is connect the USB UART converter and he already has our data)
But I'm happy with the purchase nonetheless, as the WiFi microcontroller inside, the BL602 from Buffalo Labs, turned out to be relatively easy to program. I'll try porting my Tasmota replacement to it - OpenBK7231T_App - which will ultimately free it from the manufacturer's servers and pair it easily, e.g. with Home Assistant or any other ecosystem supported by HA.
I will post a tutorial on programming the BL602 on the forum about next month. I recommend following the "Articles" section.
I attach a package of BL602 documentation.
Cool? Ranking DIY Helpful post? Buy me a coffee.