Show / Hide Table of Contents

    ESP32 Pin out

    ESP32 Pin out differ depending of the physical hardware. What is common is the GPIO numbering. So refer to the documentation of your specific board to find out the physical relation.

    You can find all the details for the default mapping in this file

    The default mapping defines how the pins are configured on start up. These pins configurations can be configured/redefined using the nanoFramework.Hardware.Esp32 assembly.

    Example configuration

    // Define MOSI pin for SPI2 as GPIO 15
    Configuration.SetPinFunction(15, DeviceFunction.SPI2_MOSI);
    // Define LED PWM channel 1 GPIO 16
    Configuration.SetPinFunction(16, DeviceFunction.PWM1);
    // Redefine I2C2 data pin from GPIO 25 to GPIO 17
    Configuration.SetPinFunction(17, DeviceFunction.I2C2_DATA);
    

    ESP32 Default Mapping

    NP = Pin is undefined at startup

    I2C

    There are 2 I2C bus available:

    I2C# Data Clock
    I2C1 GPIO 18 GPIO 19
    I2C2 GPIO 25 GPIO 26

    SPI

    There are 2 SPI possible configurations:

    SPI# MOSI MISO Clock
    SPI1 GPIO 23 GPIO 25 GPIO 19
    SPI2 NP NP NP

    Serial ports

    You have 2 serial ports available, COM1 is reserved for debugging when enabled.

    COM# Transfer (Tx) Reception (Rx) RTS CTS
    COM1 GPIO 1 GPIO 3 GPIO 19 GPIO 22
    COM2 NP NP NP NP
    COM3 NP NP NP NP

    PWM channels

    There are 16 PWM channels on ESP32 For all channels the GPIO pins are undefined at startup.

    The first 8 PWM (PWM0 to PWM7) are using a low precision timer, the last 8 ones (PWM8 to PWM15) a high resolution timer. You should setup the pin to select the timer resolution you need.

    Note that PWM goes in pair. So PWM0 and PWM1 (2 and 3, and so on) will share the same frequency. If you need PWM with different frequencies, you'll have to select compatible PWM pins.

    ADC

    We use "ADC1" with 20 logical channels mapped to the ESP32 internal controllers ADC1 and ADC2 There are the 18 available ESP32 channels plus the internal Temperature and Hall sensors making the 20 logical channels.

    Restrictions:-

    • Channels 10 to 19 can not be used while the WiFi is enabled. (exception CLR_E_PIN_UNAVAILABLE)
    • Hall sensor and Temperature sensor can not be used at same time as Channels 0 and 3.
    • Gpio 0, 2, 15 are strapping pins and can not be freely used ( Channels 11, 12, 13 ), check board schematics.
    Logical channel # Internal ADC# GPIO # Note
    0 ADC1 36 See restrictions
    1 ADC1 37
    2 ADC1 38
    3 ADC1 39 See restrictions
    4 ADC1 32
    5 ADC1 33
    6 ADC1 34
    7 ADC1 35
    8 ADC1 36 Internal Temperture sensor (VP), See restrictions
    9 ADC1 39 Internal Hall Sensor (VN), See restrictions
    10 ADC2 04
    11 ADC2 00 Strapping pin
    12 ADC2 02 Strapping pin
    13 ADC2 15 Strapping pin
    14 ADC2 13
    15 ADC2 12
    16 ADC2 14
    17 ADC2 27
    18 ADC2 25
    19 ADC2 26

    DAC

    2 DAC are available on the ESP32:

    DAC# GPIO #
    DAC1 25
    DAC2 26
    • Improve this Doc
    Back to top Copyright © 2018 nanoFramework Contributors
    Generated by DocFX