Die Tücken der ESP32-Stromversorgung


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.

WiFi empfangen:

WiFi senden:

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

21 Gedanken zu „Die Tücken der ESP32-Stromversorgung

  1. 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.

  2. 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.

  3. 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

  4. 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!

  5. 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

  6. 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.

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

  8. 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.

  9. 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

  10. 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

  11. 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

  12. 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.

  13. 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.