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

1. Environment Setup

Environment Setup — Arduino IDE + ESP32-S3


Environment Setup — Arduino IDE + ESP32-S31. Overview2. Prerequisites2.1 Hardware Requirements2.2 Downloads Required3. Install CH340 Driver3.1 Check if Driver is Already Installed3.2 Download Driver3.3 Installation Steps3.4 Verification4. Install Arduino IDE5. Install ESP32 Board Package5.1 Add ESP32 Board Manager URL5.2 Install ESP32 Platform via Boards Manager5.3 Select Development Board6. Open Example and Create First Project6.1 Open Blink Example6.2 Create a New Project6.3 Arduino Project File Structure7. Compile, Flash and Monitor7.1 Connect Hardware7.2 Select Board and Port7.3 Compile7.4 Flash7.5 Serial Monitor8. Install Common Libraries8.1 Install via Library Manager9. FAQ


1. Overview

Arduino IDE is an open-source integrated development environment with concise syntax and rich library ecosystem, suitable for rapid prototyping and educational demonstrations.

This tutorial sets up the ESP32-S3 Arduino development environment on Windows, in three steps:

  1. Install Arduino IDE — Download and install Arduino IDE 2.x

  2. Install ESP32 Board Package — Add Espressif's official ESP32 platform support via Boards Manager

  3. Install Driver and Verify — Connect the development board, compile and upload the first program

Arduino IDE 2.x is based on VSCode kernel (Code-OSS), with interface and operation highly similar to VSCode. Espressif officially provides the arduino-esp32 package, supporting all ESP32 series chips (including ESP32-S3).


2. Prerequisites

2.1 Hardware Requirements

ItemRequirement
Operating SystemWindows 10 / 11 (64-bit)
Disk Space≥ 2 GB (Arduino IDE + ESP32 platform ~500 MB + project files)
Memory≥ 8 GB
USB PortAt least 1 USB-A / USB-C (for connecting the development board)
NetworkNeed access to GitHub (to download ESP32 platform and toolchain)

2.2 Downloads Required

FileDescriptionDownload Address
Arduino IDE InstallerArduino IDE 2.x (skip if already installed)6. Software Tools -> Arduino IDE

No manual download needed for ESP32 platform — all handled online by Arduino IDE's Boards Manager and auto-installed.


3. Install CH340 Driver

ESP32-S3 development boards communicate with the computer via USB-to-serial chip. Most boards use CH340 series chips, which Windows doesn't include by default. Manual installation is required.

3.1 Check if Driver is Already Installed

  1. Connect the development board's COM port to the computer with a USB cable

  2. Right-click Start Menu -> Device Manager -> Expand Ports (COM & LPT)

  3. Check the list:

ObservationStatusAction
COMx appears (no exclamation mark)Driver readySkip this section
Yellow exclamation mark deviceDriver missingContinue installation
No new deviceUSB cable / port issueReplace cable or USB port

3.2 Download Driver

WCH Official Download Page -> Download latest CH340SER.EXE (compatible with CH340 series).

You can also search "WCH CH340 driver" to find the official website. The development board in this tutorial uses CH340K, installer is about 300KB.

3.3 Installation Steps

  1. Double-click CH341SER.EXE

  2. Click INSTALL

  3. After installation completes, you should see "Driver install success!"

  4. Replug the development board's USB cable

3.4 Verification

Go to Device Manager -> Ports (COM & LPT), you should see:

USB-SERIAL CH340 (COM3)

Note down the port number (e.g., COM3), needed later for compilation and flashing.


4. Install Arduino IDE

If Arduino IDE 2.x is already installed, skip to Chapter 5.

  1. Double-click Arduino IDE installer (e.g., arduino-ide_2.x.x_Windows_64bit.exe)

    Download Installer Icon

  2. Read license agreement, click I Agree.

    Arduino IDE Installation 1

  3. Select installation options (Administrator recommended), click Next.

    Arduino IDE Installation 2

  4. Select installation path (keep default recommended), click Install.

    Arduino IDE Installation 3

  5. Wait for installation to complete, click Finish.

    Arduino IDE Installation 4

    Arduino IDE Installation 5

  6. First launch Arduino IDE, interface as follows:

    Arduino Interface

Arduino IDE main interface consists of five areas:

NumberAreaDescription
①Menu BarTop horizontal menu bar. File for new/open/save projects and examples; Edit provides copy/paste/comment operations; Sketch for importing libraries and managing code files; Tools centralizes board selection, port, serial monitor and preferences configuration.
②ToolbarRow of quick icon buttons below menu bar, left to right: Verify (Compile Icon Compile, checkmark ✓) only compiles without uploading; Upload (Upload Icon Upload, → icon) compiles and flashes to board; Debug (Debug Icon Debug) starts debugger; Board selection dropdown selects target chip model; Port selection dropdown Board Selection Dropdown selects corresponding COM port; Serial Monitor (Serial Monitor Serial Monitor) opens serial send/receive panel; Serial Plotter (Serial Plotter Serial Plotter) plots serial values in real-time waveforms.
③EditorCentral code editor area (VS Code kernel). Supports C/C++ syntax highlighting, auto-completion, code folding, multi-tab pagination (open multiple .ino files simultaneously). Each project has at least one .ino file with the same name, containing setup() (initialization) and loop() (main loop) two core functions.
④Status BarBottom banner, left to right displays: Line/column number, Language mode (C++), Current board model (e.g., ESP32S3 Dev Module), Current port (e.g., COM3). During compilation and upload, the bottom will pop up Output panel showing real-time compilation progress, error messages, upload results and Flash usage.
⑤SidebarLeftmost vertical icon bar. Project BrowserFolder icon opens Project Browser (Sketchbook); SearchMagnifying glass icon opens Boards Manager Boards Manager to install chip platform packages; Library Manager Book icon opens Library Manager to install third-party libraries Debugger debugger.

Arduino IDE 2.x will prompt to install related drivers on first launch, select "Yes" and allow installation.


5. Install ESP32 Board Package

Arduino IDE supports AVR series (Arduino Uno / Nano, etc.) by default. To use ESP32-S3, you need to add Espressif's official board package.

5.1 Add ESP32 Board Manager URL

  1. Open Arduino IDE

  2. Click menu bar File -> Preferences (or press Ctrl + ,)

    Arduino_IDE Preferences

  3. Click the icon on the right side of Additional Boards Manager URLs Right Side Icon, add the following URL:

    xxxxxxxxxx
    https://espressif.github.io/arduino-esp32/package_esp32_index.json
  4. Click OK to save.

5.2 Install ESP32 Platform via Boards Manager

  1. Click the Boards ManagerBoards Manager icon on left toolbar (or Ctrl + Shift + B)

  2. Search "ESP32"

  3. Select "esp32 by Espressif Systems", click Install

  4. Install ESP32 Platform

  5. Wait for download and installation to complete (first installation takes about 5~15 minutes, depending on network speed).

    Installation includes: ESP32 toolchain (GCC for Xtensa/RISC-V), esptool flashing tool, arduino-esp32 core library (Wi-Fi / BLE / GPIO / I2S, etc.).

  6. After installation completes, Boards Manager should show INSTALLED.

Local Import:

Usually used for downloading library files or importing custom library files. Here we use the provided libraries folder as an example.

  1. In Arduino IDE interface, select "Sketch -> Import Library -> Add .ZIP Library".

    Local Library Download 1

  2. Locate the libarales folder in the same path as the installation package, and add the corresponding compressed file for each library into it. The steps are the same for all folders.

    Library Archive

  3. Wait for installation to complete.

    image-20260806164053061

5.3 Select Development Board

  1. Click the board selection dropdown on top toolbar

    Board Selection Dropdown

  2. Search "ESP32S3 Dev Module" and select

    Board and Port Configuration

    ESP32-S3 Dev Module is a generic configuration suitable for most ESP32-S3 development boards.

  3. After selection, top status bar should display:

    xxxxxxxxxx
    ESP32S3 Dev Module  |  COM6

6. Open Example and Create First Project

6.1 Open Blink Example

  1. Click menu bar File -> Examples -> ESP32 -> GPIO -> Blink

    Open BlinkRGB Example

  2. Arduino IDE will open the Blink example. Core code as follows:

    ​x
    #define LED_BUILTIN 48  // ESP32-S3 on-board LED pin
    
    
    #include <Arduino.h>
    
    
    void setup() {
      // No need to initialize the RGB LED
    }
    
    
    // the loop function runs over and over again forever
    void loop() {
    #ifdef RGB_BUILTIN
      digitalWrite(RGB_BUILTIN, HIGH);  // Turn the RGB LED white
      delay(1000);
      digitalWrite(RGB_BUILTIN, LOW);  // Turn the RGB LED off
      delay(1000);
    
    
      rgbLedWrite(RGB_BUILTIN, RGB_BRIGHTNESS, 0, 0);  // Red
      delay(1000);
      rgbLedWrite(RGB_BUILTIN, 0, RGB_BRIGHTNESS, 0);  // Green
      delay(1000);
      rgbLedWrite(RGB_BUILTIN, 0, 0, RGB_BRIGHTNESS);  // Blue
      delay(1000);
      rgbLedWrite(RGB_BUILTIN, 0, 0, 0);  // Off / black
      delay(1000);
    #endif
    }

6.2 Create a New Project

  1. Click menu bar File -> New Sketch

    New Project

  2. Arduino IDE will create a .ino file in the default working directory (Documents\Arduino).

  3. Ctrl + S to save, name the project (e.g., hello_esp32s3).

6.3 Arduino Project File Structure

xxxxxxxxxx
hello_esp32s3/
└── hello_esp32s3.ino          # Main program file (setup + loop)
  • .ino file — Each Arduino project has at least one .ino file with the same name, containing setup() (initialization) and loop() (main loop) two core functions.

  • setup() — Runs once after power-on, used to initialize pins, serial, peripherals, etc.

  • loop() — Runs infinitely after setup(), equivalent to while(1) inside a FreeRTOS task.

Arduino framework is based on FreeRTOS underneath: loop() runs in loopTask (priority 1), Wi-Fi / BLE protocol stacks run in higher priority tasks.


7. Compile, Flash and Monitor

7.1 Connect Hardware

  1. Connect ESP32-S3 development board COM port to computer with USB cable

  2. Open Device Manager -> Expand Ports (COM & LPT)

  3. Confirm new serial port appears (e.g., COM6), remember the port number

    Common USB-to-Serial ChipsDriver Source
    CP2102 / CP2104Silicon Labs CP210x Driver
    CH340 / CH343WCH Official Driver
    CH9102WCH Official Driver
    FT232FTDI Driver

    If yellow exclamation mark appears, install corresponding driver.

7.2 Select Board and Port

Confirm on top toolbar:

xxxxxxxxxx
ESP32S3 Dev Module  |  COM6
  • Board selection: Dropdown search ESP32S3 Dev Module

  • Port selection: Select corresponding COM port

7.3 Compile

Click the Compile IconVerify (compile) icon on top toolbar (checkmark ✓), or press Ctrl + R.

First compilation takes about 1~3 minutes, incremental compilation only a few seconds. Bottom Output panel should show:

xxxxxxxxxx
Sketch uses xxx bytes (x%) of program storage space. Maximum is 3145728 bytes.
Global variables use xxx bytes (x%) of dynamic memory, leaving xxx bytes for local variables.

7.4 Flash

Click the Upload IconUpload (upload) icon on top toolbar (→), or press Ctrl + U.

Auto-compiles before flashing. After flashing completes, chip auto-resets and new program starts running.

Some ESP32-S3 development boards require manual entry to download mode for flashing: Hold BOOT button -> Press RST button -> Release BOOT.

7.5 Serial Monitor

Click the Serial MonitorSerial Monitor icon on top toolbar, or press Ctrl + Shift + M.

Set baud rate to 115200 in monitor panel to see serial log output from the chip.


8. Install Common Libraries

ESP32 core package already includes GPIO, Wi-Fi, BLE, SPI, I2C and other basic libraries. Install the following as needed for experiments:

8.1 Install via Library Manager

  1. Click the Library ManagerLibrary Manager icon on left toolbar

  2. Search library name, click Install

Library NamePurposeSubsequent Experiments
Adafruit SSD1306OLED display driver (I2C)I2C OLED display experiment
Adafruit GFX LibraryGraphics library base (SSD1306 dependency)I2C OLED display experiment
Adafruit NeoPixelWS2812 RGB LED driverRGB LED Effects
SD (by Arduino, SparkFun)SD card read/writeFlash/SD read/write experiment
ArduinoJsonJSON encode/decodeMQTT / HTTP experiment
PubSubClientMQTT clientMQTT IoT experiment

Simply search library name, select and install. Dependent libraries will be auto-installed.


9. FAQ

PhenomenonCauseSolution
ESP32 not found in Boards Manager searchESP32 JSON URL not addedCheck Preferences -> Additional Boards Manager URLs has package_esp32_index.json added
ESP32 platform installation failedGitHub network unstable / DNS issueRetry several times; or use proxy / change DNS
Compilation error "missing toolchain"ESP32 platform package incompleteUninstall ESP32 package and reinstall
Upload failed "Timed out waiting for packet header"Chip not in download modeHold BOOT -> Press RST -> Release BOOT
Upload failed "No serial data received"Serial port occupied / wrong portClose other serial tools, confirm correct COM port
No serial port in Device ManagerUSB driver missingInstall CH340 / CP2102 driver
Serial Monitor shows garbled textBaud rate mismatchConfirm monitor baud rate matches Serial.begin()
Arduino IDE doesn't detect COM portUSB cable only powers, no data transferReplace cable (ensure supports data and charging)
Upload failed "Wrong chip"Wrong board model selectedConfirm ESP32S3 Dev Module selected, not ESP32 Dev Module
Slow compilation / first upload slowFirst-time full compilationNormal - incremental compilation only a few seconds

Free Chat
Build and Flash

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/中文