DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
FREEDOM251

Freedom251 › Blog › DFU

How to Flash Firmware to an ESP32-S3 Over USB—and Recover From a Failed Flash

By Freedom251 Team · · 5 min read

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For most ESP32-S3 projects, flash from the project’s ESP-IDF environment with idf.py -p PORT flash, replacing PORT with the board’s actual serial port. If the board does not enter download mode automatically, hold BOOT, press RESET once, then release BOOT. First identify which USB interface your board exposes: native USB Serial/JTAG, a USB-to-UART bridge, or USB-OTG DFU. The connector and recovery options depend on the board and its security configuration.

Identify which USB interface your ESP32-S3 uses

“USB flashing” can refer to different hardware paths. A board may route its connector to the ESP32-S3’s native USB Serial/JTAG interface, to a separate USB-to-UART bridge, or to USB-OTG for DFU. The chip name alone does not tell you which connector to use or whether DFU is available; check the board documentation or markings before following pin-level advice.

As an Amazon Associate I earn from qualifying purchases.

Espressif documents flashing over the ESP32-S3’s internal USB connection without an external USB-to-UART bridge. That connection uses GPIO20 for D+ and GPIO19 for D−. A board must route those pins appropriately and expose the interface at its connector for this path to apply. See Espressif’s ESP32-S3 serial connection guide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Native USB Serial/JTAG and USB-OTG DFU are not interchangeable. The default internal PHY assignment is for USB Serial/JTAG, so that configuration does not provide DFU through the same internal PHY. DFU setup is described separately below.

#1 Best Overall
DIYmall 2PCS Micro-USB Cable Fast Charging Cords Data Transfer Cable 30cm for Android-Phone Micro-USB Port ESP32 ESP-32 Project
  • Used for various Micro-USB port devices, data transfer and charge
  • Interface: Micro-USB to USB 2.0
  • Cable Length: 30cm/11.8"
  • Color:Blue
  • What you will get: 2 X Micro-USB Cable

How do I flash firmware to an ESP32-S3 over USB?

Use the ESP-IDF project’s flash command

  1. Open a terminal where the ESP-IDF environment and the project’s configured toolchain are available, then change to the project directory.

  2. Connect the board using a data-capable USB cable and the connector intended for programming. Identify the port assigned to the board by your operating system.

  3. Run idf.py -p PORT flash, replacing PORT with that actual port. The command builds and flashes as needed; you do not have to run idf.py build first when using this command. The exact options and port naming can vary by operating system and project configuration. See the ESP-IDF idf.py command reference.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For the correct binary paths and flash offsets, use the command generated for your project after building rather than copying a line from a different board or tutorial. An example ESP32-S3 image layout may place the bootloader at 0x0, the partition table at 0x8000, and the application at 0x10000; those addresses are examples, not universal settings. The project’s build configuration determines what should be written and where. The esptool firmware-flashing guide explains the generated command and image arguments.

Rank #2
USB Type C Cable for Arduino Uno R4 USB A to Type C Data Transfer Cable 30 cm 11.8 inches, 2 Pieces
  • 2 pieces of USB Type-C Cable for Arduino Uno R4
  • Uses to power and uploading code to Arduino Uno R4 WiFi and Minima
  • Also works with ESP32 boards that has USB Type-C interface
  • Can be used to exchange data between PC and any devices that supports USB Type C
  • USB Type C Data Sync Cable

If you use Arduino or PlatformIO

Use your framework’s upload action and inspect verbose upload output if you need to diagnose what it is doing. The output can show the esptool invocation, file paths, and offsets actually used by that build. Do not assume that an ESP-IDF project’s image layout applies to a different framework or configuration.

How do I put an ESP32-S3 into download mode?

If automatic reset and bootloader entry do not work, use the board’s BOOT and RESET buttons. Espressif’s ESP-IDF Programming Guide v6.1 says: “If you are flashing for the first time, you need to get the ESP32-S3 into the download mode manually. To do so, press and hold the BOOT button and then press the RESET button once. After that release the BOOT button.”

  1. Press and hold BOOT.

  2. Press and release RESET once while still holding BOOT.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  3. Release BOOT, then retry the flash command.

At the chip level, GPIO0 must be held low when the ESP32-S3 resets to enter the ROM serial bootloader. Some development boards handle this with their buttons and reset circuitry; custom boards may implement it differently. Consult the board’s documentation if its controls are not labeled this way. Espressif’s procedure is in Establish Serial Connection with ESP32-S3.

Rank #3
FORIOT ESP32 S3 N16R8 DevKitC-1 Development Board, 2PCS ESP32-S3 with Dual USB Type-C, WiFi Bluetooth 5.0 for Arduino,Antenna + IPEX Cable (2 Pack)
  • High-performance Dual-core Processor: Integrated Xtensa 32-bit LX7 dual-core processor, offering powerful computing power and performance with low power consumption
  • Upgraded Design with Complete Accessories: This board features enhanced connectivity with an external antenna base, pre-soldered headers for easy prototyping, and comes with 2 × antennas and 2 × IPEX conversion cables, providing a comprehensive solution out of the box
  • Wi/Fi & Bluetooth 5.0 Dual Mode Support: Supports 2.4GHz Wi-Fi 802.11 b/g/n and Bluetooth 5.0 (BLE). The Bluetooth Low Energy subsystem supports Bluetooth 5 (LE) and Bluetooth Mesh. Equipped with a low-power coprocessor and a high-power mode of up to 20 dBm, it can meet the requirements of a variety of application scenarios
  • Dual Type-C Interface & High-Speed Data Transfer: Features two Type-C ports — one dedicated COM port for direct plug-and-play use, and one OTG-capable port that can be accessed by holding the BOOT button during power-on to display the port and download programs. With data rates up to 150 Mbps, it ensures fast and stable connections for demanding projects
  • Large Storage Capacity & Comprehensive Wi-Fi Features: Integrates 8 MB RAM and 16 MB Flash, providing ample storage for complex application development. Supports WMM, A-MPDU, A-MSDU, instant block confirmation and other features to improve multitasking efficiency and network performance

ESP32-S3 not detected over USB

If the port or board does not appear, check the connection and interface before changing firmware or flash offsets:

  • Confirm that you selected the port belonging to the board, not another connected serial device.

  • Try a USB cable that carries data; a charge-only cable cannot provide the data connection needed for flashing.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Use the board’s intended programming connector. Boards can have multiple connectors or route USB differently.

    Rank #4
    BoxWave Cable Compatible with M5Stack Dial ESP32-S3 - DirectSync - USB 3.0 A to USB 3.1 Type C, USB C Charge and Sync Cable - 6ft - Black
    • 🏃 [HI-SPEED SUPPORT] BoxWave Cable Compatible With M5Stack Dial ESP32-S3. Supports Hi-Speed USB 3.1 DATA TRANSFERS! 💬 Includes limited 3rd party tech support for your device (up to 3 inquiries via messaging) - not affiliated with or endorsed by M5Stack ⭐ *** PLEASE NOTE, DIAL ESP32-S3 DEVICE NOT INCLUDED ***
    • 💰 [LOW COST] Why pay more? Get the DirectSync Cable for your device that functions just as well OR BETTER than your original cable for a fraction of the cost!
    • ✌ [DUAL-FUNCTION] The DirectSync cable SYNCS and CHARGES your device. The DirectSync's dual-function design makes traveling convenient!
    • 💪 [STABILITY AND STRENGTH] A SHIELDED cable provides PROTECTION to your cable to insure you get the most use and LONGEST LIFE out of your DirectSync. Features strong rubberized grommet strain reliefs to avoid kinks or splitting!
    • 📒 [SPECIFICATIONS] Generous 6-FOOT LENGTH so you don't have to awkwardly prop up your device JUST SO in order to get a charge!
  • Check whether the board uses native USB Serial/JTAG or a USB-to-UART bridge, and whether the appropriate host driver or permissions are in place.

  • Enter download mode manually with BOOT and RESET if automatic bootloader entry is failing.

A missing device can result from the cable, connector, board routing, driver, port selection, or boot mode. The chip model alone is not enough to identify which one applies.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

ESP32-S3 flash failed: diagnose the error

The port exists, but the board will not connect

Try the manual download-mode sequence, then rerun the project’s flash command. If connection still fails, verify that the selected port belongs to the correct board and that you are using the connector wired to the interface your flashing tool expects.

Best Value
Freenove ESP32 ESP32-S3 Development Board Kit (8 MB Flash)
  • ESP32-S3 development board: Dual-core 32-bit microprocessor up to 240 MHz, 8 MB flash, 8 MB PSRAM, onboard 2.4 GHz Wi-Fi and Bluetooth 5 (LE), USB-OTG, USB code uploader
  • Detailed tutorial: Can be downloaded (in English) or viewed online (original in English, can be translated into other languages by browsers) (The tutorial link can be found on the product box, no paper tutorial)
  • Example projects: Provides step-by-step guide and several typical projects, each project has complete code and detailed explanations
  • 2 sets of code: MicroPython and C. Python is one of the most popular languages, and C is one of the most classic languages
  • Easy to use: Just connect the board to your computer (installed IDE and driver) with the USB cable to program it

The binary or flash offset is wrong

Rebuild the project for ESP32-S3 and use its generated flash command and binaries. A command copied from another project may point to files for a different target or write images at offsets that do not match this build. Inspect the build output or verbose upload command to confirm the image paths and offsets.

Security settings may restrict USB recovery

Do not assume ROM USB flashing or DFU remains available on a device with security features enabled. Espressif documents that Secure Boot or flash encryption disables the ROM USB-OTG stack for serial emulation or DFU on that port, while Secure Download Mode disables DFU. Check the device’s security configuration and the relevant ESP32-S3 secure boot, flash encryption, and Secure Download Mode documentation before choosing a recovery route.

Can I recover an ESP32-S3 with DFU?

Yes, when the board and device configuration support USB-OTG DFU. It is a separate route from the routine serial flash command: ESP-IDF uses idf.py dfu to build a dfu.bin image and idf.py dfu-flash to send it with dfu-util. The ESP32-S3 must be in bootloader mode. Follow Espressif’s USB DFU guide for configuration and commands.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Before relying on DFU, verify that the board routes USB-OTG appropriately and that the internal PHY is available for it. By default, the internal PHY is assigned to USB Serial/JTAG, not DFU. Espressif documents changing the PHY selection with the USB_PHY_SEL eFuse; because an eFuse change is a permanent hardware configuration choice, do not make it casually or as a first troubleshooting step.

If dfu-util cannot find a capable device

Confirm that the ESP32-S3 is actually in bootloader mode and check that the host has the required DFU utility, operating-system driver, and permissions. On Linux, verify the applicable udev setup. A device that is merely connected over USB is not necessarily presenting itself as a DFU device.

If you see “Lost device after RESET?”

Espressif notes that Windows and macOS may encounter this message on the first attempt. The idf.py dfu-flash command retries once; if the problem persists, run the command again manually.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

DFUESP-IDFESP32-S3esptoolTroubleshootingUSB firmware flashing

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.