Witam wszystkich,
w tym temacie wyjaśnię wam, jak można flashować OpenBeken (a.k.a. OpenBK7231T) na LEDVANCE Smart+ (a.k.a. Smart WiFi Plug AC28208)
Osobiście oceniłbym, że trudność flashowania OpenBeken do tego urządzenia jest dość wysoka w porównaniu do innych inteligentnych wtyczek, więc możesz chcieć ponownie rozważyć. W każdym razie, upewnij się, że przeczytałeś ten post w całości przed rozpoczęciem i upewnij się, że rozumiesz wszystkie kroki tej instrukcji i wiesz, jak je wykonać - zakładam przynajmniej podstawową wiedzę na temat lutowania i programowania z Twojej strony!
Upewnij się, że masz dostępne następujące materiały, najlepiej przed rozpoczęciem . W przeciwnym razie możesz znaleźć się z na wpół zdemontowanym urządzeniem i będziesz musiał wykazać się kreatywnością, ponieważ brakuje ci sprzętu, oprogramowania itp. Wiem, o czym mówię...
Materiały
* Nóż i szpikulec do otwierania
* Raspberry Pi, lub podobne urządzenie Linux z interfejsem SPI
-> Musi być w stanie uruchomić hid_download_py
-.> No i oczywiście potrzebna jest też ostatnia wersja OpenBeken
* Stacja lutownicza z cienkim grotem, lut, może topnik
* Sześć przewodów połączeniowych z jednym końcem do lutowania, a drugim do podłączenia do nagłówka pinów Raspberry Pi
Krok 1 - Otwieranie
Aby otworzyć urządzenie, będziesz musiał użyć noża do cięcia, trochę siły i dużo czasu. Odwróć urządzenie do góry nogami, a zobaczysz, gdzie dwie części obudowy zostały ze sobą sklejone. Powinieneś użyć noża do cięcia, aby oddzielić oba elementy ze wszystkich czterech stron i, jeśli to możliwe, również w rogach. Gdy to zrobisz, użyj spudgera (lub noża do cięcia, jeśli jesteś odważny), aby podważyć każdą stronę. Wystarczy odrobina, ale szczególnie rogi mogą być dość trudne do oddzielenia.
Tutaj możesz zobaczyć moją inteligentną wtyczkę sklejoną z powrotem - ślady pokazują, gdzie musiałem użyć siły...
Krok 2 - Przygotowanie do flashowania
Po otwarciu urządzenia, powinieneś łatwo znaleźć niebieską płytkę oznaczoną "WB2S" - jest to ta, którą musisz flashować. Niestety piny wymagane do wykonania flashowania UART nie są w ogóle dostępne. Nie jest również możliwe odlutowanie płytki, chyba że najpierw odlutujesz główną płytkę drukowaną. Nie zdecydowałem się na tę opcję, ponieważ nie chciałem majstrować przy głównym obwodzie elektrycznym 220 V - cokolwiek pójdzie nie tak i urządzenie może się zapalić lub możesz zostać porażony prądem po ponownym podłączeniu go do prądu. W porównaniu z tym, majstrowanie przy układzie scalonym BK7231T 3,3 V jest stosunkowo bezpieczne (a przynajmniej taką mam nadzieję).
Na szczęście istnieje inna, rzadziej używana, ale wciąż realna opcja flashowania urządzenia: SPI. I całe szczęście, że piny do tego są całkiem dostępne. Przynajmniej większość z nich. Kiedy już miałem wszystko zlutowane zgodnie ze schematem , zorientowałem się, że zasilanie 3.3V zostało pominięte. Dlatego podaję tutaj kompletną instrukcję okablowania:
CEN -> GPIO22
SCK -> SPI0 SCLK
CSN -> SPI0 CE0
SI -> SPI0 MOSI
(ADC_)SO -> SPI0 MISO
VBAT -> 3v3
GND -> Ground
Dla przypomnienia:
[url=https://developer.tuya.com/en/docs/iot/wb2s-module-datasheet?id=K9ghecl7kc479] WB2S Datasheet
Raspberry Pi Pinout
Zauważysz, że szczególnie pady VBAT i GND są naprawdę trudne do przylutowania, ponieważ główna płytka drukowana przeszkadza. W związku z tym (po tym jak ledwo udało mi się przylutować pad VBAT) oszukałem trochę i podłączyłem masę w inny sposób: Okazuje się, że metalowa obudowa, chroniąca właściwy układ scalony, również jest uziemiona
Życzę powodzenia w lutowaniu!
Moja pierwsza próba z tylko czterema przewodami. Brakuje jeszcze VBAT i GND.
I ostateczna wersja z podłączonymi wszystkimi sześcioma przewodami. Jeśli nie widzisz siebie lutującego w tej maleńkiej szczelinie, ta instrukcja prawdopodobnie nie jest dla Ciebie.
Krok 3 - Zrób kopię zapasową
Jeśli udało Ci się dotrzeć aż tutaj, trudna część jest już za Tobą (chyba, że jesteś dobry ze sprzętem i naprawdę kiepski z oprogramowaniem).
Nadal jednak musisz sprawdzić, czy twoje próby lutowania zakończyły się sukcesem, czy też musisz spróbować ponownie. Można to łatwo zrobić, uruchamiając narzędzie hid_download_py w celu utworzenia zrzutu/kopii zapasowej pamięci flash urządzenia.
Spowoduje to zrzucenie pamięci flash, zaczynając od adresu 0x0 i kończąc na 0x12A000. Możesz chcieć zrzucić więcej, ale ponieważ ta część zawiera oryginalny bootloader i oprogramowanie układowe, nie ma takiej potrzeby.
Jeśli wszystko zostało poprawnie podłączone, proces odczytu powinien rozpocząć się po kilku sekundach. Jeśli nie, to coś nie jest podłączone prawidłowo. Przepraszamy.
Krok 4 - Wyłącz ochronę przed zapisem
Ten krok był nieco trudny do zrozumienia, ponieważ nie został nigdzie udokumentowany. Najwyraźniej większość producentów nie zawraca sobie głowy włączaniem ochrony przed zapisem, więc proces flashowania będzie działał w większości przypadków - jednak nie w moim przypadku. Na szczęście usunięcie ochrony przed zapisem okazało się dość proste, po zapoznaniu się z odpowiednimi częściami arkusza danych pamięci flash .
Poniższy skrypt Pythona powinien wystarczyć:
Większość tego skryptu to tylko inicjalizacja lub wyjście debugowania, jedyną interesującą częścią jest spi.xfer2([0x01, 0x00]) , który ustawia rejestr stanu na 0 i tym samym wyłącza ochronę przed zapisem.
Krok 5 - Flashowanie Wreszcie! Upewnij się, że masz odpowiednią wersję [url=https://github.com/openshwprojects/OpenBK7231T_App/releases] OpenBK . Platforma w naszym przypadku powinna być BK7231T. Przynajmniej taki układ wbudowano w moduł WB2S. Jednak producenci tanich inteligentnych urządzeń są znani z tego, że regularnie sprzedają wersje produktów z różnymi chipami pod tą samą nazwą, więc upewnij się, że twój moduł to rzeczywiście WB2S. Odnośnie użycia : Wykonamy SPI Flash. W sumie oznacza to, że będziesz chciał pobrać OpenBK7231T_QIO_X.XX.XXX.bin .
Po pobraniu można wykonać flashowanie za pomocą następującego polecenia:
Według mojego rozeznania, wersja UART jest taka sama tylko bez bootloadera, więc jeśli pominiesz flagę -s 0 , powinieneś być w stanie użyć tej wersji. Jest to jednak tylko teoria i nie próbowałem tego w praktyce. Dobra wiadomość: jeśli chcesz spróbować zbrickować swoje urządzenie, są duże szanse, że łatwo się z tego wyleczysz. Podczas gdy UART może się zepsuć, jeśli flashujesz niewłaściwy bootloader, SPI nie
Krok 6 - Podstawowa konfiguracja
Po zakończeniu flashowania, urządzenie zostanie automatycznie uruchomione ponownie i zacznie migać dwa razy na sekundę. Oznacza to, że urządzenie jest teraz w trybie punktu dostępowego i można się z nim połączyć z komputera lub smartfona. Identyfikator SSID punktu dostępowego powinien zaczynać się od OpenBK7231T, aby był łatwy do wykrycia. Połącz się z nim i otwórz http://192.168.4.1/index .
Pierwszą rzeczą do skonfigurowania jest zwykle własne WiFi - kiedy to zrobisz, prawdopodobnie będziesz chciał skonfigurować sprzęt urządzenia: LED, Button, Relay i Power Sensor ( BL0937CF1 ). W tym celu możesz użyć następującej konfiguracji:
To wszystko, gotowe! Gratulacje! Oczywiście jest jeszcze trochę pracy z konfiguracją, ale to, czego dokładnie chcesz od tego momentu, zależy od Ciebie.
Proszę zostaw komentarz, jeśli udało Ci się wszystko uruchomić - lub jeśli coś nie zadziałało, abym mógł poprawić moje instrukcje.
Również byłbym wdzięczny za komentarz. Chciałbym wiedzieć, czy czujnik mocy działa: Udało mi się skalibrować odczyty napięcia i watów, ale odczyt amperów jest odwrócony / losowy / zdecydowanie nieprawidłowy.
w tym temacie wyjaśnię wam, jak można flashować OpenBeken (a.k.a. OpenBK7231T) na LEDVANCE Smart+ (a.k.a. Smart WiFi Plug AC28208)
Osobiście oceniłbym, że trudność flashowania OpenBeken do tego urządzenia jest dość wysoka w porównaniu do innych inteligentnych wtyczek, więc możesz chcieć ponownie rozważyć. W każdym razie, upewnij się, że przeczytałeś ten post w całości przed rozpoczęciem i upewnij się, że rozumiesz wszystkie kroki tej instrukcji i wiesz, jak je wykonać - zakładam przynajmniej podstawową wiedzę na temat lutowania i programowania z Twojej strony!
Upewnij się, że masz dostępne następujące materiały, najlepiej przed rozpoczęciem . W przeciwnym razie możesz znaleźć się z na wpół zdemontowanym urządzeniem i będziesz musiał wykazać się kreatywnością, ponieważ brakuje ci sprzętu, oprogramowania itp. Wiem, o czym mówię...
Materiały
* Nóż i szpikulec do otwierania
* Raspberry Pi, lub podobne urządzenie Linux z interfejsem SPI
-> Musi być w stanie uruchomić hid_download_py
-.> No i oczywiście potrzebna jest też ostatnia wersja OpenBeken
* Stacja lutownicza z cienkim grotem, lut, może topnik
* Sześć przewodów połączeniowych z jednym końcem do lutowania, a drugim do podłączenia do nagłówka pinów Raspberry Pi
Krok 1 - Otwieranie
Aby otworzyć urządzenie, będziesz musiał użyć noża do cięcia, trochę siły i dużo czasu. Odwróć urządzenie do góry nogami, a zobaczysz, gdzie dwie części obudowy zostały ze sobą sklejone. Powinieneś użyć noża do cięcia, aby oddzielić oba elementy ze wszystkich czterech stron i, jeśli to możliwe, również w rogach. Gdy to zrobisz, użyj spudgera (lub noża do cięcia, jeśli jesteś odważny), aby podważyć każdą stronę. Wystarczy odrobina, ale szczególnie rogi mogą być dość trudne do oddzielenia.
Tutaj możesz zobaczyć moją inteligentną wtyczkę sklejoną z powrotem - ślady pokazują, gdzie musiałem użyć siły...
Krok 2 - Przygotowanie do flashowania
Po otwarciu urządzenia, powinieneś łatwo znaleźć niebieską płytkę oznaczoną "WB2S" - jest to ta, którą musisz flashować. Niestety piny wymagane do wykonania flashowania UART nie są w ogóle dostępne. Nie jest również możliwe odlutowanie płytki, chyba że najpierw odlutujesz główną płytkę drukowaną. Nie zdecydowałem się na tę opcję, ponieważ nie chciałem majstrować przy głównym obwodzie elektrycznym 220 V - cokolwiek pójdzie nie tak i urządzenie może się zapalić lub możesz zostać porażony prądem po ponownym podłączeniu go do prądu. W porównaniu z tym, majstrowanie przy układzie scalonym BK7231T 3,3 V jest stosunkowo bezpieczne (a przynajmniej taką mam nadzieję).
Na szczęście istnieje inna, rzadziej używana, ale wciąż realna opcja flashowania urządzenia: SPI. I całe szczęście, że piny do tego są całkiem dostępne. Przynajmniej większość z nich. Kiedy już miałem wszystko zlutowane zgodnie ze schematem , zorientowałem się, że zasilanie 3.3V zostało pominięte. Dlatego podaję tutaj kompletną instrukcję okablowania:
CEN -> GPIO22
SCK -> SPI0 SCLK
CSN -> SPI0 CE0
SI -> SPI0 MOSI
(ADC_)SO -> SPI0 MISO
VBAT -> 3v3
GND -> Ground
Dla przypomnienia:
[url=https://developer.tuya.com/en/docs/iot/wb2s-module-datasheet?id=K9ghecl7kc479] WB2S Datasheet
Raspberry Pi Pinout
Zauważysz, że szczególnie pady VBAT i GND są naprawdę trudne do przylutowania, ponieważ główna płytka drukowana przeszkadza. W związku z tym (po tym jak ledwo udało mi się przylutować pad VBAT) oszukałem trochę i podłączyłem masę w inny sposób: Okazuje się, że metalowa obudowa, chroniąca właściwy układ scalony, również jest uziemiona
Życzę powodzenia w lutowaniu!
Moja pierwsza próba z tylko czterema przewodami. Brakuje jeszcze VBAT i GND.
I ostateczna wersja z podłączonymi wszystkimi sześcioma przewodami. Jeśli nie widzisz siebie lutującego w tej maleńkiej szczelinie, ta instrukcja prawdopodobnie nie jest dla Ciebie.
Krok 3 - Zrób kopię zapasową
Jeśli udało Ci się dotrzeć aż tutaj, trudna część jest już za Tobą (chyba, że jesteś dobry ze sprzętem i naprawdę kiepski z oprogramowaniem).
Nadal jednak musisz sprawdzić, czy twoje próby lutowania zakończyły się sukcesem, czy też musisz spróbować ponownie. Można to łatwo zrobić, uruchamiając narzędzie hid_download_py w celu utworzenia zrzutu/kopii zapasowej pamięci flash urządzenia.
./spigrogram -r -s 0 -l 12A000Spowoduje to zrzucenie pamięci flash, zaczynając od adresu 0x0 i kończąc na 0x12A000. Możesz chcieć zrzucić więcej, ale ponieważ ta część zawiera oryginalny bootloader i oprogramowanie układowe, nie ma takiej potrzeby.
Jeśli wszystko zostało poprawnie podłączone, proces odczytu powinien rozpocząć się po kilku sekundach. Jeśli nie, to coś nie jest podłączone prawidłowo. Przepraszamy.
Krok 4 - Wyłącz ochronę przed zapisem
Ten krok był nieco trudny do zrozumienia, ponieważ nie został nigdzie udokumentowany. Najwyraźniej większość producentów nie zawraca sobie głowy włączaniem ochrony przed zapisem, więc proces flashowania będzie działał w większości przypadków - jednak nie w moim przypadku. Na szczęście usunięcie ochrony przed zapisem okazało się dość proste, po zapoznaniu się z odpowiednimi częściami arkusza danych pamięci flash .
Poniższy skrypt Pythona powinien wystarczyć:
from spidev import SpiDev
from RPi import GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(22, GPIO.OUT)
spi = SpiDev()
spi.open(0, 0)
spi.mode = 3
spi.max_speed_hz = 50000
GPIO.output(22, GPIO.LOW)
sleep(1)
GPIO.output(22, GPIO.HIGH)
spi.xfer2([0xD2]*250)
[_, reg_prev] = spi.xfer2([0x05, 0x00])
spi.xfer2([0x01, 0x00])
[_, reg_after] = spi.xfer2([0x05, 0x00])
print("Status register overwritten: Was {0}, now {1}".format(reg_prev, reg_after))Większość tego skryptu to tylko inicjalizacja lub wyjście debugowania, jedyną interesującą częścią jest spi.xfer2([0x01, 0x00]) , który ustawia rejestr stanu na 0 i tym samym wyłącza ochronę przed zapisem.
Krok 5 - Flashowanie Wreszcie! Upewnij się, że masz odpowiednią wersję [url=https://github.com/openshwprojects/OpenBK7231T_App/releases] OpenBK . Platforma w naszym przypadku powinna być BK7231T. Przynajmniej taki układ wbudowano w moduł WB2S. Jednak producenci tanich inteligentnych urządzeń są znani z tego, że regularnie sprzedają wersje produktów z różnymi chipami pod tą samą nazwą, więc upewnij się, że twój moduł to rzeczywiście WB2S. Odnośnie użycia : Wykonamy SPI Flash. W sumie oznacza to, że będziesz chciał pobrać OpenBK7231T_QIO_X.XX.XXX.bin .
Po pobraniu można wykonać flashowanie za pomocą następującego polecenia:
./spigrogram -w -s 0 OpenBK7231T_QIO_X.XX.XXX.binWedług mojego rozeznania, wersja UART jest taka sama tylko bez bootloadera, więc jeśli pominiesz flagę -s 0 , powinieneś być w stanie użyć tej wersji. Jest to jednak tylko teoria i nie próbowałem tego w praktyce. Dobra wiadomość: jeśli chcesz spróbować zbrickować swoje urządzenie, są duże szanse, że łatwo się z tego wyleczysz. Podczas gdy UART może się zepsuć, jeśli flashujesz niewłaściwy bootloader, SPI nie
Krok 6 - Podstawowa konfiguracja
Po zakończeniu flashowania, urządzenie zostanie automatycznie uruchomione ponownie i zacznie migać dwa razy na sekundę. Oznacza to, że urządzenie jest teraz w trybie punktu dostępowego i można się z nim połączyć z komputera lub smartfona. Identyfikator SSID punktu dostępowego powinien zaczynać się od OpenBK7231T, aby był łatwy do wykrycia. Połącz się z nim i otwórz http://192.168.4.1/index .
Pierwszą rzeczą do skonfigurowania jest zwykle własne WiFi - kiedy to zrobisz, prawdopodobnie będziesz chciał skonfigurować sprzęt urządzenia: LED, Button, Relay i Power Sensor ( BL0937CF1 ). W tym celu możesz użyć następującej konfiguracji:
{
"vendor": "LEDVANCE",
"bDetailed": "0",
"name": "LEDVANCE Smart+",
"model": "Smart WiFi Plug AC28208",
"chip": "BK7231T",
"board": "WB2S",
"pins": {
"6": "Btn;0",
"7": "BL0937CF;0",
"8": "BL0937CF1;0",
"10": "LED_n;0",
"24": "Rel;0"
"26": "BL0937SEL;0"
}
}To wszystko, gotowe! Gratulacje! Oczywiście jest jeszcze trochę pracy z konfiguracją, ale to, czego dokładnie chcesz od tego momentu, zależy od Ciebie.
Proszę zostaw komentarz, jeśli udało Ci się wszystko uruchomić - lub jeśli coś nie zadziałało, abym mógł poprawić moje instrukcje.
Również byłbym wdzięczny za komentarz. Chciałbym wiedzieć, czy czujnik mocy działa: Udało mi się skalibrować odczyty napięcia i watów, ale odczyt amperów jest odwrócony / losowy / zdecydowanie nieprawidłowy.
Fajne? Ranking DIY
