ESP32 ohne Tastendruck neu programmieren?

OP #7772480
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?

#7772502
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.

#7774055
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.

#7774213
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

OP #7776735
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

#7776773
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.

#7776795
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...

Angehängte Dateien:
OP #7776813
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 ^-^

#7776862
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren