ESP32-S31 Boot Requirements

  • The ESP32-S31 operating voltage range is 3.0 V ~ 3.6 V. With a single power supply, use 3.3 V and provide at least 600 mA (including flash and PSRAM). For more details, see ESP32-S31 Power Supply Design Guidelines.
  • CHIP_PU (EN) is the chip enable pin. The chip is enabled when CHIP_PU is high and disabled when it is low. Do not leave CHIP_PU floating. When using a 3.3 V system power supply, CHIP_PU must be pulled high.

Hardware Connections

To flash firmware on a custom ESP32-S31 design, reserve download test points on your PCB and wire them according to the download-mode requirements below.

ESP32-S31 supports firmware download over UART0 and USB. Different interfaces require different Strapping pin levels:

  • To flash firmware over UART0 on a custom ESP32-S31 design, prepare:

    • 3.3V power supply
    • Serial debug tool
    • DuPont wires

    power-uart

    When using the UART0 pins to download firmware, the following wiring conditions must be met to satisfy the hardware requirements for chip power supply, power-on boot, and entering download mode.

    ESP32-S313.3V External PowerSerial Debug Tool
    3V3VDD
    GNDGNDGND
    ENVDD
    GPIO61 (Pulled low, default is weak pull-up)GND
    GPIO60 (Can be pulled high or left floating, default is weak pull-up)VDD
    TXD0 (GPIO58)RXD
    RXD0 (GPIO59)TXD
  • To flash firmware over USB on a custom ESP32-S31 design, prepare:

    • 3.3V power supply
    • USB cable
    • DuPont wires

    power-usb

    When using the USB HS OTG pins to download firmware, the following wiring conditions must be met to satisfy the hardware requirements for chip power supply, power-on boot, and entering download mode.

    ESP32-S313.3V External PowerUSB Cable
    3V3VDD
    GNDGNDGND
    ENVDD
    GPIO61 (Pulled low, default is weak pull-up)GND
    GPIO60 (Can be pulled high or left floating, default is weak pull-up)VDD
    USB_DMUSB_D- (White)
    USB_DPUSB_D+ (Green)

    When using the USB_SERIAL_JTAG pins to download firmware, the following wiring conditions must be met to satisfy the hardware requirements for chip power supply, power-on boot, and entering download mode.

    ESP32-S313.3V External PowerUSB Cable
    3V3VDD
    GNDGNDGND
    ENVDD
    GPIO61 (Pulled low, default is weak pull-up)GND
    GPIO60 (Can be pulled high or left floating, default is weak pull-up)VDD
    GPIO13USB_D- (White)
    GPIO14USB_D+ (Green)
  • When using an ESP32-S31 development board, connect a USB Type-C cable to the USB-UART port to flash firmware. If you flash over USB for the first time, hold the Boot button and power on the board to enter download mode manually.

Boot Log

After power-on, use a serial terminal on UART0 to check whether the chip entered download mode. If it did, UART0 prints:

ESP-ROM:esp32s31-20251218
Build:Dec 18 2025
rst:0x1 (POWERON),boot:0x69 (DOWNLOAD(USB/UART0/SPI))
waiting for download

s31-boot-log

[!NOTE]

  • If no log appears after power-on, toggle CHIP_PU (EN) low and then high to trigger a reset.
  • You can also read Strapping pin levels from the boot log. See ESP32-S31 Boot Log.

On the host side, Espressif provides the Flash Download Tool for writing firmware (.bin) to flash. See the Flash Download Tool User Guide.

flash-download-tool

After flashing, pull GPIO61 high (the default state) and reset the chip by toggling CHIP_PU (EN) to boot from flash. Use a serial monitor on UART0 to verify that the application is running.