Sonoff Orgin POWR316 - problem z wgraniem Tasmoty

Ponieważ Sonoff POWR2 jest już praktycznie niedostępny zakupiłem POWR316 z myślą o wgraniu Tasmoty. Do instalacji użyłem onlinowego instalatora https://tasmota.github.io/install/. Moduł posiada bluetooth wybrałem więc tasmota32-bluetooth.bin. Poszło bez blędów, jednak nie mogę przejść do konfiguracji sieci. Wygląda jakby moduł uruchamiał się i po chwili restartował w pętli. Próbowałem wgrywać inne wersje tasmoty, jednak efekt ten sam. Oprócz instalatora onlinowego próbowałem też ESPHome-Flasher-1.4.0, ale efekt zawsze jest ten sam. Oglądałem kilka filmów prezentujących instalację tasmoty w POWR316 i zawsze po wgraniu i restarcie dało się połączyć z modułem przez WiFi. Poniżej fragment logów z Termite.

Czy ktokolwiek na tych filmikach wgrywał tam wersję tasmota32-bluetooth.bin ?
Podstawowa dokumentacja na githubie

określa wymagania dla MCU i (dla wersji bluetooth) nie chodzi o bluetooth tylko o wielkość zamontowanej pamięci flash (fabryczne firmware może być sporo mniejsze, bo nie zawiera całego mydła i powidła świata", które umożliwia Tasmocie obsługę czego się tylko da).

Jaki masz moduł i flash zamontowane na płytce?
(ESP32-D0WD-V3 nie zawiera wbudowanego flasha)

Czemu w ogóle zajrzałem na githuba? - bo szeroka dokumentacja

nie zawiera żadnych informacji o buildach tasmota32-bluetooth.bin, więc po prostu bałbym się coś takiego wgrywać bez sprawdzenia “a po co to, a na co?” :stuck_out_tongue:

To jest flasher dedykowany do firmware ESPHome (a nie do Tasmoty) skompilowanego w stary sposób (legacy format, więc musiałbyś sobie samodzielnie skompilować wsad ESPHome, te dostępne online są pod webflasher).

Użyj tego GitHub - tasmota/tasmota-pyflasher: Simple Tasmota firmware flashing tool based on NodeMCU PyFlasher
zaznacz Erase flash na yes i wrzuć wersję 32 pl, jak nie ruszy, to przynajmniej wyczyści MCU z tego niepotrzebnego badziewia, które wgrałeś.
Potem możesz spróbować tym samym instalatorem online , ale podstawową wersję

Przeróżne rzeczy można znaleźć w sieci. Ktoś nawet używał Tasmotizera do wgrywania tasmoty na tym module. Dziękuję za cenne uwagi, już wiem że robiłem to źle. Sprawdzę wieczorem. Jak odczytać wersję wbudowanego flasha?

Rozebrać, zrobić zdjęcie makro, to powinien być malutki układzik (zwykle koło 5mm x 5mm) z 8 nóżkami.
Na końcu tego pliku masz rysunki wszelkich typowych obudów

Ale w zasadzie nie ma potrzeby tego robić (jakkolwiek jeśli możesz to zostanie dla potomnych, chyba że ktoś wie jaki flash zamontowano w POWR316), “zwykła” Tasmota zadziała raczej na każdym sprzęcie.


To akurat jakoś specjalnie nie dziwi, nie wiem jaki jest status tego projektu i czy nadaje się do wszelkich współczesnych MCU Espressif, ale ESP82xx i ESP32 (bez przyrostków w stylu -C3 czy -S2) to stosunkowo stare konstrukcje, więc powinny być obsługiwane.

W dodatku “pod pokładem” Tasmotiozer zawiera podobno oficjalny ESP flasher (ale ESP flasher i ESPHome flasher to 2 osobne i różne rzeczy!).


PS W zasadzie to zależałoby skrobnąć issue dotyczące braków w dokumentacji, nie szukałem wprawdzie głęboko, ale byłoby fajnie gdyby ostrzeżenie o wymaganiach i w ogóle jakaś informacja o buildach bluetooth (i innych dotąd nieujętych) była w głównej dokumentacji.
Właściwe miejsce na takie zgłoszenia jest tam:

Niestety żaden ze sposobów nie zadziałał. Moduł ciągle się restartuje. Zamówiłem już drugi i spróbuję wykonać automatyzację na fabrycznym oprogramowaniu. W jaki sposób zgrać oryginalne oprogramowanie z nowego modułu i wgrać je do tego niedziałającego? Tasmota nie chce się uruchomić, ale może dałoby się chociaż przywrócić moduł do działania fabrycznym oprogramowaniem.

  1. Na 100% musi się udać uruchomić na dowolnym sofcie, to ESP32 a nie kosmiczna technologia (no chyba, że Sonoff poszedł drogą Tuya, w to wątpię, ale otwórz i sprawdź, zrób ładne foty makro wrzuć do posta).

  2. Backup zgrasz tym narzędziem, czy zadziała z innym egzemplarzem, to się okaże
    Releases · espressif/esptool · GitHub
    przykładowa składnia komend (tu dla wersji czysto pythonowej, ale jeśli np. chcesz windowsowego exeka to składnia jest ta sama, ale bez pythona z przodu i oczywiście zamiast .py masz .exe)
    How to Backup & Restore Official Firmware on any Espressif ESP8266 & ESP32 - Projects made with Blynk - Blynk Community
    oczywiście musisz najpierw wiedzieć jak masz rozmiar flasha

PS oczywiście pamiętałeś o GPIO0 do masy? (podepnij jeszcze przed zresetowaniem MCU i nie odpinaj póki flasher nie zadziała, w sumie to musisz odpiąć dopiero gdy chcesz zresetować do trybu pracy)
i o połączeniu szeregowym Rx do Tx i nawzajem? (sądząc po logu w terminalu raczej o tym raczej pamiętałeś)
Ponieważ to jest urządzenie zasilane sieciowo to absolutnie nie rób tego podłączając jego zasilanie do sieci 230V~ (zagrożenie porażeniem oraz przy równie niekorzystnym splocie okoliczności uwaleniem portu szeregowego)
Powinieneś się wyposażyć w zasilacz, którym zasilisz MCU

PPS dwa programy naraz nie mogą mieć dostępu do tego samego portu szeregowego, więc zanim zaczniesz zamknij ten terminal

po skutecznym wgraniu zwykłej Tasmoty (oczywiście w wersji dla ESP32) powinieneś skonfigurować tak

Jak wpadł w bootloop (Nieodpowiednie oprogramowanie) to i się restartuje.
Przyczyny restartu: rst cause: np. 4

reset causes:
    0: 
    1: normal boot
    2: reset pin
    3: software reset
    4: watchdog reset

Kto cię namówił żeby tam wgrać tasmota32-bluetooth.bin
Każdy z tych modułów czy ma w nazwie WiFi i takie oprogramowanie trzeba wgrać.
Bluetooth jest tylko dodatkiem
Screenshot - 10.08.2023 , 03_12_09

Sonoff POW Origin R3 (16A) WiFi

Sonoff TH20 Elite (R3) WiFi

Możesz spróbować którejś z tych metod https://tasmota.github.io/docs/Device-Recovery/ ale według mnie pozostaje ci tylko.

Screenshot - 10.08.2023 , 03_03_06

To sobie możesz darować, wgranie oryginalnego firmware z innego modułu nic nie da , nie ruszy. Jak nie zrobiłeś kopi przed wgraniem tasmoty , to zapomnij o fabrycznym.

Z czego wynika brak możliwości takiego wgrania fabrycznego firmware?

Zasadniczo MAC-adress, numer seryjny czy unikalne klucze dla danego egzemplarza MCU są zapisane w e-fuse lub ustawiane fabrycznie przez laserowe wypalenie na obszarze matrycy mostków (metoda z wypalaniem jest używana np. w DS18B20 i zbliżonych konstrukcjach do ustawienia unikalnego numeru seryjnego, myślę że takie dane jak numer seryjny i ewentualnie MAC-adress są zapisane fabrycznie w każdym popularnym MCU metodą laserową), nie wiem jak jest w ESP32 (można pokopać po dokumentacji, z tego co kojarzę e-fuse na 100% są dostępne, wręcz do samodzielnego zaprogramowania w nowych układach), więc teoretycznie przywrócenie backupu flasha z innego egzemplarza powinno się udać, ALE istnieje też możliwość, że jakieś klucze są przechowywane w obszarze niechronionym i wtedy nadpisanie ich zawartością innego egzemplarza nadpisze te dane (używane np. do identyfikacji czy logowania w chmurze) zasadniczo rozwiązanie z przechowywaniem unikalnych danych w obszarze niechronionym jest kiepskim pomysłem, ale widywałem już różne pomysły.

Generalnie kazdy moduł łącząc się z chińską chmurą zgłasza się po indywidualnym ID , dwa moduły z identycznym ID nie mogą funkcjonować w takiej chmurze i sonoff się przed tym zabezpiecza.

Według mnie te dane są zapisane na stałe i nie da się ich zmienić, można by tu rozpatrywać wiele scenariuszy np. 50 klonów urządzeń z takimi samymi ID i dochodzić na którym jest oryginalne.
W przypadku Sonoff można sobie poradzić bez chmury, czy wygrywając alternatywne oprogramowanie, w przypadku Tuya :fu:bo jedyne zmiany w ich oprogramowaniu to łatanie dziur abyś ty nic nie zmienił :stuck_out_tongue_winking_eye:

Sądzę, że mając backup fabrycznego softu identycznego modelu sonoffa sztuczka może się udać (ale nie musi, czego dowodem są liczne płacze w internecie, że się nie udało), nie wiem jaka jest obecna sytuacja, ale nikt by się nie wysilał na tworzenie tej strony, gdyby to było całkowicie niemożliwe w przypadku każdego modelu

Logika nakazuje by identyfikator chmurowy był wyliczony z tych niezmiennych danych (MAC, nr seryjny), ale iTead Sonoff i eWelink miały swoje wzloty i upadki (były naprawdę różne cyrki łącznie z tym, że ich chmura nie akceptowała urządzeń z ich własnym fabrycznym starym softem).

Jakkolwiek teraz mają inną taktykę - oryginalny soft ma 2 tryby pracy - chmurowy i DIY (wprawdzie możecie mówić, że to tylko teorie spiskowe, ale mi się kojarzy to z taktyką konia trojańskiego w postaci backdoora).


Niestety osobiście nie mogę ani potwierdzić, ani zaprzeczyć - nigdy mi do głowy nie zaświtał pomysł wracania do chińskiego chmurowego softu na niczym, co zmodyfikowałem na jakieś alternatywy.

LEKKI OFF TOPIC
(to samo swoją drogą dotyczy wielu niedrogich routerów, które mają się świetnie do dziś u znajomych, czy rodziny, a pracują pod openwrt lub innymi alternatywnymi projektami, mając dziś opcje o których nikt nie marzył mieć w fabrycznym sofcie i wieloletnie wsparcie oczywiście na miarę możliwości sprzętu - ponad 10 lat wsparcia po końcu tego co dawał producent mają tylko modele, które były zaprojektowane dostatecznie “na bogato” pod względem istotnych zasobów jak flash, RAM, czy procesor, no i oczywiście karty sieciowe, aby nie odstawały radykalnie od dzisiejszych standardów)

Sprawa rozwiązana. Okazało się że za każdym razem popełniałem ten sam błąd. Sugerując się wcześniejszymi doświadczeniami z wgrywaniem tasmoty i późniejszą konfiguracją przez Termite próbowałem podobnie z POWR316. Nie da się w ten sposób ze wsględu na za słabe zasilanie i moduł resetował się w pętli przy próbie uruchomienia. Pomogła sugestia kolegi szopen o użyciu dodatkowego zasilacza. Dziękuję wszystkim za pomoc.

1 polubienie