Mój skromny wkład, jak zmienić firmware w RGB+CW Tuya WBLC9 (BK7231T) + BP1658
Wgramy na nią OpenBeken:
https://github.com/openshwprojects/OpenBK7231T_App
WBLC9:
https://developer.tuya.com/en/docs/iot/wblc9-module-datasheet?id=K9hgglry2jp5h
Opakowanie i oznakowanie:
demontaż:
Doskonały wynik:
podłącz zasilanie zewnętrzne
Lutujemy styki TP
Dalej są dwie opcje:
zapisać kopię zapasową i móc przywrócić lub po prostu flashować
Utwórz i zapisz kopię zapasową pamięci flash. Potrzebujesz na przykład pamięci programatora SPI
niedrogi CH341A.
Oprogramowanie układowe przez dowolny dostępny port UART z poziomami 3,3 V (na przykład)
Przenosimy programator CH341A na tryb szeregowy, usuwamy zworkę (lub jakąkolwiek inną, która jest dostępna)
uruchomić program do oprogramowania układowego (pobierz program i najnowsze oprogramowanie)
określ swój plik z programem i portem com
Następnie łączymy się z punktem dostępowym, przechodzimy na adres 192.168.4.1 i dokonujemy ustawień
Główne związane z lampą i chipem:
Skonfiguruj moduł (jego wyprowadzenia):
P24 BP1658CJ_DAT
P26 BP1658CJ_CLK
Konfiguruj w Ogólne (w flagach OpenBeken)
ustaw Flag4 (przywróć zasilanie i flag12)
Polecenie uruchamiania (short startup command OpenBeken):
BP1658CJ_Mapa 2 1 0 4 3
Konfiguracja Home Assistant (configuration.yaml ):
Powodzenia!
PS:
Ogromne podziękowania dla btsimonh i Refuhr za pomoc!
Wgramy na nią OpenBeken:
https://github.com/openshwprojects/OpenBK7231T_App
WBLC9:
https://developer.tuya.com/en/docs/iot/wblc9-module-datasheet?id=K9hgglry2jp5h
Opakowanie i oznakowanie:
Spoiler:
demontaż:
Spoiler:
Rozgrzewamy się
I obiema rękami po prostu delikatnie przełam go na pół.
Najważniejsze, aby nie uszkodzić rąk, oczu, ciała, a także korpusu lampy i sufitu.
podłącz programator. Bądź ostrożny. TC może zostać uszkodzony przez szarpnięcia na przewodach
usuń pimpochkę
Tępym nożem delikatnie przesuń podstawę po okręgu
odciąć biały smark
cienkim, ale mocnym śrubokrętem wypchnij dysk za pomocą diod LED
Rozgrzewamy się
Spoiler:
I obiema rękami po prostu delikatnie przełam go na pół.
Spoiler:
podłącz programator. Bądź ostrożny. TC może zostać uszkodzony przez szarpnięcia na przewodach
usuń pimpochkę
Spoiler:
Tępym nożem delikatnie przesuń podstawę po okręgu
Spoiler:
odciąć biały smark
Spoiler:
cienkim, ale mocnym śrubokrętem wypchnij dysk za pomocą diod LED
Spoiler:
Doskonały wynik:
podłącz zasilanie zewnętrzne
Lutujemy styki TP
Dalej są dwie opcje:
zapisać kopię zapasową i móc przywrócić lub po prostu flashować
Utwórz i zapisz kopię zapasową pamięci flash. Potrzebujesz na przykład pamięci programatora SPI
niedrogi CH341A.
Spoiler:
podłączyć magistralę SPI w CEN
Oprogramowanie Neoprogramista , Asprogramista
Skrypt do przeniesienia układu do trybu dostępu do pamięci
1. Naciśnij CEN w gnd, uruchom skrypt i zwolnij CEN
czekaj 15701 w logu
powtórz w błędzie (id 00000)
2. Naciśnij chip "wykryj"
wybierz EN25Q16
3. Naciśnij Przeczytaj IC
Czekać:
Obecnie wybrane: EN25QH16 [3,3 V] 16 Mbit, 2 Mbajty
-------------------------------------------------- -------------------------
Aktualny programator: CH341 czarny
21:19:22
Odczytywanie pamięci... Pamięć główna
Powodzenie
Czas realizacji: 00:00:17.072
CRC32 = 0x********
4. Naciśnij Plik i Zapisz
Świetny. zawsze możesz wrócić do tego stanu, jeśli nie złamiesz deski
podłączyć magistralę SPI w CEN
Oprogramowanie Neoprogramista , Asprogramista
Skrypt do przeniesienia układu do trybu dostępu do pamięci
Spoiler:
{$ INIT_AND_READ_FLASH_ID}
begin
ID:= CreateByteArray(4);
RESP:= CreateByteArray(250);
if not SPIEnterProgMode(_SPI_SPEED_MAX) then LogPrint('Error setting SPI speed');
LogPrint ('Read JEDEC ID');
// init SPI
for i:=0 to 250 do
begin
SPIWrite (0, 1, $D2);
ProgressBar(1);
end;
// read response
SPIRead(1, 3, ID);
// logprint('RESP: ' + inttohex((GetArrayItem(RESP, 0)),2)+ inttohex((GetArrayItem(RESP, 1)),2));
// read ID to test installation
SPIWrite (0, 4, $9F, $00, $00, $00);
SPIRead(1, 4, ID);
logprint('CHIP ID: ' + inttohex((GetArrayItem(ID, 2)),2) + inttohex((GetArrayItem(ID, 1)),2)+ inttohex((GetArrayItem(ID, 0)),2));
LogPrint ('End read JEDEC ID');
SPIExitProgMode ();
end
1. Naciśnij CEN w gnd, uruchom skrypt i zwolnij CEN
czekaj 15701 w logu
powtórz w błędzie (id 00000)
2. Naciśnij chip "wykryj"
wybierz EN25Q16
3. Naciśnij Przeczytaj IC
Czekać:
Obecnie wybrane: EN25QH16 [3,3 V] 16 Mbit, 2 Mbajty
-------------------------------------------------- -------------------------
Aktualny programator: CH341 czarny
21:19:22
Odczytywanie pamięci... Pamięć główna
Powodzenie
Czas realizacji: 00:00:17.072
CRC32 = 0x********
4. Naciśnij Plik i Zapisz
Świetny. zawsze możesz wrócić do tego stanu, jeśli nie złamiesz deski
Oprogramowanie układowe przez dowolny dostępny port UART z poziomami 3,3 V (na przykład)
Przenosimy programator CH341A na tryb szeregowy, usuwamy zworkę (lub jakąkolwiek inną, która jest dostępna)
uruchomić program do oprogramowania układowego (pobierz program i najnowsze oprogramowanie)
określ swój plik z programem i portem com
python uartprogram С:\test\OpenBK7231T_UA_1.12.103.bin -d com8 -w
Następnie łączymy się z punktem dostępowym, przechodzimy na adres 192.168.4.1 i dokonujemy ustawień
Główne związane z lampą i chipem:
Skonfiguruj moduł (jego wyprowadzenia):
P24 BP1658CJ_DAT
P26 BP1658CJ_CLK
Konfiguruj w Ogólne (w flagach OpenBeken)
ustaw Flag4 (przywróć zasilanie i flag12)
Polecenie uruchamiania (short startup command OpenBeken):
BP1658CJ_Mapa 2 1 0 4 3
Konfiguracja Home Assistant (configuration.yaml ):
mqtt:
light:
- unique_id: "Name_Id"
name: "Name"
rgb_command_template: "{{ '%02x%02x%02x' | format(red, green, blue)}}"
rgb_state_topic: "obkMAC/led_basecolor_rgb/get"
rgb_command_topic: "cmnd/obkMAC/led_basecolor_rgb"
rgb_value_template: "{{ value[0:2]|int(base=16) }},{{ value[2:4]|int(base=16) }},{{ value[4:6]|int(base=16) }}"
command_topic: "cmnd/obkMAC/led_enableAll"
state_topic: "obkMAC/led_enableAll/get"
availability_topic: "obkMAC/connected"
payload_on: "1"
payload_off: "0"
brightness_command_topic: "cmnd/obkMAC/led_dimmer"
brightness_scale: 100
brightness_state_topic: "obkMAC/led_dimmer/get"
brightness_value_template: "{{value}}"
color_temp_command_topic: "cmnd/obkMAC/led_temperature"
color_temp_state_topic: "obkMAC/led_temperature/get"
retain: true
Powodzenia!
PS:
Ogromne podziękowania dla btsimonh i Refuhr za pomoc!
Fajne? Ranking DIY
