Forum: Mikrocontroller und Digitale Elektronik ESP32-WROOM-32 - keine USB-Verbindung


von Alexander S. (knut740)


Lesenswert?

Hallo

es gab hier vor einigen Thread über ESP32, der von einem Win-Rechner 
nicht erkannt wurde. Leider finde ich den Beitrag nicht mehr. Er bot als 
Lösung an, die Arduino-IDE neu zu installieren (was bei meinen zwei 
Arduino-Versionen 1.8.3 und 2.0.2 nicht geholfen hat) und außerdem ein 
Netzwerk aus zusätzlichen Bauteilen aus Widerständen usw..

Vielleicht haben sich seit dem Beitrag von 2019 weitere Erkenntnisse 
angesammelt, wie man den ESP32-WROOM-32 über USB in Betrieb nehmen kann?

Ich habe ihn per USB an einen WIN-10-PC angeschlossen und versuche ihn 
über eine Arduino-IDE zu programmieren.
Normalerweise reagiert der PC akustisch, wenn ein Arduino (Micro, 
Leonardo, Nano) angeschlossen wird. Hier geschieht nichts, keine Akustik 
und kein Hinweis auf den Port in der IDE.

Vielleicht ist der ESP32 defekt? Ich habe probeweise einen nagelneuen 
ESP32 aus der Verpackung von AZ-Delivery entnommen und angeschlossen - 
aber auch der wurde nicht akzeptiert.

Hat jemeand eine Empfehlung, was man tun könnte?

VG
Knut735

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Das ESP32-WROOM-32-Modul hat keine USB-Unterstützung. Meinst du das 
DevKit-C mit ESP32-WROOM-32 drauf? Da geht der USB ja auf einen 
Usb-Seriell-IC. Dass der kaputt geht ist eher unwahrscheinlich.

Wird im Gerätemanager ein unbekanntes Gerät angezeigt wenn du das Board 
anschließt?

von Egon M. (knut735)


Lesenswert?

Niklas G. schrieb:
> Wird im Gerätemanager ein unbekanntes Gerät angezeigt wenn du das Board
> anschließt?

Nein, es geschieht gar nichts.

VG

von Tobias S. (x12z34)


Lesenswert?

Hmm...

- mal einen anderen USB-Port am PC probiert?
- die Treiber für den Seriell-USB-Wandler sind installiert? Die 
"meisten" Dev-Boards kommen mit einem CP2102-Treiber-Chip, der seine 
eigenen Treiber haben will.
Anleitung (in englisch) z.B. hier: https://www.pololu.com/docs/0J7/all

von Steve van de Grens (roehrmond)


Lesenswert?

Egon M. schrieb:
> Nein, es geschieht gar nichts.

Zum vergleich könntest du mal Ubuntu Linux auf einen USB Stick packen 
und starten (muss man nicht installieren). Stecke dann den USB Stick ein 
und gebe in einem Terminal Fenster

sudo dmesg -c

ein. Das bringt dir vier Informationen:

a) Wurde das Einstecken erkannt? Dazu muss das Gerät eine Datenleitung 
mit einem Widerstand auf 3,3V ziehen. Der PC erkennt dies und startet 
die Kommunikation. Wenn das schon nicht funktioniert ist defekte 
Stromversorgung eine Typische Ursache.

b) Konnte der PC die Vendor- und Device-ID lesen? Was einen Hinweis 
darauf gibt, ob die USB Kommunikation wenigstens in ihren Grundzügen 
funktioniert.

c) Konnte der Treiber den Chip vollständig initialisieren und somit 
einen virtuellen COM Port (ttyUSB0) anlegen?

d) Wenn das alles unter Linux funktioniert, ist die Hardware in Ordnung. 
Dann weißt du, dass es ein Softwareproblem im Windows ist.

Der nötige Treiber ist in Ubuntu enthalten, egal um welchen Chip es 
konkret geht.

: Bearbeitet durch User
von Egon M. (knut735)


Lesenswert?

Tobias S. schrieb:
> - mal einen anderen USB-Port am PC probiert?
Ja. Normalerweise nehme ich für die Arduinos ohnehin einen mit Strom 
versorgten USB-Hub. Aber weder hie noch da tut sich etwas.
Im Gerätemanager ist auch kein unbekanntes Gerät bei den Anschlüssen 
aufgeführt.
> - die Treiber für den Seriell-USB-Wandler sind installiert? Die
> "meisten" Dev-Boards kommen mit einem CP2102-Treiber-Chip, der seine
> eigenen Treiber haben will.
Habe ich gemacht und den PC neu gestartet - ohne Erfolg.

Ist eigentlich die Portauswahl hier vom eingestellten Board abhängig? 
Ich habe nämlich für mein ESP32 WROOM-32 bei der Boardauswahl ESP32 Dev 
Module eingestellt, in der Hoffnung, mein nicht erwähntes Board sei hier 
richtig. (allerdings: mit anderen angewählten Boards wird auch kein 
Board erkannt).

Mist!

von Egon M. (knut735)


Lesenswert?

Steve van de Grens schrieb:
> Zum vergleich könntest du mal Ubuntu Linux auf einen USB Stick packen
> und starten (muss man nicht installieren). Stecke dann den USB Stick ein
> und gebe in einem Terminal Fenster

Mache ich alsbald. Vielleicht läßt sich auch mein opensuse 15 
reaktivieren, das auf einer anderen Platte ist und das ich ewig nicht 
mehr benutzt habe.

VG

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Egon M. schrieb:
> Aber weder hie noch da tut sich etwas.
> Im Gerätemanager ist auch kein unbekanntes Gerät bei den Anschlüssen
> aufgeführt.

Wenn das Gerät also überhaupt nicht enumeriert wird, ist es 
wahrscheinlich gar kein Software Problem, also mit 
Treibern/Konfiguration ist da nichts zu erreichen.

Mal ein anderes USB-Kabel probiert?

von Egon M. (knut735)


Lesenswert?

Niklas G. schrieb:
> Wenn das Gerät also überhaupt nicht enumeriert wird, ist es
> wahrscheinlich gar kein Software Problem, also mit
> Treibern/Konfiguration ist da nichts zu erreichen.

Ich habe es jetzt auf einem anderen PC (Notebook) probiert. ZUvor habe 
ich versucht, den pololo-Treiber zu installieren. Es war zu lesen, daß 
der Treiber erfolgreich installiert worden sei.

Dann habe ich das ESP32-Teil angesteckt: Keine Akustik, aber wenigstens 
im Gerätemanager der Hinweis auf ein unbekanntes Gerät und daß es keinen 
Treiber gäbe.

Nun mache ich mich morgen auf die Suche.

VG

PS  Es ist doch der PS2102 ?

: Bearbeitet durch User
von Egon M. (knut735)


Lesenswert?

Also, es hat noch nicht funktioniert.

Bei meinem Opensuse Leap 15.1 bekomme ich mit dmesg -c seitenlange 
Ausgaben, mit denen ich nichts anfangen kann (außerdem kann ich den 
Konsolentext kaum lesen).
Dann habe ich es nochmals mit Win 10 probiert. Vielleicht hat die 
Installation des Pololu-Treibers, wie Tobias S. schreibt, doch 
funktioniert, denn die Klassifizierung als unbekanntes Gerät im 
Win-10-Gerätemanager könnte ja auch daran liegen, daß der virtuelle Port 
noch nicht geöffnet ist, wie Silikon Lab, das diesen Treiber wohl 
produziert hat, vor der Nutzung verlangt.

Silikon Lab liefert dazu auch etwas Programmcode, doch wie soll ich den 
dem Win 10 applizieren?

Wie kommen denn andere Leute mit diesem Problem zurecht? Die ESP32 sind 
doch nicht so selten, da müßte es doch entspr. Erfahrungen geben?

VG
Knut735

von Stefan F. (Gast)


Lesenswert?

Egon M. schrieb:
> Bei meinem Opensuse Leap 15.1 bekomme ich mit dmesg -c seitenlange
> Ausgaben, mit denen ich nichts anfangen kann (außerdem kann ich den
> Konsolentext kaum lesen).

Wenn du die Ausgabe zeigen würdest, könnte man dir helfen. Relevant sind 
nur die letzten Zeilen, die nach dem Einstecken des USB Gerätes erzeugt 
wurden.

Egon M. schrieb:
> Wie kommen denn andere Leute mit diesem Problem zurecht?

Sie haben das Problem nicht.

Ohne weitere konkrete Infos von dir, kann man dir nicht weiter helfen.

von Egon M. (knut735)


Angehängte Dateien:

Lesenswert?

Hi Stefan,

anbei eine Fotographie von der Leap-15.1-Ausgabe von dmesg -c (geht bei 
mir nicht anders, weil ich auf dem Terminal nichts markieren kann).

Die Linux-Ausgabe habe ich nur deshalb, weil da angeblich ein Treiber 
für den virtuellen Port vorhanden sei. In Wirklichkeit benutze ich Win 
10.

Dort scheitere ich an der Installation des CP210x Treibers. Ich habe 
mich an die Beschreibung von Silikon-Lab gehalten und den Treiber aus 
der Datei silabser.inf manuell installiert, was als gelungen bestätigt 
wird. Trotzdem erscheint immer noch "unbekanntes Gerät". Wenn ich danach 
im Gerätemanager auf Treiber suchen klicke und auf das entspr. 
Verzeichnis mit der dll-Datei verweise, kommt immer: kein Treiber 
gefunden.

VG

PS:  der virt. Port müsse erst "geöffnet" werden. Wie soll ich den dafür 
mitgelieferten Code applizieren?

: Bearbeitet durch User
von Egon M. (knut735)


Lesenswert?

Egon M. schrieb:
> PS:  der virt. Port müsse erst "geöffnet" werden. Wie soll ich den dafür
> mitgelieferten Code applizieren?

HANDLE hMasterCOM = CreateFile("\\\\.\\COM3",

[code]
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
0);
[\code]

von Stefan F. (Gast)


Lesenswert?

Egon M. schrieb:
> dmesg.jpeg

Da ist nichts zu sehen, was mit USB zu tun haben könnte. Vermutlich ist 
dein USB Kabel oder Board defekt, da nicht einmal das Einstecken (ganz 
unabhängig von jeglicher Kommunikation) erkannt wird.

Damit das Einstecken erkannt wird, zieht der USB-UART Chip auf deinem 
ESP Board eine Datenleitung durch einem Widerstand auf 3,3V. Das 
funktioniert schon nicht.

Deswegen erkennt auch Windows das Einstecken nicht, fragt nicht die 
Chip-ID ab und lädt keinen Treiber. Da kannst du installieren, was du 
willst, es wird nichts nützen.

von Egon M. (knut735)


Angehängte Dateien:

Lesenswert?

Hi Stefan,

Du hattest recht, das USB.Kabel, mein Liebleingskabel, das ich bisher 
benutzt habe, ist defekt.
Mit einem anderen Kabel ändert sich dmesg -c. Ob die Erwähnung von 
Video-USB so recht ist, kann ich nicht beurteilen.

Allerdings ist das Treiberproblem noch immer nicht so richtig gelöst:

Auf dem Notebook erscheint noch immer im Gerätemanager der Hinweis auf 
ein unbekanntes Gerät. Allerdings: ich kann auf den ESP32 zugreifen, ihn 
programmieren und das Programm hochladen (probiert mit wifican aus den 
Beispielen).

Hingegen ist auf dem Desctop im Gerätemanager alles ok, es wird z.B. 
Silikon Labs.... auf Port comxy angezeigt (ohne Warnhinweis), was ok 
erscheint, aber in der Arduino-IDE erscheint dieser Port gar nicht. Das 
Programm läßt sich also nicht hochladen.

Also muß ich erstmal damit leben, nur via Notebook mit dem Teil 
kommunizieren zu können.

VG

knut735

von Egon M. (knut735)


Angehängte Dateien:

Lesenswert?

Egon M. schrieb:
> Mit einem anderen Kabel ändert sich dmesg -c.

Hat beim Hochladen nicht funktioniert, hier der neue Auszug.

von Stefan F. (Gast)


Lesenswert?

Dein Board hat einen CP210x. Der Linux Treiber wurde erfolgreich 
geladen. Die Kommunikation zwischen PC und deinem Board funktioniert.

Den Windows Treiber dazu kannst du dort herunterladen:
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

Wenn Windows mit mehreren Treiber-Versionen durcheinander kommt hilft es 
manchmal, im Gerätemanager die ausgeblendeten (nicht angeschlossenen) 
Geräte einzublenden und dann alle CP2102 Treiber zu deinstallieren.

Rechte Maustaste "Gerät Deinstallieren".
Im nächsten Dialog soll "Treibersoftware für dieses Gerät löschen" 
aktiviert sein.
Danach den richtigen Treiber installieren und das Kabel einmal aus und 
wieder ein stecken.

von Manfred (Gast)


Lesenswert?

Stefan F. schrieb:
> Den Windows Treiber dazu kannst du dort herunterladen:
> https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
>
> Wenn Windows mit mehreren Treiber-Versionen durcheinander kommt hilft es
> manchmal, im Gerätemanager die ausgeblendeten (nicht angeschlossenen)
> Geräte einzublenden und dann alle CP2102 Treiber zu deinstallieren.

> Rechte Maustaste "Gerät Deinstallieren".

Du kannst die Geräte deinstallieren, die Treiber lässt Windows trotzdem 
im Verzeichnis liegen. Die Wahrscheinlichkeit ist hoch, dass Windows 
beim nächsten Einstecken diesen wieder von selbst verwendet.

> Im nächsten Dialog soll "Treibersoftware für dieses Gerät löschen"
> aktiviert sein.

Diesen Punkt habe ich noch nie gesehen. Kann man aber manuell suchen, 
irgendwo unterhalb Windows "oem[zahl].inf" per Editor durchgucken.

Nach wie vor kennt Windows aber "Treiber aktualisieren" mit "Treiber 
manuell auswählen".

von Egon M. (knut735)


Lesenswert?

Es funktioniert!

Im Desktop-Gerätemanager ist jetzt der Silikon-Lab-Eintrag vorhanden und 
der zugehörige Port comXY erscheint nun in der Arduino-IDE.
Programmieren und flashen läßt sich das Teil auch!

Vielen Dank für Eure erfolgreiche Hilfe!

VG

knut735

PS:  Auf meinem ESP steht "ESP32-WROOM-32". Ich vermute, bei der 
Boardauswahl in der Arduino-IDE sollte ich ESP32-WROOM-DA-Module 
anwählen? Oder doch lieber ESP23-Dev Module? Die vielen Versionen sind 
etwas unübersichtlich.

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Egon M. schrieb:
> Es funktioniert!

Warum? Versuche bitte, zu beschreiben, welche Schritte Du erfolgreich 
unternommen hast.

> Oder doch lieber ESP23-Dev Module?

Ja, zumindest bei mir, ohne Zahlendreher ESP32-Dev Module.

von Stefan F. (Gast)


Lesenswert?

Manfred schrieb:
> Du kannst die Geräte deinstallieren, die Treiber lässt Windows trotzdem
> im Verzeichnis liegen.

Nicht, wenn man die von mir genannte Option wählt:

>> Im nächsten Dialog soll "Treibersoftware für dieses Gerät löschen"
>> aktiviert sein.

> Diesen Punkt habe ich noch nie gesehen.

Dann schau nochmal genau hin. Auf diesem Weg hatte ich mein Windows 10 
dazu gebracht, den älteren von mir gewünschten Treiber für einen 
USB-UART vom Typ PL2303 zu laden, anstatt den neuesten den Windows 
automatisch heruntergeladen hat.

von Egon M. (knut735)


Lesenswert?

Manfred schrieb:
> Warum? Versuche bitte, zu beschreiben, welche Schritte Du erfolgreich
> unternommen hast.


Meine ersten Versuche mit der Treiberinstallation habe ich mit einer, 
wie hier empfohlen, pololu-Version unternommen. Bei diesem Link war eine 
exe-Datei zur Treiberinstallation enthalten, die ich ausgeführt habe. 
Ohne Erfolg. Einen Treiber, den man Win 10 stattdessen anbieten konnte, 
war nicht enthalten.

Dann bin ich auf die Webaite von Silikon Lab gegangen und dort habe ich 
gefunden, was zur erfolgreichen Treiberinstallation gereicht hat.

Mein ESP32-WROOM32 sieht fast genau sso aus wie Deiner. Allerdings ist 
bei mir der Chip um 90° verdreht.

Und mit dem ESP 32 Dev Module bist Du dir sicher? Wo es anderweitig doch 
so schön heißt ESP32-WROOM32?

VG

knut735

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.