Ostatnio znajomy podrzucił mi dość nietypowy czujnik otwarcia drzwi Sonoff. Czujnik ten zbudowany jest na mikrokontrolerze WiFi, którego jeszcze na forum nie omawialiśmy. Tutaj przedstawię jego wnętrze, zgram jego wsad z pamięci Flash przez SPI oraz rozważę potencjał zmiany firmware tego gadżetu.
Zakup czujnika
Czujnik okazał się być bardzo tani, niecałe 30 zł. To dziwne. Równie dziwne jest to, że w tytule ofert wsadzony jest keyword RF433, mimo iż komunikacji radiowej ten gadżet nie posiada, jest tylko WiFi:
W opisie sprzedawca tłumaczy, że wcześniejsza wersja, DW1, opierała się na RF433MHz, natomiast ta z oferty korzysta z WiFi:
Wymiary:
Co otrzymujemy w zestawie - opakowanie:
Zawartość:
Informacje z obudowy:
- Quiescent current: <=40uA
- Emission current: <= 15mA
- Model: DW2-Wi-Fi
- FCC ID: 2APN5DW2-WIFI
Czujnik można sparować z aplikacją eWeLink, działa wtedy bez zarzutów, ale to opisywałem już w przypadku pierwszego recenzowanego czujnika drzwi:
Czujnik otwarcia drzwi/okna WiFi - test, wnętrze, integracja z resztą urządzeń
więc tutaj to pomijam.
Wnętrze czujnika
Należy najpierw ściągnąć klapkę od baterii:
PCB trzyma się na dwóch zaczepach. Wystarczy te zaczepy podważyć, wtedy można wyjąć płytkę:
Oznaczenie PCB:
DW2-WiFi V1.2
2021.01.13
Widać osobno moduł WiFi, i osobno kość pamięci Flash:
H1 to czujnik halla, Q1 to tranzystor.
Czujnik halla ma oznaczenie 6131.
Kość SPI to TH25Q80UA.
Mikrokontroler to OPL1000 - produkcja Opulinka. Oferuje on łączność przez WiFi i Bluetooth.
Nie ma dla tego mikrokontrolera jeszcze otwartego oprogramowania dla urządzeń IoT. Dokumentacja jednakże jest dostępna:
https://github.com/Opulinks-Tech/OPL1000-HDK/tree/master
Jeszcze kilka fotek:
Zgrywanie wsadu Flash
Zamierzam uruchamiać SDK od OPL1000, więc zacząłem od odlutowania kości Flash (nie ufam klipsom):
Potem zgrałem jej zawartość programatorem na CH341:
Programator (NeoProgrammer 2.2.0.3) rozpoznał kość (SPI ID: EB6014):
Udało się odczytać dane, a w środku znalazłem nawet jakieś powiązane z wsadem łańcuchy znaków:
Kopię wsadu umieściłem tutaj:
https://github.com/openshwprojects/FlashDumps/commit/a4d13b2bee408249def6e3797748db6a45ddaee7
Możliwość programowania OPL1000
SDK jest dostępne i to w co najmniej kilku wersjach:
https://github.com/Opulinks-Tech/OPL1000A2-SDK
https://github.com/Opulinks-Tech/OPL1000A1-SDK
Dostępna jest nawet angielskojęzyczna dokumentacja:
https://github.com/Opulinks-Tech/OPL1000A1-SDK/tree/master/Doc/en
Na ten moment nie podjąłem dalszych kroków w celu jego uruchomienia, ale może to wkrótce się zmieni.
Podsumowanie
Produkt bardzo tani, ale na ten moment go od chmury nie odetniemy. Jest potencjał na przygotowanie dla niego firmware (pewnie będzie to port OpenBeken), ale jak na razie znam tylko jedno urządzenie gdzie on występuje (właśnie ten czujnik otwarcia drzwi z tematu), więc nie wiem czy byłby duży sens wykonywać całe portowanie dla jednego urządzenia... a może Wy mi powiecie?
Czy ktoś z Was spotkał się może z jakimiś urządzeniami opartymi o OPL1000?
Zapraszam do podzielenia się informacjami.
Fajne? Ranking DIY Pomogłem? Kup mi kawę.
