Nutzbare Anschlüsse an ESP32 / ESP8266 Developer-Boards
https://bildung.social/deck/@oerinformatik/114099714293639592
https://oer-informatik.de/esp_pinout
tl/dr; (ca. 3 min Lesezeit): Nicht alle Pins eines Microcontroller-Boards kann man nutzen: einige steuern den Startvorgang (Strapping Pins), andere sind intern mit LED, Speicher oder Buttons verbunden. Für die ESP32-Boards ESP32 Dev Kit V1, ESP32 Dev Kit V2, ESP32 Dev Kit C V4, ESP32 C6 Dev Kit N8-M, WeMos Dev Board with 0.96 inch OLED, das ESP8266-Board gibt es hier Pinouts mit den empfohlenen frei nutzbaren Pins. (Zuletzt geändert am 07.03.2025)
Es ist generell eine gute Idee, immer den Link zum Pinout (also: der Anschlussbelegung) des vorliegenden Microcontrollers zur Hand zu haben. Das Internet ist voll davon - manchmal muss man ein bisschen suchen, bis man überhaupt weiß, welche Version das eigene Microcontroller-Board ist.
Auf dieser Seite folgen:
Pinouts für die von mir häufiger genutzten ESP-Boards mit Hinweisen, welche Pins sich wofür eignen
ESP32 Dev Kit V1
ESP32 Dev Kit V2
ESP32 Dev Kit C V4
ESP32 C6 Dev Kit N8-M
WeMos Dev Board with 0.96 inch OLED
ESP8266 (“NodeMCU”)
Eine allgemeine Liste der Anschlusspins und deren Funktion/Einschränkungen, um auch für andere ESP32-Boards Rückschlüsse ziehen zu können.
Legende für die unten folgenden Pinouts:
GPIO
steht für general purpose input output - die Zahl dahinter ist diejenige, die man in der Programmierung nutzt (also z.B. für GPIO13:pinmode(13, OUTPUT);
)ADC
ist der Analog-Digital-Converter: hier gibt es zwei Stück, die auf vielen Pins genutzt werden können. ADC2 kann jedoch nicht zeitgleich mit WLAN genutzt werden.- Alle Pins haben Pulsweitenmodulation, 16 unterschiedliche Kanäle sind hier möglich
- RTC: über diese Pins kann der ESP aus den DeepSleep geweckt werden
- SP: Strapping Pins müssen beim Booten einen bestimmen Zustand haben, da sie unterschiedliche Modi aktivieren (z.B. Programm starten vs. neues Programm laden)
I
undO
groß und grün hinterlegt heißt: bedenkenlos als Input bzw. Output nutzbari
undo
klein und gelb/hellgrün hinterlegt heißt: Es gibt Einschränkungen. Erst Text lesen, dann überlegen, ob als Input bzw. Output sinnvoll nutzbarpu
bzw.pd
: an Strapping Pins gibt es häufig PullUp oder PullDown-Widerstände, damit die Startzustände vorliegen. Die Beschaltung und Benutzung dieser Pins muss das berücksichtigen.- hellrot / hellblau hinterlegt: Spannungsversorgung
- rot hinterlegt: Finger weg! (I.d.R. Ansteuerung des internen Speichers)
- GPIO-Name grün hinterlegt: gut geeignet für jeden Zweck
- GPIO-Name gelb hinterlegt: mit Einschränkungen nutzbar, siehe Text.
Zum genauer Recherchieren ist es unerlässlich, selbst mal in die beiden Dokumente geschaut zu haben:
ESP32 Dev Kit V1
Gutmütiges Board mit elf frei verfügbaren und vierzehn eingeschränkt nutzbare Pins, einer LED - leider häufig mit MicroUSB-Anschluss. Wie bei vielen ESP32-Boards ist es so breit, dass auf einem normalen Breadboard nur eine der beiden Pin-Leisten leicht erreichbar ist.
Board-Treiber: “ESP32 Dev Module”
Fritzing-Datei1 z.B. aus dem GitHub-Repo von silveirago/FritzingParts

Fehlt etwas wesentliches auf dem Pinout? Ich bin für jeden Hinweis dankbar. Wer selbst anpassen will oder ein weiteres ESP32-Board ergänzen will findet hier die ursprüngliche Datei.
ESP32 Dev Kit V2
Im wesentlichen wie das obige V1-Board (elf frei verfügbare, aber fünfzehn eingeschränkt nutzbare Pins) - es wurde nur ein Pin ergänzt, der aber nur bedingt genutzt werden kann (GPIO0
) und relativ viele Pins, die man ohnehin nicht nutzt, weil der interene Speicher angeschlossen ist (GPIO6
- GPIO11
) - außerdem ist die interne LED an TX angeschlossen und somit auch nicht frei programmierbar. Wie bei vielen ESP32-Boards ist es so breit, dass auf einem normalen Breadboard nur eine der beiden Pin-Leisten leicht erreichbar ist.
Board-Treiber: “ESP32 Dev Module”

Fehlt etwas wesentliches auf dem Pinout? Ich bin für jeden Hinweis dankbar. Wer selbst anpassen will oder ein weiteres ESP32-Board ergänzen will findet hier die ursprüngliche Datei.
ESP32 Dev Kit C V4
Etwas kompakter als das V2-Board, auch hier elf frei verfügbare und fünfzehn eingeschränkt nutzbare Pins. Neben der Bauform einziger Unterschied: es gibt keine intere LED mehr. Wie bei vielen ESP32-Boards ist es so breit, dass auf einem normalen Breadboard nur eine der beiden Pin-Leisten leicht erreichbar ist.
Board-Treiber: “ESP32 Dev Module”

Fehlt etwas wesentliches auf dem Pinout? Ich bin für jeden Hinweis dankbar. Wer selbst anpassen will oder ein weiteres ESP32-Board ergänzen will findet hier die ursprüngliche Datei.
ESP32 C6 Dev Kit N8-M
Ein etwas untypisches Board mit einem USB-C Anschluss. Ist es mit dem PC verbunden, stellt es zwei Ports zur Verfügung. Zur seriellen Verbindung mit dem Programmer und dem Seriellen Monitor der Arduino-IDE eignet sich der Port ohne die Bezeichnung “ESP32 Family…”. Das Board ist schmaler als viele ESP32-Boards, so dass auf einem normalen Breadboard beide Pin-Leisten leicht erreichbar sind!
Das Board hat sieben frei verfügbare und zehn eingeschränkt nutzbare Pins.
Board-Treiber: “ESP32C6 Dev Module”
Fritzing-Datei2 z.B. von tinkerdudeeeeeeee aus dem Fritzing-Forum
Das Board verfügt über eine interne RGB-LED, die über die Neopixel-Bibliothek angesprochen werden kann (Siehe Board-Beispielcode).

Das Pinout entspricht nahezu dem Pinout des Espressif-Boards ESP32 C6 Dev Kit C 1. Das Datenblatt des genutzten Microcontrollers findet sich hier (Espressif-Seite)
Fehlt etwas wesentliches auf dem Pinout? Ich bin für jeden Hinweis dankbar. Wer selbst anpassen will oder ein weiteres ESP32-Board ergänzen will findet hier die ursprüngliche Datei.
WeMos Dev Board with 0.96 inch OLED
Das Board hat spezielle Anwendungsfälle, daher ist auch nicht weiter schlimm, dass es lediglich drei frei verfügbare und zwölf eingeschränkt nutzbare Pins hat. Das OLED-Display macht da einiges wieder gut. Bei meinem Board ist etwas seltsam, dass ich den Boot-Button zum Programmieren händisch betätigen muss. Wie bei vielen ESP32-Boards ist es so breit, dass auf einem normalen Breadboard nur eine der beiden Pin-Leisten leicht erreichbar ist.
Board-Treiber: “ESP32 Dev Module”

Fehlt etwas wesentliches auf dem Pinout? Ich bin für jeden Hinweis dankbar. Wer selbst anpassen will oder ein weiteres ESP32-Board ergänzen will findet hier die ursprüngliche Datei.
NodeMCU / ESP8266
Es gibt das NodeMCU-Board auf ESP8266-Basis in unterschiedlichen Versionen. Größter Unterschied ist, dass das vermeintlich neuste Layout nicht mehr so auf ein Breadboard passt, dass man an beide Pinleisten leicht kommt - hier lohnt also etwas Recherche vor dem Kauf!

Die kleinen Schaltpläne finden sich hier als Falstadt-Link.
Fehlt etwas wesentliches auf dem Pinout? Ich bin für jeden Hinweis dankbar. Wer selbst anpassen will findet hier die ursprüngliche Datei.
Generelle Funktion und Einschränkung der ESP32-Anschlusspins:
Pin | Input | Output | Beschreibung |
---|---|---|---|
GND | 0V (GND / LOW) | ||
5V / VIN | 5V (direkt per USB, vorsicht!) | ||
3V3 | 3,3V (HIGH) | ||
EN / RST | pullup, RST-Button, startet ESP neu | ||
NC | not connected (keine Funktion) | ||
GPIO0 | pu | o | Strapping Pin: HIGH boot / LOW programm, RTC, Touch, ADC2, Boot-Button, PullUp |
GPIO1 / TXD | x | o | UART0-TXD (USB/Serial.print()), nur Output, Bootlog-Output, DevKitV2: LED |
GPIO2 | pd | o | StrappingPin: LOW on Boot (PullDown); RTC, Touch, ADC2, DevKitV1: LED |
GPIO3 / RXD | i | x | UART0-RXD (USB/Serial.read()), nur Input, HIGH beim Booten |
GPIO4 | i | o | RTC, Touch, ADC2, “Strapping Pin” wird ggf. zur Bootmode-Wahl genutzt |
GPIO5 | pu | o | SP: HIGH boot, SPI CS, Boot-Output, PullUp |
GPIO6 / CLK | wird für Flash genutzt | ||
GPIO7 / SD0 | wird für Flash genutzt | ||
GPIO8/ SD1 | wird für Flash genutzt | ||
GPIO9 / SD2 | UART1-TX, wird für Flash genutzt | ||
GPIO10 / SD3 | UART1-RX, wird für Flash genutzt | ||
GPIO11 / CMD | wird für Flash genutzt | ||
GPIO12 | pd | O | SP: LOW boot, JTAG-MTDI, RTC, Touch, ADC2, als Output ok, PullDown |
GPIO13 | I | O | RTC, Touch, ADC2, JTAG-MTCK |
GPIO14 | I | o | SP, JTAG-MTMS, RTC, Touch, ADC2, Boot-Output |
GPIO15 | pu | o | SP: HIGH bootOutput, JTAG-MTDO, RTC, Touch, ADC2, Input gegen LOW, PullUp |
GPIO16 | I | o | UART2-RX (bei ESP32-WROVER für PSRAM) |
GPIO17 | I | o | UART2-TX ( (bei ESP32-WROVER für PSRAM) |
GPIO18 | I | O | SPI SCLK |
GPIO19 | I | O | SPI MISO |
GPIO20 | I | O | |
GPIO21 | I | O | I2C SDA (default) |
GPIO22 | I | O | I2C SCL (default) |
GPIO23 | I | O | SPI MOSI |
GPIO24 | I | O | |
GPIO25 | I | O | RTC, DAC (8Bit), ADC2 |
GPIO26 | I | O | RTC, DAC (8Bit), ADC2 |
GPIO27 | I | O | RTC, Touch, ADC2 |
GPIO28 | I | O | |
GPIO29 | I | O | |
GPIO30 | I | O | |
GPIO31 | I | O | |
GPIO32 | I | O | RTC, Touch, ADC1 |
GPIO33 | I | O | RTC, Touch, ADC1 |
GPIO34 | i | x | ADC1, nur Input, kein interner pull-up/pull-down |
GPIO35 | i | x | ADC1, nur Input, kein interner pull-up/pull-down |
GPIO36 / VP / SP | i | x | VP, ADC1, nur Input, kein interner pull-up/pull-down |
GPIO37 | i | x | ADC1, nur Input, kein interner pull-up/pull-down |
GPIO38 | i | x | ADC1, nur Input, kein interner pull-up/pull-down |
GPIO39 / VN / SN | i | x | VN, ADC1, nur Input, kein interner pull-up/pull-down |
Hinweis zur Nachnutzung als Open Educational Resource (OER)
Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Nutzbare Anschlüsse an ESP32 / ESP8266 Developer-Boards” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/esp_pinout veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/mcu/arduino-esp. Stand: 07.03.2025.
[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]