Support for generic ESP32S2 boards. More...
Support for generic ESP32S2 boards.
The Espressif ESP32-S2-DevKit boards are a couple of boards that use one of the following modules:
Due to the different modules used, the available versions of the ESP32-S2-DevKit board differ regarding the Flash size, the integrated SPI RAM and the SPI voltage. To be able to use all these different versions of the board with a single board definition, used board version can be specified by the variable
BOARD_VERSION during compilation, for example:
The following table shows the available board versions, the size of the Flash and the SPI RAM as well as the value of the variable
BOARD_VERSION that is used to specify the board version.
|Board Version||Flash (Mode)||SPI RAM (Mode)|
|ESP32-S2-DevKitM-1||4 MB (Quad)||-|| |
|ESP32-S2-DevKitM-1U||4 MB (Quad)||-|
|ESP32-S2-DevKitM-1R||4 MB (Quad)||2 MB (Quad)|
|ESP32-S2-DevKitM-1RU||4 MB (Quad)||2 MB (Quad)|
|ESP32-S2-DevKitC-1||4 MB (Quad)||-|
|ESP32-S2-DevKitC-1U||4 MB (Quad)||-|
|ESP32-S2-DevKitC-1R||4 MB (Quad)||2 MB (Quad)|
|ESP32-S2-DevKitC-1RU||4 MB (Quad)||2 MB (Quad)|
|ESP32-S2-Saola-1M||4 MB (Quad)||-|
|ESP32-S2-Saola-1MI||4 MB (Quad)||-|
|ESP32-S2-Saola-1R||4 MB (Quad)||2 MB (Quad)|
|ESP32-S2-Saola-1RI||4 MB (Quad)||2 MB (Quad)|
BOARD_VERSIONis set to
BOARD_VERSIONis any of
esp32s2-*-1r*values) enables the esp_spi_ram feature. The SPI RAM can then be used as heap by enabling the esp_spi_ram pseudomodule.
This section describes
Most features of the board are provided by the ESP32-S2 SoC. For detailed information about the ESP32-S2 SoC variant (family) and ESP32x SoCs, see section ESP32 SoC Series.
ESP32-S2-DevKit boards have no special hardware on board with the exception of a single pin RGB-LED.
All GPIOs are simply broken out for flexibility. Therefore, the board configuration is the most flexible one which provides:
Since almost GPIOs have broken out, GPIOs can be used for different purposes in different applications. Following GPIOs are used for Flash and SPI RAM and are not broken out:
For flexibility, GPIOs can be used in multiple peripheral configurations, but they can only be used for one peripheral at a time. For example, GPIO9 is used in the ADC channel definition and the definition of the SCL signal for I2C_DEV(0).
This is possible because GPIOs are only used for a specific peripheral interface when either
That is, the purpose for which a GPIO is used depends on which module or function is used first.
For example, if module
periph_i2c is not used, the GPIOs listed in I2C configuration can be used for the other purposes, that is, GPIO9 can be used as ADC channel.
The following table shows the default board configuration, which is sorted according to the defined functionality of GPIOs. This configuration can be overridden by application-specific configurations.
|ADC_LINE(n)||GPIO1 ... GPIO10||ADC Channels|
|DAC_LINE(n)||GPIO17, GPIO18||GPIO18 is connected to RGB-LED||DAC Channels|
|I2C_DEV(0) SCL||GPIO9||I2C Interfaces|
|I2C_DEV(0) SDA||GPIO8||I2C Interfaces|
|PWM_DEV(0)||GPIO11, GPIO12, GPIO13, GPIO14||-||PWM Channels|
|PWM_DEV(1)||GPIO15, GPIO16||if module ||PWM Channels|
|RGB-LED||GPIO18||supported by driver module |
|SPI_DEV(0) CLK||GPIO12||SPI2_HOST (FSPI) is used||SPI Interfaces|
|SPI_DEV(0) MISO||GPIO13||SPI2_HOST (FSPI) is used||SPI Interfaces|
|SPI_DEV(0) MOSI||GPIO11||SPI2_HOST (FSPI) is used||SPI Interfaces|
|SPI_DEV(0) CS0||GPIO10||SPI2_HOST (FSPI) is used||SPI Interfaces|
|UART_DEV(0) TxD||GPIO43||Console (configuration is fixed)||UART interfaces|
|UART_DEV(0) RxD||GPIO44||Console (configuration is fixed)||UART interfaces|
For detailed information about the peripheral configurations of ESP32-S2 boards, see section Common Peripherals.
The following figures show the pinouts as configured by default board definition.
The corresponding board schematics can be found:
Flashing RIOT is quite easy. The board has a Micro-USB connector with reset/boot/flash logic. Just connect the board to your host computer and type using the programming port:
For detailed information about ESP32-S2 as well as configuring and compiling RIOT for ESP32-S2 boards, see RIOT-OS on ESP32 SoC Series Boards.
|Board specific configuration for the Arduino API. |
|Mapping from MCU pins to Arduino pins. |
|Board definitions for ESP32-S2-DevKit boards. |
|Board specific configuration of direct mapped GPIOs. |
|Peripheral configurations for ESP32-S2-DevKit boards. |