Im Deep Sleep ist fast alles aus
Ein Batteriegerät verbringt die meiste Zeit im Deep Sleep. Dabei wird der Hauptteil des Chips abgeschaltet — der Rechenkern, der Funk, der grösste Teil des Speichers und die meisten GPIO.
Wach bleibt nur ein kleiner Bereich: beim ESP32 und S3 heisst er RTC-Teil, beim C6 Low-Power- oder LP-Teil. Er enthält einen Timer, ein bisschen Speicher — und den Zugang zu einigen wenigen Pins.
Daraus folgt die Regel, die den ganzen Aufbau bestimmt:
Nur Pins, die am wachen Teil hängen, können den Chip wecken.
Ein Taster an einem beliebigen anderen Pin bewirkt im Deep Sleep gar nichts. Der Chip schläft weiter, und niemand merkt etwas — es gibt keine Fehlermeldung, weil kein Programm läuft, das eine ausgeben könnte.
Welche Pins das sind
| Chip | weckfähige Pins | ext0 | ext1 |
|---|---|---|---|
| ESP32 | GPIO0, 2, 4, 12–15, 25–27, 32–39 | ja | ja |
| ESP32-S3 | GPIO0 bis GPIO21 | ja | ja |
| ESP32-C6 | GPIO0 bis GPIO7 | nein | ja |
ext0 weckt über einen Pin bei einem festgelegten Pegel. ext1 weckt über mehrere Pins, verknüpft mit „einer von ihnen high" oder „alle low".
Drei Dinge sind daran bemerkenswert:
Beim C6 sind es nur acht Pins — und genau diese acht sind auch die ADC-Kanäle und teilweise Strapping- und JTAG-Pins. Auf dem C6 ist der Platz um GPIO0 bis GPIO7 herum also hart umkämpft.
Der C6 kennt kein ext0. Wer eine Anleitung für den ESP32 überträgt, findet die Funktion nicht.
Beim klassischen ESP32 ist die Liste löchrig: GPIO0, 2, 4, dann ein Sprung, dann 12 bis 15, wieder ein Sprung. Diese Liste lässt sich nicht raten, sie muss nachgeschlagen werden.
Was sonst noch wecken kann
Nicht jedes Aufwachen braucht einen Pin:
| Quelle | im Deep Sleep | im Light Sleep |
|---|---|---|
| Timer | ja | ja |
| ext0 / ext1 (RTC-Pins) | ja | ja |
| ULP-Coprozessor | ja | ja |
| Touch | ja (ESP32) | ja |
| beliebiger GPIO | nein | ja |
| UART | nein | ja |
Die beiden letzten Zeilen sind der praktische Unterschied zwischen den Schlafarten. Im Light Sleep bleibt genug wach, dass jeder Pin und sogar ein ankommendes Zeichen auf dem UART wecken können — dafür ist der Ruhestrom deutlich höher. Im Deep Sleep geht nur der kurze Weg über den RTC-Teil.
Der ULP-Coprozessor ist die interessanteste Zeile: ein winziger Rechenkern im wachen Teil, der zum Beispiel regelmässig einen Analogwert messen und erst bei Überschreiten einer Schwelle den grossen Chip wecken kann. Damit lässt sich ein Sensor überwachen, ohne den Hauptchip aufzuwecken.
Reihenfolge beim Planen
Der Weckeingang ist nach dem ADC die zweitknappste Ressource — und beide überschneiden sich, besonders beim C6.
Leg den Weckeingang fest, bevor du irgendetwas anderes verdrahtest.
Ein Gerät, dessen Taster am falschen Pin sitzt, wacht nie wieder auf. Das merkt man erst, wenn der Aufbau fertig ist — und dann ist Umlöten fällig.
Quellen
- ESP-IDF Programming Guide, Sleep Modes (ESP32) — Weckquellen; RTC-GPIO für ext0/ext1: „ESP32: 0, 2, 4, 12-15, 25-27, 32-39"
- ESP-IDF Programming Guide, Sleep Modes (ESP32-S3) — „ESP32-S3: 0-21"
- ESP-IDF Programming Guide, Sleep Modes (ESP32-C6) — „ESP32-C6: 0-7"; ext0 ist für den C6 nicht aufgeführt
- ESP-IDF Programming Guide, Sleep Modes — GPIO- und UART-Aufwecken nur im Light Sleep
Stand geprüft am 3. August 2026.