Forum: Mikrocontroller und Digitale Elektronik ESP32 ohne Tastendruck neu programmieren?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Carsten P. (r2pi)


Lesenswert?

Hallo,

ich würde gerne folgendes machen: einen ESP32 mit einem RPi über USB 
verbinden und dann auf dem RPi den Code für den ESP32 übersetzen und den 
ESP32 dann damit flashen -- und resetten.

Den Twist mit dem Kondensator fürs Flashen zwischen EN und GND habe ich 
schon mitbekommen. Aber wie geht das denn alles sauber und stabil?

von Joachim S. (oyo)


Lesenswert?

Zum Programmieren des ESP32 benutze ich einen USB-UART-Adapter.
Den "EN"-Pin des ESP32 verbinde ich dann mit der "RTS"-Leitung des 
USB-UART-Adapters, den "IO0"-Pin mit der "DTR"-Leitung.
Auf diese Weise kann man den ESP32 mittels "esptool.py" automatisch 
flashen und resetten, ohne irgendeinen Knopf drücken zu müssen.

von Sven B. (mainframeosx)


Lesenswert?

Danke für den Tip. Nehme ich in meiner Datenbank (Hirn auf).

von Carsten P. (r2pi)


Lesenswert?

Joachim S. schrieb:
> Zum Programmieren des ESP32 benutze ich einen USB-UART-Adapter.

Prima, das war aber nicht meine Frage. Ich will den ESP32 mit einem 
USB-Kabel an den RPi anklemmen und die Tastendrucke quasi simulieren. 
Wie gesagt, den Elko-Trick kenne ich schon. Vielleicht hat ja noch wer 
einen Tipp für den Reset?

von Joachim S. (oyo)


Lesenswert?

Carsten P. schrieb:
> Joachim S. schrieb:
>> Zum Programmieren des ESP32 benutze ich einen USB-UART-Adapter.
>
> Prima, das war aber nicht meine Frage.

Da fast alle relevanten Informationen im Eröffnungsposting fehlen, kann 
man leider nur raten, wo genau Ihr Problem liegt.

von Michi S. (mista_s)


Lesenswert?

Carsten P. schrieb:
> Ich will den ESP32 mit einem
> USB-Kabel an den RPi anklemmen

Der ESP32, also der Chip selbst, hat leider keine USB-Buchse (und auch 
keine Taster). Wenn Du hier zu einer konkreten Platine mit ESP32 (und 
USB-Buchse, Taster,...) Fragen hast, dann solltest Du erstmal mitteilen 
welche konkrete Platine Du meinst.

Wenn Du bei Deiner Platine den ESP über den USB-Anschluß flashen kannst, 
dann ist da jedenfalls auch ein USB-UART Wandlerchip drauf, wenn Du fürs 
flashen aber noch Taster drücken mußt, dann halt suboptimal 
angeschlossen.

von Frank K. (fchk)


Lesenswert?

Carsten P. schrieb:
> Joachim S. schrieb:
>> Zum Programmieren des ESP32 benutze ich einen USB-UART-Adapter.
>
> Prima, das war aber nicht meine Frage. Ich will den ESP32 mit einem
> USB-Kabel an den RPi anklemmen und die Tastendrucke quasi simulieren.

"ESP32" bezeichnet eine Familie von Microcontrollerchips. Keiner davon 
hat USB eingebaut. Daher ist Deine Frage völlig sinnlos. Du hast sicher 
eine fertige Leiterplatte mit einem dieser ESP32-Chips drauf. Davon 
gibts viele. Jede hat eine eigene Typenbezeichnung. Solange wie Du diese 
hier nicht nennst, wirst Du keine befriedigende Antwort erhalten.

fchk

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Frank K. schrieb:
> "ESP32" bezeichnet eine Familie von Microcontrollerchips. Keiner davon
> hat USB eingebaut.

Doch, die ESP32-S2.
https://www.espressif.com/sites/default/files/documentation/esp32-s2_datasheet_en.pdf

von L.S. (lagerschaden)


Lesenswert?


von Frank K. (fchk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Frank K. schrieb:
>> "ESP32" bezeichnet eine Familie von Microcontrollerchips. Keiner davon
>> hat USB eingebaut.
>
> Doch, die ESP32-S2.

Das ist wieder eine andere Familie.

fchk

von Julian L. (rommudoh)


Lesenswert?

Frank K. schrieb:
> eine andere Familie

Espressif selbst spricht von "Series". In Wikipedia werden alle Series 
zur "ESP32"-Familie gezählt.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Frank K. schrieb:
>>> "ESP32" bezeichnet eine Familie von Microcontrollerchips. Keiner davon
>>> hat USB eingebaut.
>> Doch, die ESP32-S2.
> Das ist wieder eine andere Familie.

Eine andere Familie als was?

von Carsten P. (r2pi)


Lesenswert?

Michi S. schrieb:
> Der ESP32, also der Chip selbst, hat leider keine USB-Buchse (und auch
> keine Taster). Wenn Du hier zu einer konkreten Platine mit ESP32 (und
> USB-Buchse, Taster,...) Fragen hast, dann solltest Du erstmal mitteilen
> welche konkrete Platine Du meinst.

Wo du/ihr Recht habt, habt ihr Recht. My fault. Sowas wie der hier:

https://www.reichelt.de/entwicklungsboard-esp32-s3-wroom-1-n8-esp32s3devk-c1n8-p380400.html

von Joachim S. (oyo)


Lesenswert?

Carsten P. schrieb:
> Wo du/ihr Recht habt, habt ihr Recht. My fault. Sowas wie der hier:
>
> 
https://www.reichelt.de/entwicklungsboard-esp32-s3-wroom-1-n8-esp32s3devk-c1n8-p380400.html

Ok, dann wissen wir jetzt also schon mal, von welcher Hardware Sie 
reden.
Auf diesem Board ist der erwähnte USB-UART-Wandler bereits enthalten und 
die erwähnten RTS/DTR-Leitungen sind bereits mit EN/IO0 verbunden.
Die Hardware ist also bereits vollständig mit ihrem Anliegen kompatibel, 
da müssen Sie gar nichts mehr machen.

Damit bleibt eigentlich nur noch die Frage, welche Software Sie zum 
Flashen nehmen. Denn das üblicherweise für diesen Zweck verwendete Tool 
"esptool.py" macht das, was Sie wollen, bei diesem Board ganz 
automatisch, da müssen Sie überhaupt keine Buttons drücken. Da Sie zum 
Flashen jedoch Buttons drücken müssen, benutzen Sie offenbar irgendein 
anderes Tool zum Flashen, das den üblichen Mechanismus per RTS/DTR nicht 
unterstützt.

von Stephan S. (uxdx)


Lesenswert?

Joachim S. schrieb:
> 
https://www.reichelt.de/entwicklungsboard-esp32-s3-wroom-1-n8-esp32s3devk-c1n8-p380400.html
> Auf diesem Board ist der erwähnte USB-UART-Wandler bereits enthalten

Genauer gesagt ist da kein extra Wandler-Chip verbaut sondern der 
ESP32-S3 hat die USB-Funktionalität selbst (ebenso wie der -S2 und der 
-C3)

: Bearbeitet durch User
von Joachim S. (oyo)


Angehängte Dateien:

Lesenswert?

Stephan S. schrieb:
> Joachim S. schrieb:
>>
> 
https://www.reichelt.de/entwicklungsboard-esp32-s3-wroom-1-n8-esp32s3devk-c1n8-p380400.html
>> Auf diesem Board ist der erwähnte USB-UART-Wandler bereits enthalten
>
> Genauer gesagt ist da kein extra Wandler-Chip verbaut sondern der
> ESP32-S3 hat die USB-Funktionalität selbst (ebenso wie der -S2 und der
> -C3)

Jain. Das Board hat zwei USB-Ports - am anderen hängt ein klassischer 
USB-UART-Wandler, der andere ist für die eingebaute USB-Funktionalität 
des ESP32-S3.
Rein theoretisch könnte der Threadstarter also auch einfach den falschen 
USB-Port auf dem Board benutzt haben...

von Carsten P. (r2pi)


Lesenswert?

Joachim S. schrieb:
> esptool.py

Wenn es denn unbedingt Python sein muss... ^-^ Man beißt ja zur Not auch 
in den sauersten Apfel. Danke für alle eure Hinweise, ich werde mir das 
jetzt mal in Ruhe anschauen.

von Carsten P. (r2pi)


Lesenswert?

Joachim S. schrieb:
> offenbar irgendein anderes Tool

PS: Bisher das Arduino Studio oder wie immer das heißt. Für erste Tests 
tut es das ganz gut, aber für meine Vorhaben eben nicht, da da auf dem 
RPi der Code modifiziert werden soll, bevor es ans Übersetzen und 
Flashen geht, und nein, kein Python-Code, solange ich es vermeiden kann 
;-)

PPS: Als blutiger Amateur habe ich im Alter von 11 Jahren mit BASIC 
angefangen. Danach bin ich auf C umgestiegen und dann auf C++ und Perl 
und PHP und JavaScript und Kram, aber am liebsten C#. Also Curly Syntax. 
Mit Whitespace-Syntax käme ich mir albern wie ein Teenager vor ^-^

: Bearbeitet durch User
von Joachim S. (oyo)


Lesenswert?

Carsten P. schrieb:
> Joachim S. schrieb:
>> offenbar irgendein anderes Tool
>
> PS: Bisher das Arduino Studio oder wie immer das heißt. Für erste Tests
> tut es das ganz gut, aber für meine Vorhaben eben nicht, da da auf dem
> RPi der Code modifiziert werden soll, bevor es ans Übersetzen und
> Flashen geht, und nein, kein Python-Code, solange ich es vermeiden kann

Sie meinen vermutlich die Arduino IDE - und die scheint diesem 
Screenshot 
(https://raw.githubusercontent.com/arduino/arduino-ide/main/static/screenshot.png) 
nach zu urteilen ebenfalls esptool.py zu benutzen.

Bei Verwendung dieser Hardware/Software-Kombo sollte das mit dem 
Flashen/Resetten ohne Tastendruck also eigentlich eh funktionieren, ohne 
dass Sie irgendwelche Buttons drücken müssen.

p.s.: Dass esptool.py in Python geschrieben ist, kann Ihnen doch egal 
sein - mit dem Python-Code kommen sie ja eh nicht in Kontakt, sie rufen 
das Programm ja nur auf. Und auf dem RPI ist Python ja eh installiert.

von 1N 4. (1n4148)


Lesenswert?

https://adafruit.github.io/Adafruit_WebSerial_ESPTool/

Damit geht es, egal ob das Kabel am USB/UART oder native USB hängt

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.