Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro

p.kaczmarek2 22 Mar 2022 23:32 1611 5
  • Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Witajcie moi drodzy.
    Przedstawię tu trzykolorowy pasek LED, oferujący sterowanie przez WiFi i pilota, model MWIR-RGB/SMD2835. Przetestuję jego kompatybilność z aplikacjami Tuya i Magic Home, przeanalizuję jego wnętrze (łącznie z zasilaczem 12V z zestawu) oraz spróbuję zaprogramować moduł WiFi, który znalazł się w środku. I uwaga - nie będzie to ani ESP8266, ani Beken. Czy uda się mu zmienić firmware? Sprawdźmy.

    Zakup zestawu
    Zestaw znalazłem pod hasłem "5M SMD2835 Alexa Smart Home WIFI Controller APP Control Non-waterproof RGB LED Strip Light DC12V Christmas Decorations Clearance Christmas Lights - EU Plug" za około 80zł:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Przesyłkę wybrałem z Czech, gdyż wtedy nie ma problemów z cłem a paczkę dostaję po kilku dniach.
    Kilka grafik z oferty:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro


    Zawartość zestawu
    Zobaczmy co otrzymaliśmy w zestawie:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    W zestawie jest zasilacz, pilot, pasek, kontroler paska, taśma do przyklejenia kontrolera (sam pasek też jest na taśmie klejącej), złącze goldpinowe do połączenia paska z ewentualnym przedłużeniem.
    Zasilacz:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Instrukcja:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Podłączenie paska (nie należy pomylić orientacji złącza):
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Lokalizacja odbiornika IR:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro

    Działanie z pilotem IR
    Pilot ma baterie, ale jest ona zabezpieczona przed wyładowaniem w transporcie folią. Najpierw należy ją usunąć:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Sprawdziłem działanie pilota:
    - On i Off oczywiście działa (z króciutką animacją włączenia/wyłączenia)
    - zmiana jasności działa
    - kolory R G B działają
    - przycisk W działa, ale on po prostu zapala wszystkie trzy kolory i nijak to ma się do białego
    - mieszanki kolorów działają, ale jako że te diody są osobno każdy kolor (to nie są diody RGB, tylko osobno jest zielona, czerwona, niebieska), to wygląda to słabo
    - animacje działają
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro

    Uruchomienie trybu parowania
    Po trzykrotnym cyklu włączenia i wyłączenia zasilania, włącza się parowanie. Nagle szybko przełaczają się kanały, kolejno R, G, B.
    Widzimy wtedy, że powstaje otwarta sieć WiFi przeznaczona do parowania:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro

    Próba parowania z aplikacją Tuya
    Producent nakazuje użyć aplikacji Magic Home, ale większość testowanych urządzeń mam w aplikacji Tuya, więc postanowiłem najpierw jej wypróbować. Czasem zdarzało mi się, że urządzenia były kompatybilne między różnymi aplikacjami. Jest to przydatne, gdy chcemy mieć jeden ekosystem i w nim tworzyć scenariusze, automatyzacje i sterować wszystkim z jednego miejsca.
    Niestety Tuya nie wykrywa tego urządzenia:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro


    Parowanie z aplikacją Magic Home
    Aplikację Magic Home musiałem pobrać z AppStore, gdyż korzystam z platformy iOS na moim iPhone. Aplikacja ta jest też dostępna na Androida.
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Aplikacji należy nadać uprawnienia (łącznie z lokalizacją, bez tego nie sparujecie urządzenia - o tym później).
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Interfejs przypomina coś nowego. To nie jest 1:1 klon Tuya. Aplikacja od razu wykrywa nowe urządzenie:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Normalnie trzeba mieć konto, ale można przetestować aplikację lokalnie, bez konta, tylko w obrębie naszego WiFi i bez zapisywania danych w chmurze:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Potem aplikacja prosi o dostęp do lokalizacji - musimy go jej dać, inaczej są problemy ze sparowaniem urządzenia (aplikacja nie widzi, że jesteśmy podłączeni do naszej sieci WiFi):
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Wybór sieci WiFi, podanie hasła:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Problemy z podłączeniem do WiFi - na skutek tego co pisałem wcześniej, nie dałem dostępu do lokalizacji:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Dopiero po zezwoleniu na dostęp do lokalizacji udało mi się sparować:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Gotowe! Sparowane.

    Możliwości Magic Home
    Mam wrażenie, że w Magic Home jest nieco więcej opcji niż w Tuya. Niestety te wszystkie dodatkowe opcje to tylko takie zabawki, jak przykładowo odczytywanie koloru z kamery, itp:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Oczywiście, są tu też automatyzacje i np. sterowanie poprzez Siri, ale tego już nie będę dzisiaj omawiać.


    Wnętrze zasilacza 12V 2A
    Zasilacz w zestawie opisany jest jako model JSY-1220. Z reguły chińskie zasilacze są dość niskiej jakości, a czasem są nawet wnet niebezpieczne, więc postanowiłem też do jego środka zajrzeć. Obudowę wystarczy podważyć śrubokrętem, jest na zaczepy:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Od początku widać, że jest źle. Jest miejsce na filtry EMI i bezpiecznik, ale ich nie ma:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Oczywiście są też inne problemy. Chociażby kondensator klasy Y, ten łączący stronę wtórną z pierwotną, jest tutaj zastąpiony zwykłym 2kV 222 (2.2nF).
    Jeden z kondensatorów elektrolitycznych po stronie wtórnej też został pominięty. O warystorach producent pewnie nawet wcale nie słyszał. Ani o przepięciach.
    Na spodzie płytki jest tylko gorzej. Co prawda widać, że producent próbował zrobić bezpiecznik ze ścieżki, ale czy to dobra metoda?
    Luty też są bardzo słabe, przy kondensatorze elektrolitycznym jest wręcz niemalże zimny lut:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Sama przetwornica zrealizowana jest na CSC7203 (zintegrowany kontroler przetwornicy impulsowej flyback z wbudowanym tranzystorem kluczującym) i transoptorze 817C (bierze sprzężenie zwrotne ze strony wtórnej zachowując izolację galwaniczną, jako napięcie odniesienia po stronie wtórnej jest dioda zenera, choć czasem stosuje się tam też np. TL431).
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    W nocie katalogowej tego układu jest też proponowany schemat zasilacza 12V:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Proponuje w ramach zabawy czytelnikowi popatrzeć ile z elementów z tego schematu pominął producent zasilacza z tego tematu...


    Wnętrze kontrolera
    Teraz najciekawsze - co jest w środku kontrolera? Może ESP8266 bądź ESP8285 i będzie można było zmienić firmware? A może WB3S i też zmiana się uda?
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Sercem kontrolera LED jest BL602L20 (BL602 produkcji Bouffalo Lab). Obok widać oscylator 40MHz, układ przetwornicy step down (GBDBL, obok niego dławik i kondensator, generuje 3.3V z 12V dla BL602) oraz trzy tranzystory A01TF (chyba AO3400, MOSFET z kanałem typu N na 30V, obudowa SOT-23).
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Jeszcze od spodu - są pady do programowania:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Mamy tu sygnały:
    - RXD
    - TXD
    - BOOT
    - VDD
    - GND
    Przydadzą się do programowania....


    Analiza logu pracy kontrolera
    BL602 ma jeden port UART, którego używa się zarówno do programowania (bootloader UART), jak i do odczytu logu z działania firmware. Postanowiłem się do niego dostać - trzeba było przylutować kabelki. Standardowo najpierw nałożyłem pastę do lutowania, potem pobieliłem kabelki i pady, i ostatecznie przylutowałem sygnały:
    - zasilanie (użyję 5V z USB zamiast 12V)
    - masa
    - TXD
    - RXD
    - BOOT (użyję tego później, już w innym temacie)
    Zdjęcia z lutowania:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Gotowe podłączenie (5V bezpośrednio z USB podpięte), użyłem HW597 USB to UART:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Zgodnie z dokumentacją, domyślny baud rate logu to 2000000.
    Udało mi się odebrać pełny log z pracy urządzenia, przedstawię jego fragmenty.
    Bootowanie BL602, pierwsze uruchomienie:
    Code:

    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][INFO  : bl_sec.c:  88] Feed random number is 00000000
    [         0][INFO  : bl_sec.c:  88] Feed random number is 00000000
    ------------------TRNG TEST---------------------------------
    **********TRNG TEST rand[34d073ef]**************
    **********TRNG TEST rand[3e9c8f42]**************
    ------------------------------------------------------------
    [         0][INFO  : 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][INFO  : bl_flash.c:  96] ======= FlashCfg magiccode @0x42049c18, code 0x47464346 =======
    [         0][INFO  : bl_flash.c:  97] mid       0xEF
    [         0][INFO  : bl_flash.c:  98] clkDelay    0x1
    [         0][INFO  : bl_flash.c:  99] clkInvert    0x1
    [         0][INFO  : bl_flash.c: 100] sector size   4KBytes
    [         0][INFO  : bl_flash.c: 101] page size   256Bytes
    [         0][INFO  : bl_flash.c: 102] ---------------------------------------------------------------
    [         0][INFO  : hal_board.c: 755] [MAIN] [BOARD] [FLASH] addr from partition is 001f8000, ret is 0
    [         0][INFO  : hal_board.c: 763] [MAIN] [BOARD] [XIP] addr from partition is 231e7000, ret is 0
    [         0][INFO  : hal_board.c: 315] xtal_mode length 2
    [         0][INFO  : hal_board.c: 319] xtal_mode is MF
    [         0][INFO  : hal_board.c: 243] xtal dtb in DEC :36 36 0 60 60
    [         0][INFO  : hal_board.c: 486] channel_div_table :
    [         0][BUF: 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][BUF: hal_board.c: 487] b1 1f 89 9d d8 1f f8 81 1f 20
    [         0][INFO  : hal_board.c: 497] channel_cnt_table :
    [         0][BUF: 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][BUF: hal_board.c: 498] 2d 1f e5 5b 3e 1f
    [         0][INFO  : hal_board.c: 506] lo_fcal_div : 1387
    MAC address mode length 3
    MAC address mode is MBF
    [         0][INFO  : hal_board.c: 186] Se  MAC addrress B4:E8:42:DA:CA:B0
    [         0][INFO  : hal_board.c: 525] country_code : 86
    [         0][INFO  : hal_board.c: 545] pwr_table :
    [         0][BUF: 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][BUF: hal_board.c: 546] 03 48 02 03 04 3e 02 03 05 34 01 03 03 0a
    [         0][INFO  : hal_board.c: 439] pwr_mode length 2
    [         0][INFO  : hal_board.c: 443] pwr_mode is bf
    [         0][INFO  : hal_borrd.c: 336] pwr_offset from dtb:
    [         0][BUF: hal_board.c: 337] 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a
    [         0][INFO  : hal_board.c: 341] pwr_offset from dtb (rebase on 10):
    [         0][INFO  : hal_board.c: 571] ap_ssid string[0] = bl_test_005, ap_ssid_len = 11
    [         0][INFO  : hal_board.c: 582] ap_psk string[0] = 12345678, ap_psk_len = 8
    [         0[[INFO  : 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][INFO  : bl_sec.c: 152] random number is 69a0e7df
    === 32 task inited
    ====== lloop dump ======

    Utworzenie WiFi służącego do konfiguracji (nazwa AP = LEDnet0033DACAB0)
    Code:




    [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
    <<<< phy_set_channel: c:2412 c1:2412 bw:20 band:0
    Channel information:
        lo_sdmnn_hw        1419999c
        lo_sdmbypass_hw    0
        lo_vco_idac_cw_hw  8
        lo_vco_freq_cw_hw  8c
        lo_unlocked        0
        lo_halfstep_en_hw  1
       lo_slipped_up      00000000
        lo_slipped_dn      00000000
    [WF][SM] Exiting ifaceDown state
    [WF][SM] State Action ###ifaceDown### --->>> ##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;

    Początek parowania z aplikacją Magic Home poprzez Bluetooth (?):
    Code:


    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][INFO  : 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][INFO  : blsync_ble.c:  79] write length 42
    [    432985][INFO  : 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][INFO  : transfer.c:  30]mmalloc 0x42035528
    [    432989][INFO  : transfer.c:  30] malloc 0x42035548
    [    432989][INFO  : 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][INFO  : transfer.c:  20] free 0x42035528
    [    432992][INFO  : trnnsfer.c:  30] malloc 0x42035650
    [    432993][INFO  : blsync_ble.c: 100]  ble send size 182
    [    432994][INFO  : 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][INFO  : blsync_ble.c:  64] length 182
    [    434057][INFO  : transfer.c:  20] free 0x42035650
    [    434058][INFO  : transfer.c:  20] free 0x42035548
    [    434202][INFO  : blsync_ble.c:  79] write length 21
    [    434203][INFO  : 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][INFO  : transfer.c:  30] malloc 0x42035528
    [    434206][INFO  : transfer.c:  30] malloc 0x42035538
    [    434206][INFO  : 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][INFO  : transfer.c:  20] free 0x42035528
    [    434209][INFO  [[0m: transfer.c:  30] malloc 0x42035640
    [   434210][INFO  : blsync_ble.c: 100]  ble send szze 18
    [    434210][INFO  : blsync_ble.c: 102] data
    [data]: 0000-000F: 18 01 00 80 00 00 0B 00  00 00 00 00 00 00 00 00    ................

    Sparowanie z moim WiFi (tu był SSID i hasło jako tekst, ocenzurowałem je w logu):
    Code:


    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][INFO  : transfer.c:  20] free 0x42035528
    [    446264][INFO  : transfer.c  30] malloc 0x42036698
    [    446265][INFO  : blsync_ble.c: 100]  ble send size 18
    [    446265][mINFO  : 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                                               ..

    Sterowanie kolorem przez WiFi:
    Code:


    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][INFO  : 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

    Sterowanie kolorami przez pilot IR (protokół NEC):
    Code:


    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][INFO  : 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][INFO  : 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][INFO  : 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][INFO  : bl_sec.c: 152] random number is 05e43faf

    Logi dobrze przedstawiają co się dzieje z urządzeniem oraz tworzą duże zagrożenie wycieku naszego SSID i hasła.


    Programowanie BL602
    Udało mi się również zainstalować odpowiednie SDK dla BL602 oraz uruchomić na urządzeniu z tematu przykładowe projekty dostarczone przez producenta, m. in. kontrolę pinów przez UART:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Trochę było kłopotów, gdyż wymaga to środowiska MSYS oraz z jakiegoś dziwnego powodu najnowsza wersja SDK z Github nie działa (trzeba było dobrać starszą), ale po rozwiązaniu tych trudności wszystko działa.
    Szczegółowo programowanie BL602 omówię już w innym temacie w sekcji Artykuły naszego forum.

    Inne testowane kontrolery paska LED
    Testowałem już dwa podobne produkty z tej serii. Polecam zapoznać się z recenzjami, każdy znajdzie coś dla siebie.
    WiFi ściemniacz paska LED 5V-28V - wnętrze, Tasmota, Home Assistant - jednokolorowy, inny od Magic Home, ale prymitywniejszy, na ESP8266, kod SKUE52952, najtańszy bez IR, bez przycisku. Łatwo wgrać na niego Tasmotę.
    WiFi SmartLife ściemniacz jednokolorowego paska LED - test, wnętrze, schemat - jednokolorowy, na WB3S (ale moje firmware go wspiera), model WIFI 371, reklamowany jako Tuya/SmartLife
    Na ten moment bardziej polecam te dwa wspomniane powyżej. Im łatwiej jest wgrać własne firmware.

    Podsumowanie
    Zestaw z pozoru wydaje się być atrakcyjny, ale w rzeczywistości uważam, że jest słaby. Do jego minusów należą:
    - nie jest kompatybilny z normalną aplikacją Tuya (tylko z Magic Home działa)
    - w środku nie ma ESP8266 (nie zmienimy łatwo firmware i nie połączymy z Home Assistant)
    - te RGB to nie jest prawdziwe RGB jak w WS2812, że możemy ustawić sobie dowolny kolor. Tu są osobno diody czerwone, niebieskie, zielone, więc mieszanie kolorów wychodzi słabo
    - zasilacz jest bardzo niskiej jakości, wręcz powiedziałbym, ze jest niebezpieczny i pewnie też dużo emituje zakłóceń do sieci
    - produkt sypie na prawo i lewo naszym SSID i hasłem (jak go wyrzucimy i sąsiad go znajdzie w koszu, to wystarczy, że podłączy konwerter USB UART i już ma nasze dane)
    Ale mimo wszystko jestem zadowolony z zakupu, gdyż mikrokontroler WiFi znajdujący się w środku, BL602 od Buffalo Labs, okazał się być względnie łatwy do programowania. Spróbuję przeportować na niego mój zamiennik Tasmoty - OpenBK7231T_App - co docelowo pozwoli uwolnić go od serwerów producenta i sparować łatwo np. z Home Assistant lub z dowolnym innym ekosystemem wspieranym przez HA.
    Tutorial dotyczący programowania BL602 umieszczę na forum mniej więcej w przyszłym miesiącu. Polecam śledzić sekcję "Artykuły".
    Załączam paczkę dokumentacji BL602.

    Cool? Ranking DIY
    [28-30.06.2022, targi] PowerUP EXPO 2022 - zasilanie w elektronice. Zarejestruj się za darmo
    About Author
    p.kaczmarek2
    Level 26  
    Offline 
  • #2
    szeryf3
    Level 25  
    Jak zwykle, ciekawy i rzeczowy opis.
    Po jakiego grzyba prawie każde nowe urządzenie chce lokalizację?
    Z tym zasilaczem taktycznie poszli na bardzo dużą oszczędność.
  • #3
    khoam
    Level 41  
    Ten BL602 to nic innego, jak SiFive E24 Core RISC-V. Sporo dokumentacji jest pod tym linkiem: Link
    Jest nawet dostępny framework dla PlatformIO i VSCode ze wsparciem dla środowiska Arduino: Link
  • #4
    p.kaczmarek2
    Level 26  
    szeryf3 wrote:
    Po jakiego grzyba prawie każde nowe urządzenie chce lokalizację?

    Dziwniejsze jest to, że dopóki nie dałem pozwolenia na lokalizację, to urządzenie się nie parowało i sugerowało, że nie jest połączony ze swoją siecią WiFI...
    Dopiero po pozwoleniu na lokalizację się od razu sparowało bez problemów.
    Chyba, że to przypadek - i akurat tak się dziwnie złożyło.


    khoam wrote:
    Ten BL602 to nic innego, jak SiFive E24 Core RISC-V. Sporo dokumentacji jest pod tym linkiem: Link

    Dzięki, widziałem to, nawet zamieściłem kopię zapasową jako załącznik do tematu... czasem tak robię, bo wiesz jak to jest, czasem ktoś linkuje do pliku w poście, a potem po roku (lub pięciu latach) się okazuje, że link wygasł i post traci znaczenie merytoryczne.
    A to widziałeś?
    https://github.com/lupyuen/bl602-eflash-loader
    BL602 pojawiał się w sekcji "Artykuły" już kilka razy i są też normalne płytki dev pod niego:
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=19788732#19788732
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=19024816#19024816
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=19041147#19041147
    Co do samego SDK - na ten moment będę robić podejście z https://github.com/bouffalolab/bl_iot_sdk , chociaż na razie nie patrzyłem nawet dokładnie co tam jest. Liczę, że uda mi się uruchomić na tej platformie bibliotekę mqtt z lwip w wersji 2, czyli zrobić to co zrobiłem dla XR809, ten plik tutaj:
    https://github.com/openshwprojects/OpenXR809/...ect/oxr_sharedApp/my_lwip2_mqtt_replacement.c
    O użyciu tego z Arduino też myślałem, ale na ten moment chyba się nie opłaca...Bekken i XR809 nie ma pod to gotowca, a moje subiektywne wrażenie na ten moment jest takie, że ogarnianie tego z Arduino by wzięło więcej pracy niż to co jest w tej chwili na moim repo.


    No i też już wiem, że BL602 nie tylko w tym urządzeniu z tematu jest, jest np. w smart żarówkach też:
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    Pasek LED RGB z pilotem IR i WiFi - MWIR-RGB Magic Home Pro
    W tej powyżej współpracuje z SM2135 po I2C, ale jako że robię wszystko w jednym projekcie to wystarczy, że zaimplementuję to raz i będzie na wszystkich platformach (no, oczywiście na najniższym poziomie I2C będzie dalej platform-specific, wiadomo, np. na BK7231 udało się już uruchomić sprzętowe I2C)
  • #5
    khoam
    Level 41  
    p.kaczmarek2 wrote:
    nawet zamieściłem kopię zapasową jako załącznik do tematu... czasem tak robię, bo wiesz jak to jest, czasem ktoś linkuje do pliku w poście, a potem po roku (lub pięciu latach) się okazuje, że link wygasł i post traci znaczenie merytoryczne.

    Nie robię w taki sposób, ponieważ może się okazać, że już po tygodniu taki załącznik nie ma żadnej wartości i niepotrzebnie zajmuje miejsce.
  • #6
    grzewoj
    Level 27  
    Te sterowniki działają też poprawnie z bardziej uniwersalną aplikacją Smart Things.