Einsteiger begegnen dem Problem beim ersten Flashen: Die Firmware wird über USB in den Flash-Speicher geschrieben, und genau dann, wenn in setup() das WLAN gestartet wird, startet das Gerät endlos neu. Wer den Brownout-Reset nicht kennt, sucht wochenlang nach Softwarefehlern.
Ein Brownout-Reset ist das kontrollierte Abschalten des Mikrocontrollers, wenn die Versorgungsspannung kurz unter eine festgelegte Abschalt-Schwelle fällt. Der Chip startet dann bewusst neu, um Datenfehler zu vermeiden. Das Hochfahren des Funkmoduls zieht für Millisekunden deutlich mehr Strom als im Ruhezustand.
Das ohmsche Gesetz erklärt den Zusammenbruch: Jede Spannungsquelle hat einen Innenwiderstand. Steigt der Strom, sinkt die Spannung um Widerstand mal Strom, und der Chip fällt unter die Schwelle.
Klassisches Bild: Ein ESP32 an einem schwachen Netzteil. Serial.begin() im setup() läuft, der serielle Monitor zeigt Meldungen – bis die WLAN-Verbindung startet. Dann Neustart, wieder WLAN, wieder Neustart. Die Baudrate, also die Übertragungsgeschwindigkeit der seriellen Schnittstelle, ist bei Firmware und Monitor gleich, die Firmware auch. Nur die Versorgung bricht zusammen.
Der Unterschied: Der Chip startet nicht neu, weil das Programm fehlschlägt, sondern weil die Spannung fehlt. Auch ein zu dünnes USB-Kabel oder ein schlechter Breadboard-Kontakt verursacht denselben Reset.
Brownout ist kein Softwarefehler, sondern ein Symptom zusammenbrechender Versorgung. Abhilfe: ein ausreichend dimensioniertes Netzteil, kurze dicke Leitungen und ein Abblockkondensator, also ein Kondensator von der Versorgung nach Masse nahe am Chip, der Stromspitzen abfängt.
📌 Brownout-Reset · Innenwiderstand · Abblockkondensator
📚 IoT von Grund auf · Tag 6 von 30
#esp32 #Mikrocontroller #firmware