How can I identify and start working on the Broadlink BL3335-P / RDA5981AM controller, including the right UART pins and flashing/porting approach?
Układ BL3335-P/RDA5981AM najlepiej diagnozować przez UART0 na PA_0/PA_1 (IO26/IO27); IO21 nie jest potrzebny do normalnej pracy, choć na początku pomagał RDA Flash Toolowi złapać BL3335-P przy odczycie/zrzucie. [#21701075][#21698784][#21726631]
Publicznie dostępny jest głównie stary SDK MbedOS515 V1.3.5/V1.3.6 oraz dokumentacja/repo RDA5981, więc portowanie trzeba oprzeć na tych materiałach i bootlogu z urządzenia, a nie na nowym FreeRTOS SDK. [#21634414][#21634407]
W praktyce później udało się uruchomić OBK na tym chipie: działały PWM/dimmer, selektor koloru, suwak ciepło–zimno i MQTT. [#21703115]
Do flashowania i backupu flasher został później uproszczony do zapisu samej konfiguracji OBK oraz pełnego erase; zapis konfiguracji wymagał kasowania flasha przed użyciem, a OTA było dopracowywane osobno. [#21726631][#21727683][#21726119]
Publikuję, ponieważ wydaje się, że istnieje bardzo ograniczona ilość informacji na temat tego urządzenia i używanego układu, Broadlink BL3335-P (na płytce drukowanej nośnika znajduje się BR3335, rzeczywisty moduł nie ma numeru części).
W każdym razie byłem ciekawy, jaki jest rzeczywisty kontroler, więc jak widać, zdjąłem puszkę. to przedstawia RDA 5981AM.
Niestety nie jestem do końca pewien skąd pochodzi żarówka, mam ją od jakiegoś czasu i dopiero niedawno zajrzałem do środka. Najprawdopodobniej jest to jeden z AliExpress i jestem prawie pewien, że teraz zmienili kontroler na inny, ponieważ kilka lat później zamawiałem dwa razy w tym samym sklepie. Z boku żarówki nie ma żadnego oznakowania.
Jeśli ktoś chce spróbować obsługiwać ten kontroler w OpenBeken lub innych i chciałby uzyskać cokolwiek z urządzenia, co byłoby przydatne we wsparciu, prosimy o wiadomość
Bardzo interesujące, jeszcze tego nie widziałem. Mógłbym spróbować, ale na razie robię porting dla XR806, więc musiałoby to trochę poczekać w kolejce.
W każdym razie, czy udało Ci się znaleźć arkusz danych dla tego modułu lub układu?
Czy próbowałeś zrobić boot log tego urządzenia? To może nam powiedzieć, który SDK został użyty.
Jeśli nie ma dokumentacji dla używanego modułu Wi-Fi, to może możemy go odlutować gorącym powietrzem, aby sprawdzić oznaczenia GPIO z tyłu.
Tworzę pierwsze na świecie oprogramowanie open source przeznaczone dla platform BK7231, XR809, BL602, W600, W800, LN882H, ECR, TRS, RTL, jak również ESP8266 i ESP32 używanych w różnych urządzeniach IoT, pozwalające uwolnić je od serwerów producenta, od śledzenia, dowolnie modyfikować i sparować z Home Assistant.
Dodatkowo publikuję różnorodne materiały, często tutoriale i praktyczne demonstracje.
Jeśli podoba Ci się moja twórczość i w czymś Ci pomogłem, to rozważ wsparcie mnie tutaj: https://www.paypal.com/paypalme/openshwprojects Mój Github: https://github.com/openshwprojects Mój tutorial PIC18F SDCC: https://www.elektroda.pl/rtvforum/topic3635522.html Pracuję na stacji hot air SUGON 8630 Pro od Katemedia
Bardzo ciekawe, tego jeszcze nie widziałem. Mógłbym spróbować, ale na razie robię port dla XR806, więc musiałoby to trochę poczekać w kolejce.
Nie martw się, nie spieszy mi się, próbowałem znaleźć informacje na temat tego, co musiałem zacząć, aby odejść od ich zastrzeżonego oprogramowania układowego. i zauważyłem, że wydawało się to nieznane tym, którzy pracują nad tymi otwartymi projektami.
p.kaczmarek2 napisał:
. W każdym razie, czy byłeś w stanie znaleźć arkusz danych dla tego modułu lub układu?
Tak, wydaje się, że post na blogu stwierdza, że nie byli w stanie znaleźć dokumentacji (jednak podobno mieli Broadlink BL3336T-P) wydaje się, że istnieje dokumentacja dla Broadlink BL3335-P i RDA 5981AM, którego używa.
Czy próbowałeś pobrać dziennik rozruchu tego urządzenia? To może nam powiedzieć, który SDK został użyty.
Nie próbowałem, w jaki sposób można uzyskać dziennik rozruchu z takiego urządzenia?
Edycja: może użyć Arduino jako USB do szeregowego i podłączyć do rx i tx, a następnie zasilić płytkę napięciem 3,3 V. i to powinno wypluć dziennik rozruchu?
Jeśli ktoś jest zainteresowany próbą portowania, moduł z tym chipem jest dostępny na aliexpress (HLK-M50).
Nie widzę jednak sensu, sdki które widziałem są bardzo stare, ostatnia publicznie dostępna wersja ma co najmniej 8 lat (RDA5981_SDK_MbedOS515_V1.3.5).
Na csdn są wzmianki o RDA5981_SDK_MbedOS515_V1.3.6 i RDA5981_SDK_MbedOS515_V2.0, ale nie można ich pobrać (tylko strona chińska).
I nie wspominając o tym, że w żadnym z tych sdk nie ma freertos.
bez modyfikacji narzędzie RDA Dump ładuje się z tymi adresami ustawionymi przez Hi-Flying. Te adresy skutkują zrzutem pliku 2044kb, który wyraźnie pokazuje powtarzającą się zawartość flash HLK-M50.
Narzędzie i zrzut wylądują również w FlashDumps i FlashTools GH
Załączniki:
HLK-M50_RDA5981A.bin(1024 KB)
Musisz być zalogowany, aby pobrać ten załącznik.
i nie widziałem żadnego wyjścia dziennika rozruchu na żadnym UART przy dowolnej szybkości transmisji, nie ma też AP. Tylko niewielki skok mocy przy starcie sugeruje, że coś robi
następnie _major.minor 0.0-3.9 i _major.minor.build dla 0.0.0->3.99.99
następnie rozszerzenia .zip i .tar.gz wielkimi i małymi literami
Prawidłowa nazwa platformy jest zwykle bitem widocznym na końcu tego ciągu po AT, więc dziennik rozruchu z urządzenia Tuya byłby pomocny, ale nie znalazłem takiego.
< TuyaOS V:3.8.31 BS:40.00_PT:2.3_LAN:3.5_CAD:1.0.5_CD:1.0.0 >
< BUILD AT:2024_12_26_11_42_43 BY ci_manage FOR tuyaos-iot AT T1 >
wielkość liter nie ma znaczenia dla domeny, ale ma znaczenie dla ścieżki/zapytania? ma znaczenie dla tych, które widzisz z dużymi literami w nazwie pliku zip np. T1, T4
Interesujące, rzeczywiście jeden z tych linków działa, podczas gdy inny daje "nie znaleziono"
Tworzę pierwsze na świecie oprogramowanie open source przeznaczone dla platform BK7231, XR809, BL602, W600, W800, LN882H, ECR, TRS, RTL, jak również ESP8266 i ESP32 używanych w różnych urządzeniach IoT, pozwalające uwolnić je od serwerów producenta, od śledzenia, dowolnie modyfikować i sparować z Home Assistant.
Dodatkowo publikuję różnorodne materiały, często tutoriale i praktyczne demonstracje.
Jeśli podoba Ci się moja twórczość i w czymś Ci pomogłem, to rozważ wsparcie mnie tutaj: https://www.paypal.com/paypalme/openshwprojects Mój Github: https://github.com/openshwprojects Mój tutorial PIC18F SDCC: https://www.elektroda.pl/rtvforum/topic3635522.html Pracuję na stacji hot air SUGON 8630 Pro od Katemedia
Według karty katalogowej adres flash to 0x1400000, a adres rom to 0x0 z długością 0x10000.
0x1800000 to i-cache, który domyślam się jest flash ale dla xip?
SDK 2.0 i SDK 1.3.7 mają tę samą funkcjonalność. (646/143)
1. Dodano przepływ sterowania daemon_thread.
2. Domyślnie metoda connect jest blokująca. Aby użyć metody nieblokującej, włącz makro NO_BLOCK w rda59xx_daemon.c.
2017-02-11 V1.3.6(534)
1. Naprawiono błąd w pwm i dodano funkcje kontrolne dla pwl0 i pwl1. Zobacz przypadek testowy: pwm.
2. Naprawiono błąd w szyfrowaniu RSA podczas kompilacji GCC.
3. Naprawiono wycieki bufora i inne błędy występujące podczas wielokrotnego rozłączania.
4. Naprawiono błąd w serwerze DHCP i sprawdzano, czy żądany adres IP jest poza ustawionym zakresem.
5. Zmodyfikowano funkcje uruchamiania ap/podłączania/rozłączania do trybu blokowania w celu zapewnienia synchronizacji.
6. W trybie AP, jeśli połączenie nie powiedzie się, informacje STA zostaną wyczyszczone na czas.
7. Dodano przełącznik drukowania w celu zmniejszenia rozmiaru kodu.
8. Dodano obsługę mbed_client. Zobacz przypadek testowy: mbed_client.
9. Rozwiązano wyjątki SPI hal w GCC.
10. Dodano tryb PowerDown dla niskiego zużycia energii. Zobacz przypadek testowy: uartwifi.
11. Zoptymalizowano prędkość odczytu i zapisu usbdevice_msd.
12. Dodano funkcję: USBDEVICE_SERIAL i przypadek testowy: usbdevice_serial do obsługi portów szeregowych w trybie urządzenia USB.
13. Dodano funkcję: WPS20.
2017-12-23 V1.3.5(477)
1. Naprawiono błędy związane z siecią w wersji 1.3.4.
2017-12-14 V1.3.4(459)
1. Główna aktualizacja wersji. Podczas kompilacji nie ma potrzeby rozróżniania wersji takich jak U02 i U04. Cel musi być określony tylko jako UNO_81A, UNO81AM lub UNO_81C.
2. Optymalizacja smartconfig, airkiss i esptouch.
3. Dodaj interfejs, aby ustawić maksymalną liczbę STA, które mogą być podłączone w trybie AP. W wland_rda5991h.h,
rda5981_set_AP_link_num(unsigned char num); num to maksymalna liczba STA, które można podłączyć.
Dodano interfejs do ustawiania białej listy AP w wland_rda5991h.h:
void rda5981_set_AP_white_list(unsigned char flag, unsigned char *mac)
Gdy flaga ma wartość 1, adres MAC jest dodawany do listy; gdy flaga ma wartość 0, adres MAC jest usuwany z listy.
4. Aktualizacja systemu plików. Użytkownicy mogą konfigurować funkcje, takie jak kodowanie FEATURE_SDCARD_EXFAT i czy obsługiwać EXFAT (lub FAT32, jeśli obsługa EXFAT nie jest włączona). Patrz opis w ffconf.h.
5. Zaktualizowano interfejs I2S. Gdy wejście jest mono, można ustawić lewy lub prawy kanał. Domyślnie jest to kanał lewy.
uint8_t rda_i2s_set_rx_mono_channel(i2s_t *obj, uint8_t channel);
Gdy kanał ma wartość 0, wejście jest lewym kanałem; gdy kanał ma wartość 1, wejście jest prawym kanałem.
2017-11-09 V1.3.3
1. Dodano funkcję ESPTOUCH i odpowiedni przypadek.
2. Dodano przypadek heap_info do wyświetlania informacji o stercie.
3. Dodano drukowanie śladu stosu po wystąpieniu błędu systemowego. Podczas korzystania z funkcji CONSOLE, jeśli makro CONSOLE_DUMP_STACK_EN jest włączone, wpisanie "#*#" w konsoli spowoduje wydrukowanie bieżących informacji o śladzie stosu.
4. Aktualizacje stabilności związane z lwip.
5. Naprawiono błąd, który powodował sporadyczne wyświetlanie ujemnych wartości podczas testowania RX. Dodano wyświetlanie RSSI. Jak pokazano poniżej, średni RSSI dla wszystkich pakietów w ciągu ostatniej sekundy wynosi -77.
UT: rx = 155, end_gd = 177, end_er = 007, fcs_er = 022, PER = 15.76%, PER_F = 08.37%, rssi = -77
2017-10-18 V1.3.2
1. Naprawiono błąd związany z wymianą karty SD.
2. Dodano kalibrację VBAT. Odnieś się do przypadku vbat_cal, aby uzyskać dokładniejszą wartość napięcia VBAT.
3. Naprawiono inne błędy.
2017-09-19 V1.3.1
1. Naprawiono błąd z niedziałającym UART CTS/RTS.
2. Dodano wykrywanie niskiego napięcia. Odnieś się do przypadku analog_in i wybierz ADC_PIN2.
3. Dodano ustawienia offsetu mocy TX dla trybu G/N. Patrz przypadek uarthut.
4. Poprawiono funkcjonalność I2C. Patrz przypadek i2c i plik readme.txt w jego katalogu.
2017-09-01 V1.3.0
1. Dodano tryb testowy. Zapoznaj się z dokumentacją w katalogu "Test Mode SDK.7z" i przypadkiem uarthut.
2. Naprawiono niedokładną częstotliwość PWM.
2017-08-21 V1.2.9
1. Dodano przypadek dla kalibracji mocy nadawania i kryształu. Szczegółowe informacje można znaleźć w przypadku rf_config, który zapewnia metody konfiguracji odpowiednich rejestrów, pamięci flash i efuse.
2. Dodano przypadek testowy uarthut, który umożliwia konfigurację rejestrów, pamięci flash i bezpiecznika efuse związanych z mocą nadawania i kalibracją kryształów za pomocą AT. Szczegółowe informacje znajdują się w instrukcjach AT pod przypadkiem.
Obecnie pisanie testów efuse i TX/RX nie jest dostępne.
2017-08-16 V1.2.8
1. Wejście i wyjście konsoli można wybrać z jednego z dwóch UART-ów systemu. Szczegółowe informacje można znaleźć w funkcji FEATURE_CONSOLE_DUAL_UART i przypadku dual_console.
2017-08-09 V1.2.7
1. Dodano tryb uśpienia. Szczegółowe informacje można znaleźć w poleceniu AT+SLEEP w przypadku testowym uartwifi.
2. Dodano konfigurację MCLK dla I2S. Aby uzyskać szczegółowe informacje, zobacz odpowiednie przypadki i2s i dokumentację w ich katalogach.
2017-07-27 V1.2.6
1. Aktualizacja przypadku testowego: dodano tx_power_rf_cal (ustawienie mocy nadawania i kalibracja RF).
2. Aktualizacja funkcji: poprawiono wydajność odczytu i zapisu PSRAM.
2017-07-25 V1.2.5
1. Aktualizacja lwip: obsługuje jednoczesne tryby STA i AP.
2. Aktualizacja przypadków testowych: dodano soft_reset (miękki reset), tcp_upd_speed (test prędkości TCP i UDP) oraz tx_power (ustawienie mocy nadawania).
11 lipca 2017 V1.2.4
1. Aktualizacja funkcji: Dodano dwie funkcje USB, FEATURE_USBHOST_MSD i FEATURE_USBDEVICE_MSD.
2. Aktualizacja przypadków testowych: Dodano dwa przypadki USB, usbhost_msd i usbdevice_msd.
26 czerwca 2017 V1.2.3
1. Poprawki błędów.
10 czerwca 2017 V1.2.2
1. Aktualizacja sterownika I2S.
2. Aktualizacja przypadków testowych: Dodano cztery przypadki testowe I2S, i2s_master_out, i2s_slave_in, i2s_master_out_slave_in i i2s_master_in.
2 czerwca 2017 V1.2.1
1. Zaktualizowano funkcje, dodając FEATURE_SDCARD_EXFAT i aktualizując FEATURE_CONSOLE i FEATURE_GPADCKEY.
2. Zaktualizowano przypadki testowe, dodając airkiss, uartwifi i sdcard_sdmmc_exfat.
BL3335-P do tej pory był pewnym rozczarowaniem:
-brak wylogowania na jakimkolwiek UART w jakimkolwiek standardzie lub wielu tymczasowych baudach.
-IO27 wysyła mnóstwo dziwnych znaków w sposób przypominający boot-log, ale nic nie jest czytelne.
-P21 nie jest nigdzie wyprowadzony - być może trzeba będzie zdjąć pokrywę RF, aby go wypróbować (spodziewałbym się jednak ciszy zamiast nieczytelnego wyjścia)
-Brak rozpoznania urządzenia przez narzędzie RDA Dump przy dowolnej prędkości transmisji z obu UART - BL3335-P jest teraz całkowicie odlutowany od wtyczki na wypadek zakłóceń.
-Uwaga: moduł uruchamia się i AP wifi pokazuje - tryb parowania wtyczki / diod LED wygląda tak, jak powinien - nie próbowałem parowania
-tak, szukałem SDK Tuya używając odmian rda5991h
SWD jest zgłaszane jako opcja przez użytkowników tutaj https://esp8266.ru/forum/threads/rda5981.2944/ ale nie odniosłem sukcesu w próbach z HLK-M50 lub BL3335-P. Próbowałem nawet wypróbować inny J-Link, co doprowadziło mnie do konwersji znalezionych odrzuconych płytek STM32 Discovery (w lokalnym centrum recyklingu miesiące temu) na J-Link z ST-Link - to była dodatkowa przygoda, ale nowsze oprogramowanie układowe nie zrobiło różnicy (2019 vs 2012 w klonie).
ah tak, zrobiłem ten w SDK v2. Nie drukuje zbyt wiele, więc nie jestem pewien, czy to tylko BL, czy tylko cisza po BL. Jestem po stronie tak, to się uruchamia.
Z config, sta i pins/pwm/uart
Możliwe, że jest uszkodzony, jeśli offset flash nie wynosi 0x{addr}, ale 0x180{addr}.
Dołączyłem obie wersje.
Innym potencjalnym problemem jest to, że SDK odczytuje/zapisuje niektóre dane wifi bez możliwości ich wyłączenia.
Wymaż flash, flash AT binary, połącz się z wifi i zrób kopię zapasową.
Załączniki:
OpenBeken_offset.bin(499.75 KB)
Musisz być zalogowany, aby pobrać ten załącznik.
OpenBeken.bin(495.85 KB)
Musisz być zalogowany, aby pobrać ten załącznik.
OK. OpenBeken_offset.bin do 0x1000 często nie daje wyjścia, oprócz bitu BL, ale kiedy to robi:
Kod: Text
Zaloguj się, aby zobaczyć kod
.
insmod napisał:
Możliwe, że jest uszkodzony, jeśli offset flash nie jest 0x{addr}, ale 0x180{addr}
Nie jestem pewien, czy w 100% rozumiem ten fragment. Sflashowałem zarówno Openbeken.bin, jak i Openbeken_offset.bin do 0x1000 i 0x18001000 w RDA Flashtest Tool, ale powyższe są jedynymi oznakami czegokolwiek.
insmod napisał:
Zrób flash erase, flash AT binary, połącz się z wifi i zrób backup.
wystarczy. Poza tym nie do końca zrozumiałem z datasheetów czy można bezpiecznie kasować od 0x0 - wiesz może? Nie chcę scenariusza BK-T bez działającej opcji odzyskiwania J-Link.
✨ Dyskusja dotyczy analizy i próby portowania oprogramowania dla żarówki RGBW B22 15W z kontrolerem RDA 5981AM, stosowanym w module Broadlink BL3335-P. Użytkownicy potwierdzili, że układ RDA5981AM jest stosowany w tych urządzeniach, jednak dokumentacja SDK jest przestarzała i ograniczona, a dostępne wersje mają problemy z brakiem wsparcia FreeRTOS oraz niepełną funkcjonalnością. Próby uzyskania dzienników rozruchu poprzez podłączenie UART (RX/TX) i zasilanie 3,3 V wykazały, że debugowanie jest możliwe, ale urządzenie często zatrzymuje się na błędach pamięci (Memory Manage Fault, BusFault, HardFault). Flash urządzenia ma mapowanie pamięci z aliasami dla danych i instrukcji (adresy 0x1400000 dla danych i 0x1800000 dla XIP). Próby zapisu i odczytu konfiguracji flash wykazały, że zapisywanie działa tylko częściowo, a urządzenie często pozostaje w trybie Access Point bez pełnej funkcjonalności GUI. W dyskusji pojawiły się także odniesienia do modułów HLK-M50 i Tuya z układem RDA5981, a także do projektów open source, takich jak OpenBK7231T_App i AliOS-Things, które mogą oferować lepsze wsparcie, w tym OTA i FreeRTOS. Mimo licznych prób i testów, pełne uruchomienie i stabilne działanie firmware na RDA5981AM pozostaje wyzwaniem ze względu na ograniczenia SDK, brak dokumentacji funkcji flash oraz problemy z zarządzaniem pamięcią i stabilnością systemu. Wygenerowane przez model językowy.