Arduino Nano ESP32

Support for the Arduino Nano ESP32 board. More...

Detailed Description

Support for the Arduino Nano ESP32 board.

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

Arduino Nano ESP32

Table of Contents

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

Overview

The Arduino Nano ESP32 is an ESP32-S3 board in Arduino Nano format that uses the u-Blox NORA-W106 module.

Arduino Nano ESP32

The main features of the board are:

Back to table of contents

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

Arduino Nano ESP32 boards have no special hardware on board with the exception of an RGB-LED with separate LEDs for each color.

The board configuration provides:

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.

Function GPIOs Remarks Configuration
ADC_LINE(0) GPIO1 ADC Channels
ADC_LINE(1) GPIO2 ADC Channels
ADC_LINE(2) GPIO3 ADC Channels
ADC_LINE(3) GPIO4 ADC Channels
ADC_LINE(4) GPIO11 N/A if periph_i2c is used ADC Channels
ADC_LINE(5) GPIO12 N/A if periph_i2c is used ADC Channels
ADC_LINE(6) GPIO13 N/A if periph_i2c is used ADC Channels
ADC_LINE(7) GPIO14 N/A if periph_i2c is used ADC Channels
PWM_DEV(0):0 GPIO6 PWM Channels
PWM_DEV(0):1 GPIO8 PWM Channels
PWM_DEV(0):2 GPIO9 PWM Channels
PWM_DEV(0):3 GPIO18 PWM Channels
PWM_DEV(1):0 GPIO46 LED red PWM Channels
PWM_DEV(1):1 GPIO0 LED green PWM Channels
PWM_DEV(1):2 GPIO45 LED blue PWM Channels
I2C_DEV(0):SCL GPIO12 I2C Interfaces
I2C_DEV(0):SDA GPIO11 I2C Interfaces
SPI_DEV(0):CLK GPIO48 SPI2_HOST (FSPI) is used SPI Interfaces
SPI_DEV(0):MISO GPIO47 SPI2_HOST (FSPI) is used SPI Interfaces
SPI_DEV(0):MOSI GPIO38 SPI2_HOST (FSPI) is used SPI Interfaces
SPI_DEV(0):CS0 GPIO21 SPI2_HOST (FSPI) is used SPI Interfaces
UART_DEV(0):TxD GPIO43 Console (fixed) UART interfaces
UART_DEV(0):RxD GPIO44 Console (fixed) UART interfaces


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

Back to table of contents

Board Pinout

The following figure shows the pinout as configured by board definition.

Arduino Nano ESP32 Pinout

An advanced pinout version with front view, back view and some additional information can be found here. The corresponding board schematic can be found here.

Back to table of contents

Flashing the Device

Since the board does not have a USB-to-Serial chip, the easiest way to flash the board is using the USB Serial/JTAG interface. Just connect the board to your host computer and use the following command:

BOARD=arduino-nano-esp32 make flash ...
Note
Usually the make system resets the board before flashing to enable the USB Serial/JTAG interface. In some special cases this reset does not work so that the programmer cannot connect to the board and the flashing is aborted with a timeout:
Serial port /dev/ttyACM0
Connecting...
...
serial.serialutil.SerialTimeoutException: Write timeout
This can happen for example if the board is not yet flashed with RIOT or the USB interface is used for another purpose. In this case, restart the board manually in download mode by pressing and releasing the RESET button while pulling down the GPIO0 (B1) pin. In download mode, the USB Serial/JTAG interface is always available.

Alternatively, an external USB-to-Serial adapter can be used. In this case, the USB-to-Serial adapter has to be connected to TxD (GPIO43) and RxD (GPIO44) of the UART0 interface. Before RIOT can be flashed, the board has also to be switched to download mode. To do this, press and release the RESET button while pulling down the GPIO0 (B1) pin. Once the board is in download mode, use the following command to flash RIOT:

BOARD=arduino-nano-esp32 make flash ...

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

Since the board does not have a USB-to-Serial chip, the USB Serial/JTAG interface is used by default for the STDIO (module stdio_usb_serial_jtag) which provides an USB CDC ACM interface.

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 UART interface could be used with an external USB-to-Serial adapter. Simply add stdio_uart to the list of used modules for this purpose:

BOARD=arduino-nano-esp32 USEMODULE=stdio_uart make flash ...

Files

file  board.h
 Board definitions for Arduino Nano ESP32 boards.
 
file  gpio_params.h
 Board specific configuration of direct mapped GPIOs.
 
file  periph_conf.h
 Peripheral configurations for Arduino Nano ESP32 boards.