Sechs Pins beim klassischen ESP32, die nichts ausgeben können
Beim klassischen ESP32 gibt es sechs Pins, die nur lesen können: GPIO34, 35, 36, 37, 38 und 39.
Das ist keine Einstellung, die man ändern könnte. Diesen Pins fehlt die Ausgangsstufe im Silizium — und mit ihr fehlen die internen Pull-Widerstände.
Der zweite Teil ist der, der in der Praxis zuschlägt. Dass ein Eingang nichts ausgeben kann, merkt man beim ersten Versuch. Dass er keinen internen Pull-up hat, merkt man erst, wenn der Taster sich merkwürdig verhält.
| gewöhnlicher GPIO | GPIO34 … GPIO39 | |
|---|---|---|
| Ausgang treiben | ja | nein |
| Eingang lesen | ja | ja |
| interner Pull-up | zuschaltbar | nicht vorhanden |
| interner Pull-down | zuschaltbar | nicht vorhanden |
Ein Taster an GPIO34, der bei Betätigung gegen Masse zieht, ist ohne externen Pull-Widerstand ein floatender Eingang — mit allem, was der Grundkurs dazu sagt: Er löst scheinbar von selbst aus, besonders wenn eine Hand in die Nähe kommt.
Diese Pins haben im Datenblatt eigene Namen: SENSOR_VP ist GPIO36, SENSOR_CAPP GPIO37, SENSOR_CAPN GPIO38, SENSOR_VN GPIO39, VDET_1 GPIO34 und VDET_2 GPIO35. Wer in der Pinbelegungstabelle nach „GPIO36" sucht und nichts findet, sucht nach dem falschen Namen.
Wofür diese Pins gut sind
Sie sind kein Ausschuss, sondern haben eine Stärke: Alle sechs liegen an ADC1 und können deshalb Analogwerte messen, auch während WLAN läuft (Modul 7).
Die sinnvolle Verwendung ist also: Analogeingänge und Signale, die von aussen fest getrieben werden — ein Sensorausgang, ein Ausgang eines anderen Bausteins. Alles, was einen Pull-Widerstand braucht, gehört woanders hin oder bekommt seinen Widerstand extern.
S3 und C6 haben keine solchen Pins. Dort ist jeder GPIO ein vollwertiger GPIO.
Was das Board dir wegnimmt
Die bisherigen Einschränkungen stehen alle im Datenblatt. Die letzte Gruppe steht nirgends bei Espressif, weil sie eine Eigenschaft deiner Platine ist:
| typische Belegung | Wirkung |
|---|---|
| eingebaute Leuchtdiode | zieht den Pin ständig auf einen Pegel; bei einem Strapping-Pin verhindert sie unter Umständen den Start |
| Boot- und Reset-Taster | liegen auf Strapping-Pins |
| USB-UART-Brücke | belegt UART0 — beim klassischen ESP32 GPIO1 und GPIO3, beim C6 GPIO16 und GPIO17 |
| Spannungsteiler zur Batteriemessung | belegt einen ADC-Pin, und zwar dauerhaft |
| Stiftleiste für Display oder SD-Karte | belegt gleich mehrere |
Diese Belegungen findest du nur in den Unterlagen deines Boards — Schaltplan, Pinout-Zeichnung oder Wiki des Herstellers.
Wenn du keine Unterlagen findest, ist der Rückfall auf eine Messung ehrlicher als eine Vermutung: Gerät stromlos, Durchgangsprüfung zwischen dem fraglichen Pin und den offensichtlichen Verbrauchern auf der Platine. Der Grundkurs elektronik-basics beschreibt, wie das geht.
Kurze Selbstkontrolle
Zählt nicht — nur zum Prüfen, ob es angekommen ist.
1.Du hängst einen Taster an GPIO34 eines klassischen ESP32: Taster gegen Masse, interner Pull-up aktiviert. Was passiert?
2.Wo steht, ob an GPIO2 deines Boards eine Leuchtdiode hängt?
Quellen
- ESP32 Series Datasheet v5.2, Abschnitt 2.3.1 — „Input only pins, output is not supported due to lack of pull-up/pull-down resistors"; Fussnote zur Tabelle 2-1 mit den Pin-Namen
SENSOR_VP(GPIO36),SENSOR_CAPP(GPIO37),SENSOR_CAPN(GPIO38),SENSOR_VN(GPIO39),VDET_1(GPIO34),VDET_2(GPIO35) - ESP-IDF Programming Guide, GPIO & RTC GPIO (ESP32) — „GPIO34-39 can only be set as input mode and do not have software-enabled pullup or pulldown functions"
- ESP32-S3 Series Datasheet v2.2 und ESP32-C6 Series Datasheet v1.5, Abschnitt 2.3.4 — dort ist keine Gruppe nur-Eingang aufgeführt
Die Boardbelegungen stammen grundsätzlich aus den Unterlagen des jeweiligen Herstellers.
Stand geprüft am 3. August 2026.