De pinout van de ESP32 is een van zijn grootste sterke punten en een van de meest voorkomende bronnen van verwarring. Bij zware multiplexing, strikte bootmodusafhankelijkheden en gevoelig analog gedrag is correcte pinkeuze belangrijk voor stabiele werking. Dit artikel organiseert elke belangrijke pingroep duidelijk zodat je conflicten kunt vermijden, opstartfouten kunt voorkomen en betrouwbare hardware op basis van ESP32 kunt ontwerpen.

Begrijpen van de ESP32 Pinout
De ESP32 is een krachtige en flexibele microcontroller die veel wordt gebruikt in IoT, automatisering en slimme apparaten. De geavanceerde mogelijkheden komen voort uit een sterk gemultiplexeerd pinoutsysteem waarbij veel functies dezelfde fysieke pinnen delen. Deze omvatten digitale I/O, ADC-kanalen, capacitieve touchsensoren, communicatiebussen, RTC-domeinpinnen en interne verbindingen voor SPI-flash en bootconfiguratie. Omdat veel functies pinnen delen, kan onjuiste bedrading leiden tot mislukte opstart, ruisachtige ADC-metingen of uitgeschakelde randapparatuur.
ESP32 DevKit Pin-indeling

ESP32-ontwikkelborden worden doorgaans geleverd in 30-pins en 38-pins versies, die beide dezelfde kernfuncties blootstellen, maar met kleine verschillen in beschikbare GPIO's.
Pingroepen op ESP32 ontwikkelborden
| Groep | Beschrijving |
|---|---|
| Stroompinnen | VIN (5 V), 3,3 V uitgang, GND |
| Regelpinnen | EN (reset), IO0 (bootmodus) |
| GPIO-pinnen | Digitale I/O met multiplexing |
| Analoge pinnen | ADC1- en ADC2-kanalen |
| Communicatiepinnen | SPI, I2C, UART, I2S |
| Alleen invoerpinnen | GPIO34–GPIO39 |
| Flash-gereserveerde pinnen | GPIO6–GPIO11 |
Gemeenschappelijke Header-indeling
Linkerkop
• EN, GPIO36–39, GPIO34–35
• GPIO32–33, 25–27
• VIN, GND, 3,3V
Rechter Header
• GPIO0–23
• Boot-strapping pins (0, 2, 5, 12, 15)
Het begrijpen van de fysieke indeling maakt het makkelijker om fouten te vermijden en de bedrading efficiënt te plannen.
ESP32 GPIO Overzicht

ESP32 GPIO's zijn flexibel dankzij de interne I/O-matrix, waardoor randapparatuur zoals UART, SPI, I2C en PWM vrijwel overal kunnen worden toegewezen. GPIO's ondersteunen digitale in- en uitgang met ingebouwde pull-up/down-weerstanden, edge-triggered interrupts en betrouwbare schakeling bij hoge snelheden. De typische continue aandrijfstroom is 12–16 mA (pieken tot ~20–40 mA), dus externe drivers zijn vereist voor motoren of relais.
Alleen invoerpinnen
Deze pinnen kunnen geen uitgang aansturen en zijn ideaal voor sensoren en analoge ingangen:
| Pin | Type | Aanbevolen Gebruik |
|---|---|---|
| GPIO34 | Alleen invoer | ADC1 / sensoren |
| GPIO35 | Alleen invoer | ADC1 |
| GPIO36 (VP) | Alleen invoer | ADC1 / Hall-sensor |
| GPIO39 (VN) | Alleen invoer | ADC1 |
Veilige ESP32-pinnen om te gebruiken en pinnen om te vermijden

Niet alle ESP32-pinnen gedragen zich gelijk. Sommige zijn veilig, terwijl andere de opstartmodus beïnvloeden of gekoppeld zijn aan intern flashgeheugen.
Veilige Pins (aanbevolen voor alle gebruikers)
| GPIO's | Notities |
|---|---|
| 4, 13–19, 21–27, 32, 33 | Geen impact op de opstart, ideaal voor de meeste randapparatuur |
Waarschuwingspinnen (beïnvloeden opstartmodus)
| GPIO | Opstartfunctie | Vermijd tijdens het opstarten |
|---|---|---|
| GPIO0 | Flash/Boot-modus | Houd HOOG (input) tijdens normale opstart |
| GPIO2 | Opstartspanning | Moet HOOG zijn |
| GPIO5 | Optionele opstartmodus | Vermijd het laag trekken |
| GPIO12 | Flitsspanningsmodus | Moet LAAG blijven |
| GPIO15 | SPI-modus | Moet LAAG blijven |
Deze pinnen zijn veilig te gebruiken in normale werking, maar externe componenten mogen ze tijdens het reset-niveau niet naar ongeldige logicaniveaus trekken. Hun gedetailleerde rollen van de boots worden uitgelegd in Sectie 9.
Beperkte Pinnen (Niet Gebruiken)
| GPIO | Reden |
|---|---|
| GPIO6–11 | Aangesloten op SPI flashgeheugen |
Het gebruik hiervan kan de ESP32 laten vastlopen of crashen.
ESP32 ADC-pinnen

De ESP32 integreert twee SAR ADC-eenheden met verschillend operationeel gedrag:
• ADC1 — Altijd beschikbaar en aanbevolen voor alle sensoringangen
• ADC2 — Gedeeld met het Wi-Fi-subsysteem en wordt niet meer beschikbaar wanneer Wi-Fi actief is
Dit is een van de belangrijkste beperkingen van de ESP32, waardoor ADC1 de betrouwbare keuze is voor metingen in draadloze toepassingen.
| ADC-eenheid | Kanalen | GPIO's | Notities |
|---|---|---|---|
| ADC1 | CH0–CH7 | GPIO32–39 | Beste keuze voor sensoren |
| ADC2 | CH0–CH9 | 0, 2, 4, 12–15, 25–27 | Onbruikbaar tijdens Wi-Fi |
Spanningsbereik & Nauwkeurigheid
De ADC's ondersteunen een standaard ingangsbereik van 0–1,1 V, uitbreidbaar tot ongeveer 3,3 V met demping. Beide ADC-units zijn niet-lineair en profiteren van kalibratie. De analoge prestaties kunnen worden beïnvloed door interne RF-activiteit, dus het wegleiden van sensorlijnen weg van de antenne en het toevoegen van eenvoudige RC-filters kan de stabiliteit aanzienlijk verbeteren. Voor Wi-Fi-compatibele projecten moet je altijd analoge sensoren op ADC1 plaatsen om continue en ruisvrije werking te garanderen.
ESP32 DAC-, PWM- en touchpinnen
De ESP32 bevat ingebouwde analoge uitgangen en touchsensoren die golfvormgeneratie, dimming, motorbesturing en gebruikersinterfaces vereenvoudigen.
DAC Overzicht

Twee 8-bits DAC-kanalen geven ware analoge spanningen uit:
| DAC | GPIO |
|---|---|
| DAC1 | GPIO25 |
| DAC2 | GPIO26 |
Veelvoorkomende toepassingen zijn eenvoudige audio, analoge golfvormen, LED-fading en biasspanningen. Het uitgaande bereik is doorgaans 0–3,3 V.
PWM (LEDC)

De LEDC-module biedt een hoge resolutie, flexibele PWM:
• 16 kanalen
• Tot 40 MHz timerbasis
• Tot 20-bits resolutie
• Volledig herprogrammeerbare GPIO's
Gebruikt voor LED-dimming, motorbesturing, servosignalen, audiotonen en algemene modulatie. Elke GPIO kan een PWM-uitgang hosten via de GPIO Matrix.
Touchsensorpinnen

De 10 capacitieve touchpads van de ESP32 detecteren vingernabijheid en zijn handig voor touchknoppen, schuifregelaars en wake-up triggers.
| Touch Pad | GPIO |
|---|---|
| T0–T9 | GPIO4, 0, 2, 15, 13, 12, 14, 27, 33, 32 |
Deze sensoren bevatten ruisfiltering en werken goed voor wake-events met weinig stroomverbruik.
ESP32 Communicatiepinnen
De ESP32 bevat een rijke set communicatieperiferie, die elk via de flexibele GPIO Matrix naar meerdere pinnen kan worden gestuurd. Hierdoor kunnen interfaces zoals I2C, SPI en UART vrijwel overal worden toegewezen, waardoor zeer aanpasbare bordindelingen en randapparatuurcombinaties mogelijk zijn.
I2C (Standaard en Aangepaste Pinnen)

De ESP32 bevat twee I2C-controllers, met volledige flexibiliteit bij pinselectie. Hoewel de meeste ontwikkelkaarten de standaardpinnen gebruiken, kunnen zowel SDA als SCL aan vrijwel elke GPIO worden toegewezen.
| Signaal | Standaard GPIO | Notities |
|---|---|---|
| SDA | GPIO21 | Volledig herbenoembaar |
| SCL | GPIO22 | Volledig herbenoembaar |
Elk twee digitale GPIO's kunnen fungeren als SDA en SCL. Ondersteunt zowel standaardmodus (100 kHz), fast-mode (400 kHz) als fast-mode plus (1 MHz afhankelijk van het bord). Ondersteunt interne pull-ups op sommige printplaten, maar externe weerstanden van 4,7 kΩ worden aanbevolen voor stabiele communicatie. Deze flexibiliteit maakt de ESP32 ideaal voor systemen die meerdere sensoren of onconventionele pin-routering vereisen.
De ESP32 bevat meerdere SPI-bussen, waarbij HSPI en VSPI beschikbaar zijn voor gebruikersapparaten. Beide ondersteunen hermapping via de GPIO-matrix, maar de meeste kaarten en bibliotheken gebruiken de volgende standaard VSPI-configuratie, wat conflicten met interne flashverbindingen voorkomt:
Standaard VSPI-mapping
• SCK → GPIO18
• MISO → GPIO19
• MOSI → GPIO23
• CS → GPIO5
VSPI wordt doorgaans geprefereerd voor beeldschermen, SD-kaarten en snelle randapparatuur. Hoewel pinnen opnieuw toegewezen kunnen worden, zorgt het gebruik van de standaardinstellingen voor maximale compatibiliteit en verminderen ze timingproblemen zonder beperkingen te herhalen die al in eerdere secties zijn behandeld.
UART (Serie)

De ESP32 bevat drie UART-controllers, met flexibele routering waarmee alle UART-pinnen naar vrijwel elke GPIO kunnen verplaatsen.
| UART | TX Pin | RX Pin | Primaire Doel |
|---|---|---|---|
| UART0 | GPIO1 | GPIO3 | Flashen, opstartberichten, seriële logging |
| UART1 | GPIO10 | GPIO9 | Beschikbaar voor gebruikersapplicaties |
| UART2 | GPIO17 | GPIO16 | Beschikbaar voor gebruikersapplicaties |
ESP32 Diepslaap- en RTC-pinnen
De ESP32 bevat een Ultra-Low-Power (ULP) subsysteem en een speciaal Real-Time Clock (RTC) domein die zelfs als de hoofd-CPU en randapparatuur zijn uitgeschakeld, van stroom voorzien. Deze architectuur maakt een extreem laag energieverbruik mogelijk, vaak in het microampèrebereik, waardoor de ESP32 geschikt is voor langdurige batterij-aangedreven toepassingen.
Deep sleep maakt het mogelijk om de chip de hoofdkernen, de meeste interne klokken en de Wi-Fi/Bluetooth-radio's uit te schakelen, terwijl geselecteerde pinnen en sensoren via de RTC-randapparatuur nog steeds worden bewaakt.

De ESP32 kan uit diepe slaap ontwaken via verschillende onafhankelijke triggers. Elke wake-bron werkt binnen het RTC-domein, dat is ontworpen om actief te blijven met minimaal energieverbruik.
| Wake Type | GPIO's / Notities |
|---|---|
| Externe RTC GPIO | GPIO32, GPIO33, GPIO25, GPIO26, GPIO27 — ondersteuning van edge of level wake-up |
| Capacitieve Touch Pads | T0–T9 — detecteert vingernabijheid of aanraking tijdens diepe slaap |
| Timer Wake-Up | RTC-timer kan het apparaat wakker maken na een geprogrammeerd interval |
| ULP Co-processor | (Optioneel) Aangepaste energiebesparende code kan worden uitgevoerd om sensoren te controleren voordat de hoofd-CPU wordt ontwaakt |
Deze pinnen behoren tot het RTC-domein en blijven actief, zelfs wanneer CPU- en reguliere GPIO's worden uitgeschakeld. Ze ondersteunen wake-up via stijgende/dalende randen of eenvoudige niveaudetectie. Wordt vaak gebruikt voor wake-on-motion, magnetische schakelaars en energiezuinige triggers.
ESP32 opstart-, vastbind- en EN-pinfuncties

De ESP32 gebruikt verschillende strapping-pinnen die de sleutelconfiguraties van het systeem bepalen tijdens het resetten of opstarten. Deze pinnen worden alleen bij het opstarten gesampled en keren daarna terug naar de normale GPIO-functie. Het is handig om ervoor te zorgen dat ze niet tot ongeldig niveau worden gedreven tijdens de reset voor consistent opstartgedrag.
Strapping pin-tafel
| Pin | Boot Rol | Vereiste Staat bij Boot |
|---|---|---|
| GPIO0 | Selecteert bootloader / flashmodus | LAAG = in flitsmodus gaan; HOOG = normale opstart |
| GPIO2 | Definieert het interne opstartspanningsniveau | Moet HOOG blijven |
| GPIO5 | SPI bootconfiguratie | Moet HOOG blijven |
| GPIO12 | Selecteert flitsspanning (3,3 V / 1,8 V) | Moet LAAG blijven voor 3,3 V flitser |
| GPIO15 | Stelt SPI-communicatiemodus in tijdens het opstarten | Moet LAAG blijven |
Deze sectie biedt de gezaghebbende referentie voor strapping-gedrag. Eerdere secties vatten alleen de praktische effecten samen; Gebruik deze tabel bij het toewijzen van pinnen op aangepaste printplaten of het integreren van knoppen en sensoren.
EN-pin (Inschakelen / Reset)
De EN (Enable) pin fungeert als de master reset ingang voor de ESP32.
EN-pingedrag:
• Het trekken van EN LOW reset de chip onmiddellijk.
• Het terugzetten naar HOOG schakelt de interne circuits in en start de opstartsequentie opnieuw.
• Op ontwikkelborden (bijv. ESP32-DevKitC, NodeMCU-ESP32) is EN gekoppeld aan de USB-naar-seriële interface om automatische reset tijdens flashing mogelijk te maken.
ESP32 Power Pinnen

De ESP32 is gevoelig voor stroomkwaliteit omdat zijn Wi-Fi- en Bluetooth-radio's korte, hoog-amplitude stroompulsen trekken. Stabiele stroomvoorziening zorgt voor betrouwbare opstart, minder resets van de stroomstoring en consistente draadloze prestaties.
Samenvatting van Power Pin
| Pin | Spanning | Gebruik |
|---|---|---|
| VIN | 5 V ingang | Voedt de ingebouwde regelaar (meestal AMS1117 of ME6211) om 3,3 V te genereren |
| 3V3 | 3,3 V uitgang | Gereguleerde output van de aan boord LDO; Gebruikt om externe laagstroomlogica en sensoren van stroom te voorzien |
| GND | — | Elektrische referentie en retourpad voor alle subsystemen |
Aanbevolen ESP32-pinnen en bedradingvoorbeelden
Het kiezen van de juiste pinnen op de ESP32 is nodig voor stabiele werking, een schone signaalroutering en het voorkomen van conflicten met bootstrapping of interne flashverbindingen. De volgende aanbevelingen benadrukken de meest betrouwbare, conflictvrije pinnen voor veelvoorkomende functies.
Pinkeuzes
| Functie | Beste pins | Notities |
|---|---|---|
| I2C | 21 (SDA), 22 (SCL) | Standaard hardware-getest paar; Werkt in de meeste boards. |
| SPI | 18 (SCK), 19 (MISO), 23 (MOSI), 5 (CS) | Deze pinnen zijn duidelijk gekoppeld aan VSPI en vermijden flash-verbonden pinnen. |
| UART | 16 (RX), 17 (TX) | Speciale UART2-pinnen, veilig voor opstarten en debuggen. |
| PWM (LEDC) | 4, 16–19, 21–27, 32–33 | Bereik met hoge flexibiliteit; PWM kan naar bijna elke GPIO worden geleid. |
| ADC | 32–39 (ADC1) | ADC1-kanalen blijven bruikbaar, zelfs als Wi-Fi actief is. |
Conclusie
Het beheersen van de ESP32-pinout verwijdert giswerk en voorkomt veel van de problemen die in echte builds voorkomen, van lawaaierige ADC-lezingen tot eindeloze bootloops. Door veilige pinnen, bandgedrag, stroomintegriteit en diepe slaap te begrijpen, kun je circuits ontwerpen die stabiel, voorspelbaar en draadloos klaar blijven. Gebruik de bovenstaande pinmaps en richtlijnen als basis voor probleemloze ESP32-projecten.
Veelgestelde Vragen [FAQ]
Hoe configureer ik PlatformIO voor het Freenove ESP32-S3 Breakout Board?
Gebruik de standaard ESP32-S3 ontwikkelmodule-instellingen. Voeg in je platformio.ini toe:
[env:esp32s3]
platform = espressif32
Board = ESP32-S3-devKitc-1
Framework = Arduino
Dit komt overeen met de Freenove-pinout, waardoor normaal compileren en uploaden via USB mogelijk is.
Hoeveel randapparatuur kan de ESP32 tegelijk gebruiken?
Door de GPIO-matrix kan de ESP32 meerdere I²C-, SPI-, UART-, PWM- en ADC-functies gelijktijdig uitvoeren, zolang je beperkte pinnen vermijdt en binnen CPU- en timinglimieten blijft. De belangrijkste knelpunten zijn ADC2 tijdens Wi-Fi en de kwaliteit van de voeding, niet het aantal pinnen.
Waarom start mijn ESP32 opnieuw op bij het aansluiten van sensoren of modules?
Onverwachte resets ontstaan meestal door spanningsdips veroorzaakt door Wi-Fi-uitbarstingen, motoren of slecht gereguleerde voedingen. Door een 1 A of hoger 5 V bron te gebruiken, toe te voegen van 10–100 μF bulkcondensatoren en lawaaierige belastingen te isoleren, voorkom het voorkomen van spanningsuitval.
Kan ik de 3,3 V-pin van de ESP32 gebruiken om externe modules van stroom te voorzien?
Ja, maar alleen voor laagstroom-apparaten (meestal onder de 300–500 mA, afhankelijk van de ingebouwde LDO). Randapparatuur met een hoog verbruik zoals motoren, servomotoren en grote LED-strips moet een aparte voeding gebruiken om resets en oververhitting te voorkomen.
Hoe kies ik de beste ESP32-pinnen bij het gebruik van meerdere randapparatuur?
Geef prioriteit aan niet-strapping pins, vermijd GPIO6–11, plaats analoge sensoren op ADC1 en gebruik standaard VSPI/I²C/UART-pinnen waar mogelijk. Dit vermindert conflicten en zorgt ervoor dat alle randapparatuur samen kan werken zonder problemen met het hertoewijzen.