Es sieht alles so supereinfach aus: man nehme einen ESP32, schließe diesen per USB-Kabel am Computer oder einem Streckennetzteil an und das Teil läuft. Es spielt dabei auch keine Rolle, ob es ein ESP8266 oder der leistungsfähigere ESP32 ist. Wenn dann die Software aufgespielt wird und eine regelmäßige WiFi-Kommunikation stattfindet, stürzen die Teile einfach regelmäßig ab.
Digital-Speicheroszilloskop
Mit einem einem Digital-Speicheroszilloskop (Rohde & Schwarz RTB2000-Serie) soll sichtbar gemacht werden, wo die Probleme liegen könnten bzw. was zu tun ist, um das Ganze stabil zu bekommen. Ein altes Analog-Oszilloskop ist hier nicht nutzbar, da eine Aufzeichnung über mehrere Sekunden notwendig ist, die später analysiert werden muss bzw. die Details mit richtigem Trigger aufgezeichnet werden müssen.
Problem: ungeeignete USB Netzteile
Ich traute meinen Augen nicht, als ich mit einem einfachen USB-Steckernetzteil die 5-V-Stromversorgung des ESP32-Moduls per Oszilloskop gemessen habe: da war ein 500 mV 2-kHz-Sägezahn auf der Leitung – unglaublich! Das ist mit jedem Oszilloskop sichtbar. Interessant war, dass die 3,3 V Betriebsspannung nach dem LDO-Regler wieder glatt war und unproblematisch aussah. Bei Belastung im WiFi-Betrieb wurde es aber schlimmer mit den 5 V und auch die 3,3 V waren nicht mehr stabil.
Die gute Nachricht ist, dass ein anderes 1-A-Steckernetzteill diese Probleme nicht aufwies. Daher empfehle ich eine kurze Überprüfung der 5-V-Betriebsspannung auch unter WiFi-Betrieb, damit solche Probleme vorab bereits ausgeschlossen werden können.
Stromverbrauch beim ESP32
So ein ESP32 benötigt mit einem einfachen Arduino-Programm etwa 50-70 mA, im WiFi-Betrieb geht der Stromverbrauch sogar bis auf etwa 80-170 mA hoch. Zumindest zeigen es die Messgeräte so an. Das ist aber ein Trugschluss; im WiFi-Betrieb werden auch mal schnell 400 mA und mehr genutzt, allerdings nur für wenige Millisekunden. Fällt die Spannung dann unter einen Wert von 2,55 Volt, stürzt der ESP32 (oder auch der ESP8266) ab. Ja, ein Spike nach unten für weniger als eine Millisekunde reicht aus, und der Absturz folgt.
Problem: USB-Kabel zum PC oder Netzteil
Ich habe schöne USB-Kabel von 1 Meter Länge, die vom PC oder Steckernetzteil zum ESP32 gehen. Auch ein gutes Labornetzteil habe ich zum Testen verwendet – immer mit ein und demselben Ergebnis: im WiFi-Betrieb bricht die 3,3-Volt-Spannungsversorgung des ESP32 zusammen. Dies führt teilweise auch wieder zum Absturz des ESP32-DevKit-Moduls.
Das Bild zeigt einen Spannungszusammenbruch beim Senden vom WiFi-Datenpaketen, hier ist deutlich zu sehen, dass die Spannung von etwa 3,3 V auf 2,8 Volt (Differenz 0,5 V) einbricht. Das sieht nicht besonders stabil aus, und es fehlt auch nicht mehr viel und der Reset kommt.
Beim WiFi-Empfang sieht es deutlich besser aus. Das ist aber auch dadurch bedingt, dass beim Empfang deutlich weniger Strom benötigt wird als beim Senden.
Lösung: kurze USB-Kabel bzw. Kabel mit größerem Leitungsquerschnitt
Mit dem identischen 5-V-Netzteil habe ich einfach mal kurze Kabel bzw. solche mit einem größeren Leitungsquerschnitt verwendet.
WiFi senden mit dicken Kabeln:
WiFi empfangen mit dicken Kabeln:
Hier sind die Probleme gelöst; der geringe Ripple stört den ESP32-Betrieb nicht und alles läuft stabil. Jetzt gibt es noch zwei Möglichkeiten, die Stromversorgung weiter zu verbessern: man nehme einen 47-µF-Tantalkondensator, der direkt am ESP32-Modul zu den Pins VDD/GND parallel geschaltet wird. Dieser ist in der Lage, die geforderten Stromspitzen schneller als der LDO-Regler bzw. andere Kondensatoren zu liefern. Zusätzlich zum Tantalkondensator gibt es dann noch die Möglichkeit, einen großen Low-ESR-Elektrolytkondensator mit einer Kapazität von 470 µF bis 2000 µF zu verwenden. Der Elko ist dann in der Lage, den Tantal nachzuladen, womit die Spannungsversorgung weiter stabilisiert wird.
Diese Maßnahmen (dicke Kabel und zusätzliche Kondensatoren) kosten nicht viel, lösen aber die Probleme!
Batteriebetrieb: kurze Leitungen und leistungsstarke Batterien
Hier noch einmal Abbildungen der gemessenen Spannung beim WiFi-Betrieb mit einer LiFePO4-Batterie, welche den ESP32 (Beispiel „ECO Power“-Board) direkt betreibt.
Wie auch hier zu sehen ist, sieht die Spannungsversorgung gut aus. Hier gibt es nur minimale Einbrüche und der ESP32 im WiFi-Betrieb funktioniert selbst mit einem LiFePO4-Akku oder Lithium-Batterien einwandfrei. Verantwortlich für die gute Funktion im Batteriebetrieb ist bei unserem ESP32 „ECO Power“-Board Folgendes:
- Der LiFePO4-Akku bzw. die 3-V-Lithiumbatterie kann die geforderten Stromspitzen von über 400 mA auch schell liefern.
- Vom Batteriefach zum ESP32-Modul werden breite und kurze Leitungen verwendet (nur wenige Zentimeter lang). Lange und dünne Leitungen (z. B. 20 cm) zu einem externen Batteriefach können schon wieder Probleme bereiten.
- Die Stromversorgung des ESP32 wird durch schnelle MLCC-Kondensatoren unterstützt, zusätzlich wird ein Low-ESR-Elko mit einer Kapazität von 470 µF direkt am Eingang der Batteriespannung verwendet.
Zusammenfassung
Zusammengefasst lässt sich sagen, dass viele Probleme beim ESP32 oder auch beim ESP8266 mit der richtigen Stromversorgung zusammenhängen. Die Aussage „… es ist ja gelaufen, nur plötzlich geht etwas nicht mehr!“ habe ich oft gehört. Meistens lag es jedoch nicht am WiFi-Netz sondern schlichtweg an der Stromversorgung. Mit einem guten Digital-Speicheroszilloskop (hier Rohde & Schwarz RTB2000-Serie) können solche Probleme sehr gut untersucht werden:
In der Arduino-Hannover-Gruppe treffen sich regelmäßig Elektronik- und Arduino-Interessierte. Viele von uns verwenden den ESP32 oder ESP8266 für Ihre Projekte. Interessenten können bei unseren regelmäßigen Treffen teilnehmen, wir helfen gerne und tauschen Erfahrungen aus. Auch gemeinsame Messungen, wie die hier beschriebenen, können bei uns durchgeführt werden. Auf der Maker Faire 2018 in Hannover können Interessenten gerne am Stand von Arduino-Hannover vorbeikommen und über die ESP32-Stromversorgung und unsere LoRa-Funktechnik Boards diskutieren.
Wir bedanken uns bei der Firma Rohde & Schwarz GmbH & Co. KG, welche Arduino Hannover aktiv unterstützt.
Links:
– Arduino Hannover Homepage
– ESP32 DevKit-C Board
– ECO Power Board
– Rohde & Schwarz RTB2000-Serie
Das Problem hatte ich bei einen GPS Modul, dies waren für Fahrzeuge gedacht, zum Mobilen Testen hatte ich es an eine Powerbank gehängt.
Im Regelbetrieb zog es rund 200mA, aber wenn es versucht hat Daten über GSM zu senden kamen Spitzen von 1,7 A zusammen. Der Patient ist nie über die ersten 30s gekommen. Das war in der Doku natürlich nirgends erwähnt.
Ein richtig dicker Elko hat das Problem dann erstmal für die Powerbank gefixt.
Vielen Dank Helmut für den interessanten Artikel! Ich habe gerade bei einem ESP32 mit plötzlichen Verbindungsabbrüchen zu kämpfen und Soft- sowie Firmwareseitig inzwischen schon fast alles ausprobiert. Danke auch, dass du die Lösungstipps gleich mit hinzugefügt hast. Ich habe zwar kein Oszilloskop, werde aber die verschiedenen Varianten ausprobieren.
Wirklich ärgerlich, dass nicht gleich von Haus aus ein besserer Kondensator verbaut ist.
Ich kenne diese Probleme nicht.
Ich versorge grundsätzlich mit einem 12V Steckernetzteil. Auf der Platine sorgen dann ein 7805 und ein AMS1117 3,3 für die richtige Spannung.
Klar die 12V Spannung ist stabil, aber zwei Regler 12V zu 5V und dann noch 5V zu 3.3V sind bestimmt nicht optimal.
den 7805 gibts auch als 3,3 V version mit anderer nummer!
Hi Helmut,
ich habe das weiße USB-Netzteil aus der Abbildung. Falls du speziell über dieses geredet hast, kann ich bestätigen, dass sich dieses nicht eignet. Das Teil habe ich für die Stromversorgung meines Wemos D1 Mini genommen, jedoch hat es sich in kürzester Zeit zerschossen (Es hat sogar angefangen zu zischen).
Du hast folgendes geschrieben: „Die gute Nachricht ist, dass ein anderes 1-A-Steckernetzteill diese Probleme nicht aufwies.“
Kannst du mir bitte sagen, welches anderes Netzteil du genommen hast?
Grüße
In der Regel sind die Raspberry Pi besser, da dieses richtige Netzteile sind und keine zum Handy laden.
Servus,
tolle Hinweise! Dem ESP32 gehört die nahe Zukunft. Eine Bitte: Könntest Du ein Verdrahtungsschema für die beiden Kondensatoren anhängen, insbesondere an welchen GND und Vxx Pins des ESPs die angebracht werden sollen. Auch Angaben zu ev. Vorwiderständen wären hilfreich. Damit kann auch der geneigte Laie das einfach nachbauen. Grüße und DANKE für den Artikel!
Können „Goldcaps“ zur Stabilisierung der Versorgung helfen?
Ich möchte eine ESP32 Cam als Modelbahnlokkamera einsetzten. Die Stromversorgung soll über die Modelbahnschienen mit 20V erfolgen.
Spannungsregler von 20V auf 5V ist eingebaut .Jedoch neigen die Kontaktaussetzer der Schienenübertrager zu kurzfristigen Stromunterbrechungen. Ohne diese Aussetzer scheint die Versorgung zu klappen. D.h. im Standbetrieb der Modelbahnlok.
Die Stabilisierung der Stromversorgung über sogenannte „GoldCap“ Kondensatoren mit Hilfsschaltung „Ladevorwiderstand und paralleler Entladungsdiode“ ist eine übliche Praxis im Modellbau
ich bin mit elektronik nicht wirklich vertraut , trotzdem möchte ich mich mal an so ein Projekt wagen. Ich habe nun einen ESP32 und ein 5m WS2812B. Benutzen möchte ich davon 3,60 meter. Es ist ein 60er Led Stripe. Ich habe so etwa in klein mal ausprobiert. Also 1 Meter und habe ein 5Volt 2A Netzteil angeschlossen. Also dieses versorgt das LED Band plus den ESP32 . Das funktioniert auch so weit alles gut. Nun bin ich aber am grübeln wie es bei der größeren Version aussieht. Sollte ich da lieber mit 2 Netzteilen arbeiten ? Also ein USb für den ESP und eines für die LED`s ? Oder kann ich auch da wieder ein Netzteil benutzen ? Und wo nach müsste ich da schauen? Nach dem ich hier etwas gelesen habe , bin ich ganz raus. Da geht es um Watt und Ampere und so vielen Dingen die ich bei der kleinen Version gar nicht beachtet habe. Auf der Esp Platine kann man ja die Stromversorgung auch auflöten .Wäre nett wenn ihr mir da helfen könntet.
Ich würde definitiv ein separates Netzteil nehmen. Wenn Du 3.6m ws2812 Stripes mit 60led pro Meter nimmst hast du im schlimmsten Fall (alle 216 RGB-LED auf Weiß) knapp an die 13A.
Hallo,
Danke für den Artikel, das hat mir einige Fragen beantwortet. Ich schließe mich einem vorherigen Kommentar gerne an – ist es möglich einen Schaltplan/Erklärung (wo welche Kondensatoren hin müssen) beizufügen? Auch ich bin eher bescheiden beschlagen, was Elektronik angeht.
Ich möchte für ein Projekt das ESP mit Li-Akku betreiben (in meinem Fall 3.7V, 3000mAh). Dazu habe ich ein Lademodul für den Akku angebracht und die ESP mit rastenden Druckschalter getrennt – durch permanenten Verbraucher versteht das Lademodul sonst nicht, dass der Akku geladen ist.
Leider bin ich nicht in Hannover ansässig, um mal vorbeizuschauen.
Danke für jedwede Hilfe!
Nach dem Li-Akku muss ein LDO-Regler rein, welche die Spannung auf 3.3V begrenzt, alternativ ein Step-Down Regler. Sonst läuft es mit dem ESP32 nicht, da der Li-Akku bis 4.x Volt hat.
Alternativ LifePO4 Akkus nutzen, die haben dann ca. 3V, dann baucht man keine stromfressenden Regler dazwischen.
Danke!
Ich tue mich mal um.
Hallo Helmut,
ich bin bei der Google Suche an einer vernünftigen Stromversogung meiner ESP auf diese Seite gestoßen.
Was hälst du von den sogenannten „Mini-Netzeilen“ – AC/DC Wandler die 220V auf 3,3 oder 5V runterregeln? Bei 5V\3W blieben damit ja immerhin 600mA übrig wenn ich das richtig verstehe. Mein Gaszähler funktioniert so schon seit dem Winter. Auch wen die Verdrahtung bei 220V natürlich mit Vorsicht zu geniwßen ist.
Ich habe bei den ganzen USB Netzteilen und Kabeln auch immer das Problem, dass offenbar nicht genügend ankommt.
solche Platinen-Schaltnetzteile verwende ich auch, am besten die Version mit 3.3V, damit kein LDO benötigt wird. Ist klar, 90% der USB Netzteile taugen nichts, einfach mal ein 300mA Last anhängen und per Oszilloskop prüfen wie sauber die Gleichspannung ist.
Moin,
sollte in den Netzteilen nicht wenigstens eine Schutzschaltung gegen übertemperatur enthalten sein?
Noch ein Tipp. Wenn lange Leitungen benötigt werden ein Netzteil von 12 oder sogar 24 Volt verwenden. In der Garage habe ich so das Netzteil des Toröffners genutzt. Dann aber einen Stepdown Regler auf 5 Volt ganz in der Nähe des ESP. Auf der Platine ist ja noch einmal der 3,3 Volt Spannungsregler, deshalb kann man ruhig etwas über die 5 Volt gehen (<7 Volt). Und genügend schnelle Kondensatoren.
Durch die höhere Spannung und kleinerer Strom ist der Spannungsabfall geringer. Der Stepdown Regler ist effizienter als ein normaler Drop-Regler, der ja nur Energie verheizt.
Der eingebaute 3,3 Volt Regler stellt sicher das wir im richtigen Spannungsbereich kommen. Evtl kann man für bestimmte Fälle einen zweiten 3,3Volt Regler vorsehen. So verwende ich ein I2C SRAM mit EEPROM-Datensicherung. Beim Absinken der Spannung wird automatisch die Daten ins EEPROM geschrieben und bei Poweron wieder hergestellt. Das soll natürlich nicht passieren wenn der ESP wild an der Stromversorgung zieht und so Spannungsschwankungen verursacht, deshalb hab ich dem über eine Diode einen extra 3V3 Spannungsregler spendiert
Hallo, es wird von „Dickeren“ kabeln gesprochen.
Welche „Dicke“ wurde denn da genommen?
ich würde gerne direkt aus einem USB-Ladeteil zwei Kabel raus laufen lassen und diese dann an den ESP anschließen ca. 50cm Leitungen.
PS. ein Schaltplan für die Kondensatoren / Widerstände etc. wäre gut.
gruß MM
Im Bereich der USB 3.0 Kabel gibt es welche, die zur Stromversorgung von Geräten bis 15 W Leistungsaufnahme (also 3 A Strom bei 5 V) geeignet sind (z.B. https://www.reichelt.de/usb-3-0-kabel-a-stecker-auf-c-stecker-gewinkelt-1-m-efb-usbcusbc5ga1-p330184.html?&trstct=pol_10&nbc=1).
Zum Selbermachen würde ich AWG22 oder AWG24 (= 0,35 mm2 und 0,25 mm2) verwenden.
Für mein Projekt (http://bluetchen.de/Technik/DIY/WLAN-Kamera.pdf) steht auch gerade die Stromversorgung über Batterie /Akku an.
Gruß
Norbert
Von diesem Problem ist der Pi Zero noch stärker betroffen. Stromversorgungs- USB Kabel sind leider eine Art Qaulitäts- Lotterie, gleichgültig aus welcher Quelle man sie bezieht und was sie kosten. Selbst mit nur 30cm langen hatte ich schon die erwähneten Probleme. Inzwischen konfektioniere ich diese nur noch selbst, einseitig mit USB-A Stecker und am Board fest verlötet.
Mit den USB- Ladegeräten ist es nicht anders, sie sehen zwar alle gleich aus, aber weisen ebenfalls völlig unterschiedliche Qualität auf.
Die kleinen Schaltnetzteile sind ein Unfug. Die Störungen gingen soweit das meine
AATiS AS-324 Multiclock Funkuhr nicht mehr funktionierte. Ein Eigenbau Netzteil mit Standard Schaltplan für LM7809 behob das Problem. Nach einiger Zeit begann die EmpfangsLED wild zu blinken, was mich an Funkstörungen denken lies. Andere Standorte änderten am Problem nur wenig. Den Siebkondensator im Netzteil und den 7809 ausgetauscht lässt die Funkuhr problemlos laufen.
Neues BttF WiFi Funkuhr Projekt von Jerome95:
Mit ESP8266 3,3V lassen sich TM1637 LED Anzeigen nicht ansteuern. Ein Test der TM1637 mit Arduino Nano 5V funktioniert. ESP8266 wird über USB Schaltnetzteil betrieben, der Rest mit Labornetzteil. Oszi offenbart wieder massive Störungen auf Clock und DIO Leitungen. Da bin ich noch bei der Ursachenforschung.
Bernd
Pingback: Nerd Miner auf ESP32: Einstieg in die Krypto-Welt - Technik Blog
Hallo und Danke für den Beitrag. Habe ihn gerade erst entdeckt.
Frage: Habe ein „ESP32 S3 DevKitC 1 N16R8 ESP32 S3 WROOM1 N16R8 Entwicklungsboard“.
Der Sketch richtet das Bord über den USB-C-Anschluss als MIDI-Controller ein.
Was ist eigentlich, wenn ich den ESP32 über den 5V-Pin mit Strom versorge und dann an den USB-Port noch ein USB-Gerät anschließe, das eventuell auch Strom über USB liefert …
Ist das OK? Oder gibt es da Probleme?
Würde mich sehr über Eure Meinung freuen.
Viele Grüße aus dem Extertal.
Jochen
Moin Jochen, die 5V müssen vom USB getrennt werden wenn die ESP32 Platine externe 5V bekommt, ansonsten geht etwas kaputt, ggf. Dein PC. PS: Bin auf der MakerFaire 17/18 in Hannover, auf dem Arduino Stand.