Instrukcja jak zgrać całą zawartość flash przełącznika Sonoff o rozmiarze flash 1MB
Uwaga: zgranie oryginalnego oprogramowania i wgranie go do innego urządzenia Sonoff nie zadziała. Jedynce co udało mi się z sukcesem zrobić to zgrać pamięć flash z jednego Sonoff i ponownie wgrać do tego samego Sonoff.
Potrzebne
- Konwerter USB na TTL 3.3V oparty na układzie CP2102, ok 13pln
- Oprogramowanie esptool: https://github.com/espressif/esptool
- Jak zainstalować esptool za pomocą pip Python w Windows
- Kable wtyczka USB – gniazdo USB – do podłączenia Konwertera USB-TTL z komputerem
- 4 przewody, aby podłączyć konwerter USB-TTL z przełącznikiem – gniazdem szpilkowym
Instrukcja
Krok 1: Rozbieramy obudowę, aby dostać się do środka. Widzimy tutaj 5 otworów pod przyciskiem. Te 5 otworów to złącza, które wykorzystamy do załadowania firmware
Krok 2: Proponuję przylutować gniazdo szpilkowe w otworach. Ułatwi to przyczepienie kabli.
Krok 3: Podłączamy przewody konwertera USB-TTL z przełącznikiem. Należy zwrócić szczególną uwagę, który kabel podłączyć z którym otworem w przełączniku i konwerterze.
Krok 4: wprowadzamy przełącznik sonoff w tryb wgrywania/zgrywania firmware.
- Kabel USB musi być odłączony od komputera
- Wciskamy i trzymamy przycisk w przełączniku sonoff
- Wkładamy do złącza USB w komputerze, kabel USB do którego podpięty jest konwerter USB-TTL (patrz Krok 3), a do którego podpięty jest już przełącznik sonoff.
- Puszczamy przycisk w przełączniku sonoff
Teraz przełącznik sonoff powinien być w trybie wgrywania/zgrywania firmware.
Zgrywanie używając linii poleceń (cmd najlepiej odpalić jako administrator)
esptool.py --port [port COM] --baud 115200 read_flash 0x00000 0x100000 [ścieżka do pliku]
przykład:
esptool.py --port COM3 --baud 115200 read_flash 0x00000 0x100000 C:\ewelink1M.bin
Wgrywanie używając linii poleceń (cmd najlepiej odpalić jako administrator)
esptool.py --port [port COM] --baud 115200 write_flash --flash_mode qio 0x00000 [ścieżka do plik]
przykład:
esptool.py --port COM3 --baud 115200 write_flash --flash_mode qio 0x00000 C:\ewelink1M.bin
Podziękowania dla @skiba-26 za dodatkowe informacje do instrukcji
Dla próby chciałem sprawdzić co się będzie dziać jak podłączę się do Sonoff'a w wersji TOUCH (ten taki przełącznik ścienny) poprzez konwerter USB na układzie FTDI FT232RL. PUTTY normalnie wyświetla informacje z przełącznika jak go podłącz e do zasilania. Oczywiście prędkość ustawiłem tu na 78800 gdyż taką wyczytałem na forum supla (115200 wywalała same krzaki).
Skoro putty normalnie ruszyło to poszedłem dalej. Zainstalowałem więc python 2.7.14 oraz esptool (instrukcje były na youtube).
Wydaje mi się, że próba zgrania flasha na PC nie powinna niczego "uszkodzić" w pamięci, a co najwyżej by się nie powiodła w porównaniu do wgrywania niesprawdzonym konwerterem co mogłoby całkowicie uniemożliwić wgrywania/zgrywania flasha już nawet sprawdzonym konwerterem jeśli by coś poszło nie tak.
Tak więc spróbowałem. Niestety wpisanie w wierszu polecenia (po uruchomieniu esptool) takiej oto składni:
esptool.py --port COM6 --baud 78800 read_flash 0x00000 0x100000 C:\ewelink1Mtouch1.bin
wyskakuje mi błąd "SyntaxError: invalid syntax"
z tego co się orientuje oznacza to błąd składni a nie samej komunikacji z urządzeniem. Tak więc czy przypadkiem coś się nie zmieniło w składni jaką program rozpoznaje? Może mam jakąś nowszą wersję esptool, która coś ma inaczej?
Stosowny konwerter jeszcze dzisiaj zamówię, ale ten błąd wydaje mi się będzie wyświetlać na każdym, konwerterze...
u mnie poszło :
masz esptool zainstalowany? co dostajesz jak wpiszesz esptool.py version?
Mam zainstalowany, zgodnie z instrukcjami jakie znalazłem na youtube. Niestety po wpisaniu tego znów ten sam błąd:
>>> esptool.py version
File "", line 1
esptool.py version
^
SyntaxError: invalid syntax
>>>
poszukaj w windows czy masz plik: esptool.py.exe, bo linia poleceń go nie znajduje
plik mam i już się sprawa wyjaśniła. Popatrz jak polecenie jest napisane w tu w instrukcji a jak napisałeś Ty. W instrukcji brakowało ".exe" za esptool. Gdy napisałem komendę z tym rozszerzeniem to od razu mi poszło.
w windows nie potrzeba podawać exe, żeby uruchomić program. Ważne jest, żeby command line odnalazł gdzie jest esptool.py.exe
to tak jak uruchamianie cmd możesz wpisać cmd lub cmd.exe i oba uruchomią command line..
Można podać całą ścieżkę do katalogu gdzie jest esptool i wywoływać esptool całą ścieżką
przykładowo u mnie:
C:\Users\adrian\AppData\Local\Programs\Python\Python36\Scripts\esptool.py.exe
lub
C:\Users\adrian\AppData\Local\Programs\Python\Python36\Scripts\esptool.py
lub dodać ścieżkę do zmiennej środowiskowej PATH do katalogu, gdzie zainstalowany jest esptool. Wtedy nie trzeba nawet podawać ścieżki do katalogu z esptool, jak na załączonym screenshocie. Kilka sposobów uruchomienia esptool.py
to co tutaj podesłałeś wygląda na uruchamianie esptool.py w pythonie. Nie bezpośrednio w command linie i może sypać błędami
>>> esptool.py version
File "", line 1
esptool.py version
^
SyntaxError: invalid syntax
>>>
Ale grunt, że działa,
pozdrawiam, a.
Witam Szanownych kolegów
Na forum jestem świeży ale od kilku dni śledzę tematy dotyczące chipa ESP seria 86..., itp.
Udało mi się uruchomić odczytywanie z PSF-B01 za pomocą esptool-a. Mam wbudowany chip ESP 8285.
Odczytuje w 100 % tylko nie wiem dlaczego nie zapisuje odczytanego "wsadu" w lokalizacji, którą stworzyłem:
Poniżej screen z ekranu.
dziwne
- spróbuj może inne lokalizacji (aczkolwiek nie powinno to mieć znaczenia, skoro zapisałeś)
- może coś ten plik trzyma? jakiś inny proces? masz to samo jak zrestartujesz kompa?
Witam Cię Adrianie
Już poradziłem sobie. Okazuje się, że po pierwsze musiałem odpalić cmd z uprawnieniami administratora, a po drugie nie potrzebnie chciałem zapisać odczytany wsad w folderze. Wystarczy bezpośrednio na dysk 🙂
ok, dodam do instrukcję info, żeby odpalać cmd jako administrator
no zawsze może się komuś przydać taka informacja. Tym bardziej, że kilka godzin szukałem info co jest nie tak 🙂
Jak ktoś będzie potrzebował to wrzucam zdjęcie tego sterownika 🙂
Witam.
Posiadam podobny układ oparty na ESP8285, próbowałem wgrać nowy firmware (Supla) lecz moduł po tej próbie zachowuje się dziwnie:
Cały czas "klepie" przekaźnik, tak jak przy wejściu w tryb programowania, nie da się tego wyłączyć.
Czym wgrywałeś?
Programowanie przechodzi poprawnie przez ESP Flash Download Tool lecz muszę wybrać moduł ESP 8285
Pierwsze czyszczę " ERASE"
Następnie wgrywam, pisze "Finish "
Czy procedura wgrywania dla ESP 8285 jest jakaś inna ? Bo w ESPDT nie mogę wybrać parametrów takich jak SPI mode
Urządzenie nie wstaje poprawnie zachowuje się cały czas jak przy wejściu w tryb programowania.
tak jak na filmiku poniżej od 18 sec.
Procedura wgrywania jest taka sama. Te urządzenie z tego co pamięta mam takie funkcje jak Inching /Self-Locking i którymś z tych przycisków się je przełącza, jak wciskasz kilka razy to nie przełączy się do takiego normalnego trybu?
mniej więcej coś podobnego jest w tym urządzeniu, ok 2m40sek https://www.youtube.com/watch?v=i0SZLAJKloc&t=4s - trzeba kilka razy przełączyć, aż zacznie działać w normalnym trybie.
A jak wgrasz inny firmware to też taki sam efekt?
Czy dobrze rozumiem, że zanim wgram np. Tasmota, mogę sobie "zrzucić" oryginalne oprogramowanie do pliku i w razie czego zastąpić Tasmota znowu oryginalnym firmware?
Można by było dodać do instrukcji że jeżeli chcesz to połączyć z supla to w supla Musi być włączona obcja dodawania urządzeń. W supla zalogowałem się z miesiąc wcześniej niż chciałem dodać sonoff a i trochę czasu mi zajęło zanim na to wpadłem.
Panowie, pomocy !
nie mogę zgrać softu bo wywala taki oto błąd:
c:\Python27\Scripts>esptool.py.exe --port COM3 --baud 115200 read_flash 0x00000 0x100000 C:\Python27\sonoff\ewelink1M.bin
esptool.py v2.4.0
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header
Wyjaśniło się, winny był sam moduł Sonoff, a dokładniej uszkodzony microswitch w module.
próba zgrania oryginalnego softu kończy się na Stub running... nie ma potem żadnego komunikatu, update'u, Adrian, jakieś wsparcie, proszę?
podeslij screenshot