Loading...
Searching...
No Matches
ESP32-S3-USB-OTG Board

Support for the ESP32-S3-USB-OTG board. More...

Detailed Description

Support for the ESP32-S3-USB-OTG board.

Author
Gunar Schorcht gunar.nosp@m.@sch.nosp@m.orcht.nosp@m..net

ESP32-S3-USB-OTG

Table of Contents

  1. Overview
  2. Hardware
    1. MCU
    2. Board Configuration
  3. Flashing the Device
  4. Using STDIO

Overview

The Espressif ESP32-S3-USB-OTG is a development board designed for the development of applications that use the USB interface. For this purpose it is equipped with two USB type A ports:

Espressif ESP32-S3-USB-OTG
Note
RIOT-OS does only support the USB_DEV port, that is the board can only be used as USB device.

The main features of the board are:

Feature Support
ESP32-S3 SoC yes (1 core)
2.4 GHz WiFi 802.11b/g/n yes
Bluetooth5, BLE yes
8 MByte Flash yes
USB Type-A Host Interface no
USB Type-A Device Interface yes
SD Card Slot yes (SPI mode)
LCD Color Display 240 x 240 yes

Hardware

This section describes

Back to table of contents

MCU

Most features of the board are provided by the ESP32-S3 SoC. For detailed information about the ESP32-S3 SoC variant (family) and ESP32x SoCs, see section ESP32 SoC Series.

Back to table of contents

Board Configuration

The Espressif ESP32-S3-USB-OTG is a development board that uses the ESP32-S3-MINI-1 module. Most important features of the board are

Function GPIOs Remarks Configuration
BTN0 GPIO0 OK Button
BTN1 GPIO14 MENU Button
BTN2 GPIO11 DW- Button
BTN3 GPIO10 UP+ active
LED0 GPIO15 Green LED
LED1 GPIO16 Yellow LED
LCD_DC GPIO4
LCD_EN GPIO5
LCD_RST GPIO8
LCD_BL GPIO9 LCD Backlight
ADC_LINE(0) GPIO1 USB_HOST Voltage ADC Channels
ADC_LINE(1) GPIO2 Battery Voltage ADC Channels
PWM_DEV(0):0 GPIO15 LED0 PWM Channels
PWM_DEV(0):1 GPIO16 LED1 PWM Channels
SPI_DEV(0):SCK GPIO6 LCD_SCLK SPI Interfaces
SPI_DEV(0):MOSI GPIO7 LCD_SDA SPI Interfaces
SPI_DEV(0):MISO GPIO3 no used SPI Interfaces
SPI_DEV(0):CS0 GPIO5 LCD_EN SPI Interfaces
SPI_DEV(1):SCK GPIO36 SD_CLK SPI Interfaces
SPI_DEV(1):MOSI GPIO35 SD_CMD SPI Interfaces
SPI_DEV(1):MISO GPIO37 SD_DATA0 SPI Interfaces
SPI_DEV(1):CS0 GPIO34 SD_DATA3 SPI Interfaces
UART_DEV(0):TxD GPIO43 USB-to-UART bridge UART interfaces
UART_DEV(0):RxD GPIO44 USB-to-UART bridge UART interfaces


For detailed information about the peripheral configurations of ESP32-S3 boards, see section Common Peripherals.

The corresponding board schematic can be found here

Back to table of contents

Flashing the Device

There are two options to flash the board:

  1. USB Serial/JTAG interface using the USB_DEV port (default)
  2. UART-to-UART bridge

Flashing the device using the USB Serial/JTAG interface (<tt>USB_DEV</tt> port)

To flash the board via the USB Serial/JTAG interface just connect the board with the USB_DEV port to your host computer and use the following command:

BOARD=esp32s3_usb_otg make flash ...

Usually the make system resets the board before flashing to enable the USB Serial/JTAG controller and to reboot the ESP32-S3 in download mode.

In some very special cases this reset does not work and the programmer cannot connect to the card, so the flashing is aborted with a timeout:

Serial port /dev/ttyACM0
Connecting...
...
serial.serialutil.SerialTimeoutException: Write timeout
static SerialPort Serial(ARDUINO_UART_DEV)
Primary serial port (mapped to ARDUINO_UART_DEV)

This can happen either if RIOT is not yet installed or if the USB port was previously used with the USB OTG controller, for example with USBUS or tinyUSB. In this case, restart the board manually into download mode by pressing and releasing the RESET button while holding down the BOOT button. In download mode, the USB Serial/JTAG interface is always available.

Note
If the USB port was previously used with the USB OTG controller, an automatic restart of the ESP32-S3 with the flashed application is not possible. In this case the board must be reset manually using the RESET button. In all other cases the ESP32-S3 automatically restarts with the flashed application.

Flashing the device using USB-to-UART bridge

Flashing RIOT using the USB-to-UART bridge 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:

BOARD=esp32s3-usb-otg make flash ... PORT=/dev/ttyUSB0

For detailed information about ESP32-S3 as well as configuring and compiling RIOT for ESP32-S3 boards, see RIOT-OS on ESP32 SoC Series Boards.

Back to table of contents

Using STDIO

By default, the USB_DEV port and the USB Serial/JTAG interface are used for the STDIO (module stdio_usb_serial_jtag). If the USB port is used by the USBUS stack or the tinyUSB stack, implicitly the module stdio_cdc_acm or stdio_tinyusb_cdc_acm is used for the STDIO via the USB CDC ACM interface.

Alternatively, the USB-to-UART bridge and UART_DEV(0) could be used for the STDIO. Simply add stdio_uart to the list of used modules for this purpose:

BOARD=esp32s3-usb-otg USEMODULE=stdio_uart make flash ...

Files

file  board.h
 Board definitions for the ESP32-S3-USB-OTG boards.
 
file  gpio_params.h
 Board specific configuration of direct mapped GPIOs.
 
file  periph_conf.h
 Peripheral configurations for ESP32-S3-USB-OTG boards.