Arduino Nano ESP32 (ESP32‑S3) — Enter Boot / Flash Mode

This page explains how to enter both the Arduino UF2 bootloader (double-tap RESET) and the Espressif serial bootloader (hold BOOT, tap RESET) on the Nano ESP32 (ESP32‑S3). Use the method that matches your toolchain (Arduino IDE vs. esptool/CLI).

Board: Nano ESP32
Chip: ESP32‑S3
Bootloaders: UF2 + Serial

Understanding Boot Modes

Boot mode puts the ESP32‑S3 into a state where a host computer can upload firmware. The Nano ESP32 supports:

  • Arduino UF2 bootloader: Double‑tap RESET. The board appears as a USB drive. Great for Arduino IDE and drag‑and‑drop updates.
  • Espressif serial bootloader: Hold BOOT (GPIO0) then tap RESET. Used by esptool.py, Arduino CLI’s upload, PlatformIO, etc.
Tip: Many IDEs/CLIs automatically toggle the ESP32‑S3 into boot mode via USB (CDC 1200‑bps “touch”). If uploads fail, use the manual button sequence below.

Methods to Enter Boot Mode

Method A — Arduino UF2 Bootloader (Double‑Tap RESET)

  1. Connect the Nano ESP32 to your PC with a good USB‑C cable (data‑capable, not power‑only).
  2. Double‑tap the RESET button quickly (two presses within ~0.5 seconds).
  3. The board’s status LED will change pattern. Your computer should mount a new USB mass‑storage drive (name may include NANOESP32 or similar).
  4. Upload via Arduino IDE or drag‑and‑drop a compatible UF2 file onto the drive.

Expected: A new drive appears; uploads succeed. If not, try another USB port/cable or Method B.

Method B — Espressif Serial Bootloader (Hold BOOT, Tap RESET)

  1. Keep the board connected via USB.
  2. Press and hold the BOOT button (this ties GPIO0 low).
  3. While holding BOOT, press and release RESET.
  4. Release BOOT after one second.
  5. The chip is now in download (flash) mode. Start your upload (Arduino IDE/CLI, PlatformIO, or esptool.py).

Expected: The COM/tty port enumerates for flashing; the tool connects and uploads the firmware.

Method C — Automatic Boot Mode via IDE/CLI

Most tooling toggles boot mode automatically. Try:

arduino-cli board list
arduino-cli compile --fqbn arduino:esp32:nano_esp32 path/to/sketch
arduino-cli upload   --fqbn arduino:esp32:nano_esp32 -p  path/to/sketch

If auto‑reset fails, repeat the command immediately after performing Method B.

Troubleshooting

  • No USB drive after double‑tap RESET: Use a different USB cable/port; try Method B; ensure board support is installed in Arduino IDE.
  • Upload times out: Press BOOT + tap RESET (Method B) and retry the upload quickly.
  • Wrong port: On Windows, check Device Manager; on macOS/Linux, check /dev/tty*. Replug the board to refresh ports.
  • Power issues: Avoid long/poor cables and unpowered hubs; ensure stable 5V from USB.
  • Driver conflicts: Close other serial monitors; only one program can hold the port at a time.

Quick Reference (Button Sequences)

  • UF2 (Arduino): RESET double‑tap ⟶ mass‑storage drive appears.
  • Serial (Espressif): Hold BOOT ⟶ tap RESET ⟶ release BOOT ⟶ flash via tool.

Example: esptool.py Manual Flash

Replace the port and binary paths as needed:

python -m esptool --chip esp32s3 -p COM7 -b 921600 \
  erase_flash

python -m esptool --chip esp32s3 -p COM7 -b 921600 \
  write_flash -z 0x0 firmware.bin

Enter serial bootloader first using Method B, then run the commands.

Safety: Erasing or flashing will remove your current sketch. Keep backups of your firmware and note partition layouts.

 

By Alex

An Electrical Engineer with a vision rooted in simplicity and purpose: to make the world a better place. Guided by a strong sense of responsibility and innovation, He combines technical expertise with a passion for creating sustainable solutions that improve lives and communities. With a background in electrical systems design, power distribution, and emerging technologies, he has contributed to projects that emphasize efficiency, reliability, and environmental stewardship. His approach to engineering goes beyond technical excellence—he believes in leveraging technology to solve real-world problems and inspire progress. his philosophy is simple yet profound: meaningful change begins with clear goals and consistent action. Whether working on complex electrical infrastructure or exploring renewable energy solutions, he remains committed to advancing technology in ways that serve humanity and protect the planet. Outside of his professional work, He advocates for continuous learning and collaboration, fostering innovation through teamwork and knowledge sharing. His ultimate dream is to leave a legacy of positive impact—one project, one idea, and one connection at a time.

Leave a Reply

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