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
    GPIO33USB_D- (White)
    GPIO34USB_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.

[!NOTE] During chip power-up, GPIO60 and GPIO61 must not both be driven low (that is, GPIO60 = 0 and GPIO61 = 0). These pins state combination will cause the chip to exhibit unexpected behavior. Ensure that this combination is avoided in the hardware design.

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.