Skocz do zawartości

ESP32 + esptool.py, flaszowanie firmware micropythona (i nie tylko) za pomocą smartfona z OTG (nie tutorial)


orb777

Pomocna odpowiedź

Witam.

Ciekaw byłem, czy można w łatwy sposób zrobić to co w temacie, okazuje się, że tak, nawet na starym smartfonie (LG-M250). Metoda opisana w wiki termux-a u mnie nie zadziałała. W trybie OTG napięcie pod obciążeniem w M250 trochę "klęka", stąd lekko okrężna droga. Pewnie można też inaczej, tj. bez konwertera, zasilacza, podając 5V zmodyfikowanym przewodem USB, itd., ale akurat takie "klocki lego" miałem pod ręką:

- zrootowany android 8.1.0 + termux z doinstalowanymi pakietami: sudo, python3, pip3, pyserial, esptool, mpfshell (i pewnie z czymś jeszcze co było potrzebne)

- adapter OTG (ugreen) podłączany do telefonu

- konwerter waveshare (CH343G), w 8.1.0 wykrywany bezproblemowo

- przenośny "zasilacz" 3.3V

konfig.thumb.jpg.67f956d940af3cd1f8e2dfc302889299.jpg piny.thumb.jpg.0fcb8bc22e59501b51107474891315b2.jpg

Pinologia jest prosta: 3.3V i GND z ESP32 podpięte pod "zasilacz", natomiast piny RX/TX/GND podłączone do konwertera waveshare. GPIO0 i GND spięte zworką (szary przewód) tylko na czas flaszowania firmware przez esptool, podczas "zwykłego" używania - nie. Najpierw włączam "zasilacz" (ESP32), następnie podłączam adapter OTG do telefonu, wtedy działa ok.

Zrzuty ekranu z termux-a po wgraniu firmware (konwerter widoczny jako port /dev/ttyACM0):

port.thumb.png.7416ec1c0905485b1b6c9c1ed76c6b06.png 

 

Tryb repl, czyli "konsola interaktywna" micropythona:

mpfshell.thumb.png.5c83c3be7401169958ec63e59ace81bd.png

 

Prosty test (licznik):

test.thumb.png.62be317f7f6707cb7f2086dddfccf428.png

 

W sklepie play można znaleźć inne apki o podobnym działaniu (esp32loader, esp32_flash), ale nie próbowałem. Przyzwyczajony jestem do konsoli i dodatkowych opcji esptool (np. backup firmware).

  • Lubię! 2
Link do komentarza
Share on other sites

Z ciekawości: nie idzie podłączyć esp przez usb bezpośrednio do otg? Ew. podając 5v na esp z zasilacza a nie z telefonu?

 

Link do komentarza
Share on other sites

(edytowany)

@ethanak, w sumie próbowałem. CP2102 jest wykrywany, ale w termuxie nie pojawia się żaden nowy port w /dev, a ten który jest podany nie działa. Może coś źle robię. Jak będę mieć płytkę z CH340 to sprawdzę.

Screenshot_2025-03-03-16-29-48.thumb.png.ea175c6269970cbaf16f44174c50bb1a.png

 

Sprawdziłem lolin32 lite (CH340C) bezpośrednio kablem. Też nie ma reakcji w /dev. Napięcie USB w normie (~4.95V przy ~13mA na luzie). Z zewnętrznym konwerterem port pokazuje się od razu.

lsusb wyświetla vid/pid CP2102, podobnie jak hwinfo:

Bus 001 Device 002: ID 10c4:ea60

 

dmesg również rejestruje:

Konwerter CP2102 w ESP32:
[72497.832890 / 03-04 22:19:01.700][0]  (0)[21106:kworker/0:0]usb 1-1: New USB device found, idVendor=10c4, idProduct=ea60
[72497.832952 / 03-04 22:19:01.700][0]  (0)[21106:kworker/0:0]usb 1-1: Product: CP2102 USB to UART Bridge Controller

Waveshare (CH343G): 
[73052.143620 / 03-04 22:28:16.010][0]  (0)[28241:kworker/0:0]usb 1-1: New USB device found, idVendor=1a86, idProduct=55d3
[73052.143694 / 03-04 22:28:16.010][0]  (0)[28241:kworker/0:0]usb 1-1: Product: USB Single Serial
[73052.151683 / 03-04 22:28:16.010][0]  (0)[28241:kworker/0:0]cdc_acm 1-1:1.0: ttyACM0: USB ACM device

 

Może brakuje odpowiedniego sterownika.

Edytowano przez orb777
Link do komentarza
Share on other sites

(edytowany)

Popatrzyłem trochę z ciekawości, chociaż przez SSH, bo na dłuższą metę z podpiętym OTG niewygodnie. Ze źródeł kernela w tej samej wersji pod andka, skompilowałem sterownik cp210x, jednak próba załadowania wysypała się bodaj brakiem odpowiedniego podpisu (?)

cp210x.thumb.jpg.ca239cbdf24f53623384094ee69df2b0.jpg

Jako amator bez "custom recovery" nie będę dalej grzebać. W tej konfiguracji działają być może tylko konwertery, które obsługują "CDC" i taki sterownik jest ładowany. Wg internetów CP2102 i CH340C nie ma tego trybu. Może na telefonach z nowszym andkiem i innymi sterownikami wygląda to lepiej.

Poszukałem ESP32-S3, które również ma konwerter CH343 oznaczony jako "WCH 343PC20". Podłączam bezpośrednio pod adapter OTG - port "/dev/ttyACM0" pojawia się od razu.

Edytowano przez orb777
  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.