yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
ESP32 Core Board📖
1. ESP32 Introduction
  • 1. ESP32S3 Overview
  • 2. Environment Setup Introduction
  • 3. Dev Board Introduction
2. ESP-IDF Development Tutorial
1. Before Development
  • 1. Environment Setup (Windows)
  • 2. Environment Setup (Linux)
  • 3. Build and Flash
2. Basic Peripherals
  • 1. LED Control
  • 2. Button Detection
  • 3. Peripheral Interrupts
  • 4. ESP_TIMER
  • 5. GPTIMER
  • 6. Watchdog Timer
  • 7. DMA
  • 8. ADC
  • 9. PWM Breathing LED
  • 10. RGB LED Effects
3. Serial Communication and Storage System
  • 1. Serial UART Communication Experiment
  • 2. I2C_OLED Display Experiment
  • 3. SPI Bus Communication Experiment
  • 4. PSRAM External Memory Experiment
  • 5. Flash Read and Write Experiment
  • 6. USB Emulated Mass Storage Experiment
4. FreeRTOS operating system
  • 1.FreeRTOS Core Concepts Theory
  • 2.Task Creation and Management
  • 3.Queue
  • 4.Binary Semaphore
  • 5.Mutex
  • 6.Event Groups
  • 7.Software Timer
  • 8.Task Scheduler
  • 9.Low Power Mode
  • 10.Deadlock
  • 11.Priority Inversion
5. Network Protocols and Wireless Communication
  • 1. WIFI Network Basics
  • 2. WIFI STA Mode
  • 3. WIFI AP Mode
  • 4. UDP Client Experiment
  • 5. UDP Server Experiment
  • 6. TCP Client Experiment
  • 7. TCP Server Experiment
  • 8. Socket Programming Basics
  • 9. HTTP Client Experiment
  • 10. HTTP Server Experiment
  • 11. MQTT IoT Communication Protocol
  • 12. WIFI OTA Upgrade
  • 13. Bluetooth Fundamentals
  • 14. Bluetooth Slave Mode
  • 15. Bluetooth Master Mode
6. Audio Applications
  • 1.I2S Microphone Recording and U-Disk Playback
  • 2.I2S Audio Playback Experiment
  • 3.Repeater Experiment
7. Xiaozhi AI Voice
  • 1. Burn Xiaozhi Firmware
  • 2. Network and Configuration
  • 3. AI Agent Settings
  • 4. Program Analysis
  • 5. Free Chat
3. Arduino Development Course
1. Before Development
  • 1. Environment Setup
  • 2. Build and Flash
2. Basic Peripherals
  • 1. LED Control
  • 2. Button Detection
  • 3. Peripheral Interrupts
  • 4. ESP_TIMER
  • 5. GPTIMER
  • 6. Watchdog Timer
  • 7. ADC
  • 8. PWM Breathing LED
  • 9. RGB LED Effects
3. Serial Communication and Storage System
  • 1. Serial UART Communication
  • 2. I2C OLED Display
  • 3. SPI Bus Communication
  • 4. Flash Read and Write
  • 5. USB Emulated Mass Storage
4. Network Protocols and Wireless Communication
  • 1. WIFI Network Basics
  • 2. WIFI STA Mode
  • 3. WIFI AP Mode
  • 4. UDP Server Experiment
  • 5. UDP Client Experiment
  • 6. TCP Client Experiment
  • 7. TCP Server Experiment
  • 8. HTTP Client Experiment
  • 9. HTTP Server Experiment
  • 10. MQTT IoT Communication Protocol
  • 11. WIFI OTA Upgrade
  • 12. Bluetooth Fundamentals
  • 13. Bluetooth Slave Mode
  • 14. Bluetooth Master Mode
5. Audio Applications
  • 1.I2S Microphone Recording and U-Disk Playback
  • 2.I2S Audio Playback Experiment
  • 3.Repeater Experiment
4. MicroPython Development Course
1. Before Development
  • 1. Environment Setup
  • 2. Build and Flash
  • 3. Thonny IDE
2. Basic Peripherals
  • 1. LED Control
  • 2. Button Detection
  • 3. Peripheral Interrupts
  • 4. TIMER_IT
  • 5. Watchdog Timer
  • 6. ADC
  • 7. PWM Breathing LED
  • 8. RGB LED Effects
3. Serial Communication and Storage System
  • 1. Serial UART Communication Experiment
  • 2. I2C_OLED Display Experiment
  • 3. SPI Bus Communication Experiment
  • 4. Flash Read and Write Experiment
  • 5. Print Storage
4. Network Protocols and Wireless Communication
  • 1. WIFI Network Basics
  • 2. WIFI STA Mode
  • 3. WIFI AP Mode
  • 4. UDP Client Experiment
  • 5. UDP Server Experiment
  • 6. TCP Client Experiment
  • 7. TCP Server Experiment
  • 8. HTTP Client Experiment
  • 9. HTTP Server Experiment
  • 10. MQTT
  • 11. Bluetooth Fundamentals
  • 12. Bluetooth Slave Mode
  • 13. Bluetooth Master Mode
5. Audio Applications
  • 1. I2S Audio Playback Experiment
  • 2. Repeater Experiment
Download
  • Code
  • Hardware_Info
  • 3D_Model_File
  • Software_Tools
  • VMware
  • VM_File
Download ZIP

Welcome to ESP32 Core Board repository

3. Build and Flash

ESP-IDF Build & Flash


ESP-IDF Build & Flash1. Overview2. Prerequisites3. VSCode GUI Build & Flash3.1 Bottom Toolbar3.2 Operation StepsStep 1: Select Target ChipStep 2: Select Serial PortStep 3: BuildStep 4: FlashStep 5: Serial MonitorKeyboard Shortcuts Summary4. Command Line Build & Flash4.1 Launch ESP-IDF Terminal4.2 Common CommandsSet Target ChipBuildFlashSerial MonitorOne-Click OperationClean Build OutputsView Project Configuration5. Flash Download Tool5.1 Installation5.2 Operation StepsStep 1: Launch ToolStep 2: Configure Flash FilesStep 3: Configure Flash ParametersStep 4: Connect & FlashStep 5: Manually Enter Download Mode5.3 Merged Firmware Flashing6. Flash File Description7. Troubleshooting


1. Overview

An ESP-IDF project goes through two steps from source code to running on a development board: Build and Flash. This article covers three operation methods:

MethodUse Case
VSCode GUIDaily development, one-click build/flash/monitor
Command Line idf.pyCI/CD, scripting, remote terminal
Flash Download ToolFlashing only pre-compiled .bin firmware, no source environment required

2. Prerequisites

  • ESP-IDF environment is installed (refer to Environment Setup (Windows))

  • USB data cable connected to ESP32-S3 development board

  • Device Manager recognizes the serial port (e.g., COM3)

  • Drivers installed (CP210x / CH340 / CH343 / FT232)


3. VSCode GUI Build & Flash

3.1 Bottom Toolbar

After installing the ESP-IDF extension in VSCode, the bottom status bar will show ESP-IDF toolbar icons:

IconFunctionDescription
芯片配置Target ChipDisplays current chip model (e.g., esp32s3)
串口选择Serial PortSelect the development board's COM port
BuildBuildBuild the current project
FlashFlashFlash compiled output to the development board
串口MonitorOpen serial monitor to view log output
一键编译烧录串口One-Click OperationExecute sequentially: Build → Flash → Monitor

3.2 Operation Steps

Step 1: Select Target Chip

Click the chip芯片配置 selection area on the bottom status bar → Select esp32s3.

ESP-IDF will regenerate sdkconfig to adapt to ESP32-S3.

Step 2: Select Serial Port

Click the serial port area串口选择 on the bottom status bar → Select the development board's corresponding COM port.

The bottom status bar should display:

[ESP-IDF]  esp32s3  |  COM3  |  ...

Step 3: Build

Click the Build Build icon (or press Ctrl + E, B).

  • Initial build: approximately 2~5 minutes (all components need to be compiled)

  • Incremental build: only a few seconds (only modified files are recompiled)

The end of the output should display:

xxxxxxxxxx
Project build complete.

Build outputs are located in the build/ folder under the project directory:

FileDescription
bootloader/bootloader.binSecondary bootloader
partition_table/partition-table.binPartition table
*.binApplication firmware
flash_argsFlash parameter file

Step 4: Flash

Click the Flash Flash icon (or press Ctrl + E, F).

The flashing process automatically performs the following:

  1. Put the chip into download mode

  2. Write bootloader.bin → partition-table.bin → app.bin sequentially according to the partition table

  3. After flashing completes, the chip automatically resets and the program starts running

Step 5: Serial Monitor

Click the 串口 Monitor icon (or press Ctrl + E, M).

The OUTPUT panel will display the chip's serial logs. Press Ctrl + ] to exit monitoring.

Keyboard Shortcuts Summary

ShortcutFunction
Ctrl + E, BBuild
Ctrl + E, FFlash
Ctrl + E, MMonitor
Ctrl + E, XOne-click: Build + Flash + Monitor

4. Command Line Build & Flash

4.1 Launch ESP-IDF Terminal

ESP-IDF commands must be run in the EIM Terminal (with ESP-IDF environment variables loaded). F1 → ESP-IDF: Open ESP-IDF Terminal

4.2 Common Commands

Set Target Chip

xxxxxxxxxx
idf.py set-target esp32s3

Only execute when first setting up or switching chip models. This will regenerate sdkconfig.

Build

xxxxxxxxxx
idf.py build

Flash

xxxxxxxxxx
idf.py flash

Specify serial port and baud rate:

xxxxxxxxxx
idf.py -p COM3 -b 115200 flash
ParameterDescription
-p COMxSpecify serial port number
-b 115200Specify flash baud rate

Serial Monitor

xxxxxxxxxx
idf.py monitor

Exit monitor: Ctrl + ]

One-Click Operation

xxxxxxxxxx
idf.py build flash monitor

Clean Build Outputs

xxxxxxxxxx
idf.py fullclean     # Full clean (everything except sdkconfig)
idf.py clean         # Clean build directory only

View Project Configuration

xxxxxxxxxx
idf.py menuconfig

5. Flash Download Tool

The ESP Flash Download Tool (Windows GUI tool) is suitable for flashing pre-compiled .bin firmware without installing the ESP-IDF environment.

5.1 Installation

Simply extract 6.软件工具->固件烧录工具->flash_download_tool.zip, no installation required. After extraction, double-click flash_download_tool_x.x.x.exe to use it.

5.2 Operation Steps

Step 1: Launch Tool

Double-click flash_download_tool_x.x.x.exe → Select chip model ESP32-S3 → Confirm.

Step 2: Configure Flash Files

In the flashing interface, add firmware files and fill in the corresponding flash addresses:

FileAddressDescription
bootloader.bin0x0Secondary bootloader
partition-table.bin0x8000Partition table
ota_data_initial.bin0xd000OTA state partition initialization firmware
AUDIO_PLAYER.bin0x10000Main application firmware

File paths cannot contain Chinese characters or spaces, otherwise the tool will fail to parse.

Check the checkbox before each file to activate that flash item.

Step 3: Configure Flash Parameters

ParameterRecommended ValueDescription
SPI SPEED80MHzSPI Flash clock frequency
SPI MODEQIOFlash communication mode (Quad I/O)
FLASH SIZE16Mbit (N16R8)Select according to actual Flash capacity
BAUD1152000Flash baud rate

Step 4: Connect & Flash

  1. Select the development board's corresponding COM Port

  1. Set baud rate to 1152000

  2. Click START to begin flashing

  3. When the progress bar is full and shows FINISH, it's complete

Step 5: Manually Enter Download Mode

If the tool keeps displaying Waiting for chip to power up, you need to manually put the chip into download mode:

  1. Hold the BOOT button

  2. Press the RST button once (reset)

  3. Release the BOOT button

Some development boards (ESP32-S3-N16R8) require this operation, especially after running other firmware.

5.3 Merged Firmware Flashing

Click the Merge button on the tool interface: The merge configuration dialog will appear:

You can rename the merged file (e.g., record and playback.bin):

After merging is complete, set the generated .bin file address to 0x0, check it, and flash.


6. Flash File Description

A complete flash typically contains the following files:

xxxxxxxxxx
build/
├── bootloader/
│   └── bootloader.bin         # Address 0x0     — Secondary bootloader
├── partition_table/
│   └── partition-table.bin    # Address 0x8000  — Partition table
├── hello_world.bin            # Address 0x10000 — Application firmware
├── flash_args                 # Flash parameters (used by esptool)
└── hello_world.elf            # ELF file (contains debug info, not flashed)

7. Troubleshooting

PhenomenonCauseSolution
Timed out waiting for packet headerChip not in download modeManual: Hold BOOT → Press RST → Release BOOT, then flash again
Invalid head of packetBaud rate too high or driver issueLower baud rate: idf.py -b 115200 flash
A fatal error occurred: Could not open COMxCOM port occupiedClose serial assistant / other VSCode Monitor sessions
No serial port in Device ManagerUSB driver missingInstall CH340 / CP2102 driver
Program doesn't run after flashingChip not resetPress RST button to manually reset; or auto-reset failed after flashing
FLASH SIZE selected incorrectlyFirmware partition doesn't match hardwareFor N16R8 model, select 16Mbit Flash
Flash Download Tool file path errorPath contains Chinese/spacesMove .bin files to an English path (e.g., D:\firmware\)
Build succeeded but flashing failedSerial port not selected or conflictCheck if VSCode bottom status bar COM port is correct
idf.py: command not foundNot running in EIM terminalUse F1 → ESP-IDF: Open ESP-IDF Terminal

Environment Setup (Linux)
LED Control

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文