logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu

pborrelli 16 Sty 2024 00:47 1233 6
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • Cześć wszystkim! Właśnie dostałem dwa z tych zewnętrznych adresowalnych reflektorów LED (RGBW+IC), które używają CBU. Demontaż był nieco destrukcyjny i pękła obudowa, w której znajdowała się płytka drukowana, ale po zakończeniu nadal będzie można z niej korzystać.
    [BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu [BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu [BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu [BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu
    Udało mi się wykonać kopię zapasową fabrycznego oprogramowania (w załączeniu) i zainstalować OpenBeken za pomocą BK Flasher, ale od tego czasu nie byłem w stanie poczynić większych postępów. Nie mogę dowiedzieć się, jak GIPO kontrolują światła. Użyłem doktora GPIO na wszystkich pinach, ale żaden nie spowoduje, że światła zapalą się w jakikolwiek sposób (działały, zanim sflashowałem OpenBeken). Udało mi się zidentyfikować, że P24 jest przyciskiem, używając opcji "Set Input P-up" i naciskając przycisk, aby zobaczyć zmianę.
    Text Description
    Device configuration, as extracted from Tuya: 
    - Microphone (TODO) on P23
    - SPI MISO17
    - SPI MOSI16
    Device seems to be using CBU module, which is using BK7231N.
    And the Tuya section starts, as usual, at 2023424
    
    JSON Format:
    {
    	"Jsonver":"1.0.0",
    	"brightmin":"10",
    	"gmwb":"75",
    	"title20":"1",
    	"gmwg":"70",
    	"knum":"1",
    	"wfcfg":"spcl_auto",
    	"colormin":"10",
    	"pmemory":"1",
    	"gmkb":"60",
    	"k1sfunc":"5",
    	"cmod":"4",
    	"lednum":"12",
    	"netlptime":"3",
    	"micpin":"23",
    	"rstbr":"50",
    	"musicfunc":"1",
    	"colormax":"100",
    	"module":"CBU",
    	"cwmaxp":"100",
    	"rstmode":"1",
    	"k1lfunc":"1",
    	"dmod":"7",
    	"brightmax":"100",
    	"speedstep":"20",
    	"wfct":"3",
    	"expowctrl_pin":"8",
    	"defbright":"100",
    	"rstnum":"3",
    	"rstcor":"r",
    	"key1_pin":"24",
    	"sensimax":"300",
    	"miso":"17",
    	"mosi":"16",
    	"keyfunc":"1",
    	"irfunc":"0",
    	"expowctrl_lv":"1",
    	"adclimit":"2400",
    	"sensimin":"30",
    	"MISO":"17",
    	"wt":"20",
    	"key1_lv":"0",
    	"brightstep":"20",
    	"remdmode":"0",
    	"colorpfun":"0",
    	"CS":"15",
    	"gmwr":"100",
    	"gmkg":"60",
    	"onoffmode":"1",
    	"colororder":"0",
    	"brightrate":"20",
    	"lptime":"3",
    	"aging":"0",
    	"category":"1101",
    	"SCL":"14",
    	"gmkr":"80",
    	"defcolor":"r",
    	"crc":"107",
    	"}cPhAgw_di{abi":"0",
    	"id":"null",
    	"swv":"1.0.20",
    	"bv":"40.00",
    	"pv":"2.2",
    	"lpv":"3.4",
    	"pk":"keyfwt38nejumpuv",
    	"firmk":"keyfwt38nejumpuv",
    	"cadv":"1.0.5",
    	"cdv":"1.0.0",
    	"dev_swv":"1.0.20",
    	"s_id":"null",
    	"dtp":"0",
    	"sync":"0",
    	"attr_num":"1",
    	"mst_tp_0":"9",
    	"mst_ver_0":"1.0.20",
    	"mst_tp_1":"0",
    	"mst_ver_1":"null",
    	"mst_tp_2":"0",
    	"mst_ver_2":"null",
    	"mst_tp_3":"0",
    	"mst_ver_3":"null } )Agw_wsm{nc_tp",
    	"ssid":"null",
    	"passwd":"null",
    	"md":"0",
    	"random":"0",
    	"wfb64":"1",
    	"stat":"0",
    	"token":"null",
    	"region":"null",
    	"reg_key":"null",
    	"dns_prio":"0 }{uuid",
    	"psk_key":"MnXfZutokIqrbtJmhnyMq6P1A0fcXxvuXcRmO",
    	"auth_key":"tAOi6vMDmHSZ7VN7CvmGSE3IFbjv0AEi",
    	"ap_ssid":"SmartLife",
    	"ap_passwd":"null",
    	"country_code":"null",
    	"bt_mac":"null",
    	"bt_hid":"null",
    	"prod_test":"false",
    	"fac_pin":"q8es5qukiuljknuj }{nc_tp",
    	"lckey":"null",
    	"h_url":"null",
    	"h_ip":"null",
    	"hs_url":"null",
    	"hs_ip":"null",
    	"hs_psk":"null",
    	"hs_psk_ip":"null",
    	"mqs_url":"null",
    	"mqs_ip":"null",
    	"mq_url":"null",
    	"mq_ip":"null",
    	"ai_sp":"null",
    	"ai_sp_ip":"null",
    	"mq_psk":"null",
    	"mq_psk_ip":"null",
    	"lp_url":"null",
    	"lp_ip":"null",
    	"time_z":"null",
    	"s_time_z":"null",
    	"wx_app_id":"null",
    	"wx_uuid":"null",
    	"dy_tls_m":"0",
    	"cloud_cap":"0",
    	"psk21_key":"null }{nc_tp"
    }
    

    Dowiedziałem się z kopii zapasowej, że BK Flasher zidentyfikował użycie SPI, MOSI i MISO. Musisz mi wybaczyć, bo to wykracza poza mój poziom wiedzy i jest trochę obcym językiem. Zrobiłem wszystko, co w mojej mocy, aby prześledzić piny na płycie i do jakich komponentów są podłączone. Oto, co znalazłem:
    [BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu
    Spędziłem ostatnie trzy dni czytając i ucząc się; te wątki wydają się podobne do mojego urządzenia:
    [BK7231N/CBU] Casa Life ALDI Aus - Lampa podłogowa Mood Lamp - Sterowanie RGB, SPI? MOSI? MISO?
    Deciphering Pin Configuration & JSON Readout for Marlrin RGBCW Corner Floor Lamp (MOSI/MISO)
    [BK7231N - CBU] Teardown of Aldi (Australia) CasaLux Smart Led Corner Lamp
    Jeśli są jakieś zalecenia lub literatura, która informuje, jak to działa, daj mi znać. Szukałem, ale nie znalazłem jeszcze rozwiązania.

    Fajne? Ranking DIY
    O autorze
    pborrelli
    Poziom 3  
    Offline 
    pborrelli napisał 10 postów. Jest z nami od 2022 roku.
  • #2 20911963
    p.kaczmarek2
    Moderator Smart Home
    Wygląda to na indywidualnie adresowalne diody LED, wskazuje na to również oznaczenie DO (Data Out). Czy wypróbowałeś nasz eksperymentalny sterownik SPI?
    
    1. Start driver
    startDriver SM16703P
    
    2. Init Driver - replace 64 with number of LEds
    SM16703P_Init 64
    
    3. Set Pixel
    SM16703P_SetPixel 1 255 0 0
    SM16703P_SetPixel 2 0 255 0
    SM16703P_SetPixel 3 0 0 255
    
    4. Start Output (each call will trigger one)
    SM16703P_Start
    

    Jakie jest oznaczenie tutaj:
    [BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu
    Pomogłem? Kup mi kawę.
  • #3 20912759
    pborrelli
    Poziom 3  

    Jesteś geniuszem i świętym! Uruchomiłem komendy sterownika SPI i dostałem światło! Dwie z czterech zaświeciły się, jedna na niebiesko, a druga na biało. Następnie wyłączyłem zasilanie, aby uzyskać zdjęcie układu na płytce LED:
    [BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu
    Wygląda na to, że są to diody LED WS2814A ... ? Ponownie, jestem poza moją ligą tutaj.
    Problem polega na tym, że nie mogę go ponownie zapalić po wyłączeniu i ponownym uruchomieniu. Ustawiłem wszystko tak, jak było, ale ponowne uruchomienie poleceń sterownika SPI nic nie daje. Czego mi brakuje? Ustawiłem GPIO P8, P15 i P16 jako PWM lub przekaźniki, ale nic nie działa. Jakie są zalecane ustawienia GPIO dla sterownika SPI? Zamierzam dalej z nim majstrować, ale w tej chwili drapię się po głowie.
    Dziękuję jeszcze raz @p.kaczmarek2 Nie wiem, jak nadążasz za wszystkimi postami na tym forum, a także modyfikacjami oprogramowania układowego!
  • #4 20912797
    p.kaczmarek2
    Moderator Smart Home
    WS2814A ... cóż, szczerze mówiąc, pierwszy raz widzę ten układ, ale wykazuje on znaczne podobieństwo do diod WS2812.

    Sprawdźmy arkusz danych:
    [BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu
    Taktowania są podobne.... ale ramka jest 32-bitowa, a nie 24-bitowa jak WS2812B.

    Wymagałoby to pewnych dostosowań w naszym sterowniku, ale mimo to nasz sterownik powinien teoretycznie być w stanie przynajmniej zapalić na nim losowe kolory....

    Dalsze testy mogą być potrzebne, ale wymagałoby to podłączenia oscyloskopu do pinu DO.

    Alternatywnie, możesz spróbować:
    
    SM16703P_Init 4
    SM16703P_SetPixel 0 255 255 255
    SM16703P_SetPixel 1 255 255 255
    SM16703P_SetPixel 2 255 255 255
    SM16703P_SetPixel 3 255 255 255
    

    Nie zapomnij również uruchomić sterownika.

    Nie ustawiaj żadnej roli GPIO dla P16, po prostu uruchom sterownik i uruchom polecenia, które podałem.
    Pomogłem? Kup mi kawę.
  • #5 20912961
    pborrelli
    Poziom 3  
    Dobrze wiedzieć, że to nowy sprzęt, a nie tylko to, że jestem nowy.
    Wyczyściłem przypisanie na P16 i zrobiłem trochę szturchania i szturchania i wreszcie gdzieś się dostaję. P8 i P15 są ustawione na przekaźniki i muszę włączyć jeden lub oba, aby uzyskać wyjście światła.
    Pierwsze trzy z czterech reflektorów włączają się z niebieskim światłem (idą od 1 do 4 od PRAWEJ do LEWEJ).
    [BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu
    Planuję przeprowadzić więcej testów, zmieniając parametry, ale praca zaczyna przeszkadzać w zabawie!
    Wystąpił jeden błąd, ale nadal mam światło podczas uruchamiania wyjścia:
    (startDriver SM16703P)
    Info:MAIN:Started SM16703P.
    Info:CMD:[WebApp Cmd 'startDriver SM16703P' Result] OK
    ...
    (SM16703P_Init 4)
    Info:CMD:Register driver with 4 LEDs
    Info:CMD:[WebApp Cmd 'SM16703P_Init 4' Result] OK
    ...
    (SM16703P_SetPixel 0 255 255 255)
    Info:CMD:Set Pixel 0 to R 255 G 255 B 255
    Info:CMD:Raw Data 0xee 0xee 0xee 0xee - 0xee 0xee 0xee 0xee - 0xee 0xee 0xee 0xee
    Info:CMD:[WebApp Cmd 'SM16703P_SetPixel 0 255 255 255' Result] OK
    ...
    (SM16703P_SetPixel 1 255 255 255)
    Info:CMD:Set Pixel 1 to R 255 G 255 B 255
    Info:CMD:Raw Data 0xee 0xee 0xee 0xee - 0xee 0xee 0xee 0xee - 0xee 0xee 0xee 0xee
    Info:CMD:[WebApp Cmd 'SM16703P_SetPixel 1 255 255 255' Result] OK
    ...
    (SM16703P_SetPixel 2 255 255 255)
    Info:CMD:Set Pixel 2 to R 255 G 255 B 255
    Info:CMD:Raw Data 0xee 0xee 0xee 0xee - 0xee 0xee 0xee 0xee - 0xee 0xee 0xee 0xee
    Info:CMD:[WebApp Cmd 'SM16703P_SetPixel 2 255 255 255' Result] OK
    ...
    (SM16703P_SetPixel 3 255 255 255)
    Info:CMD:Set Pixel 3 to R 255 G 255 B 255
    Info:CMD:Raw Data 0xee 0xee 0xee 0xee - 0xee 0xee 0xee 0xee - 0xee 0xee 0xee 0xee
    Info:CMD:[WebApp Cmd 'SM16703P_SetPixel 3 255 255 255' Result] OK
    ...
    (SM16703P_Start)
    Error:CMD:before enable tx 0x0000320c
    Error:CMD:enable tx 0x0000320c
    Info:CMD:[WebApp Cmd 'SM16703P_Start' Result] OK

    Wyjście światła jest ... interesujące. Czasami po wprowadzeniu polecenia Start mogę uzyskać tylko dwa światła, a jedno było ciepłe białe. Jeśli manipuluję przyciskami przełączania na głównej konsoli, światła czasami wyłączają się bez ponownego włączania. Ponadto, jeśli wprowadzę polecenia i spróbuję uruchomić światła przed włączeniem przekaźników, to nie zadziała.
    To ekscytujące, że gdzieś się z nimi dostałem. Chętnie przeprowadzę więcej testów i dostrajania, czy jest jakiś opis sterownika SPI? (nieważne, znalazłem). Pójdę zrobić kilka rzeczy i zdam raport z ustaleń, nie jestem pewien, ile mogę zrobić z powodu 32-bitowego ramu, ale i tak zamierzam grać.
  • #6 20915260
    pborrelli
    Poziom 3  

    Przeprowadziłem trochę testów i dostrajania, ale nie mam zbyt wiele do powiedzenia. Mogę zapalić wszystkie cztery światła, bawiąc się różnymi ustawieniami liczby pikseli i przypisania kolorów do każdego z nich, ale nie ma dla nich wzoru ani przewidywalności. Wynika to oczywiście z 24- i 32-bitowego pakowania danych.
    Chciałbym wiedzieć, jak pisać C, chętnie wprowadziłbym poprawki. W międzyczasie z przyjemnością przeprowadzę więcej testów, a kiedy wszystko będzie działać poprawnie, zrobię pełny opis.
    [BK7231N] [CBU] Ligency RGBW+IC LED Spotlights Identyfikacja GPIO po flashowaniu
    .
  • #7 21192339
    pborrelli
    Poziom 3  
    Tak więc minął już prawie rok, te leżały przez około siedem miesięcy, ale w końcu znów je podniosłem.

    Znalazłem obejście, które zapewnia prawidłowy kolor i indywidualne sterowanie każdą diodą LED; chociaż jest to z ESPHome, a nie OpenBeken. Okazało się, że WS2814 to wariant SK6812 z białym kanałem. Udało mi się użyć platformy "Beken_SPI_LED_Strip" w ESPHome i ustawić opcję chipsetu na "sk6812", a opcję koloru "is_wrgb" na "True". Ustawiło to prawidłowy kolor na każdej diodzie i umożliwiło indywidualne sterowanie. Myślę, że posiadanie pakietu danych dla białego kanału spowodowało wysłanie poprawnego 32-bitowego pełnego pakietu danych i naprawiło problem.

    Nie wiem, czy istnieje sposób na wykorzystanie tego w OpenBeken, ale może to być szybkie obejście problemu przy użyciu diod WS2814.
    Panel sterowania diodami LED z czteroma opcjami przełączania

    Cztery reflektory LED emitujące światło w kolorach czerwonym, zielonym, niebieskim i żółtym.
REKLAMA