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

2. Environment Setup Introduction

Environment Setup Introduction


Environment Setup Introduction1. Overview of the Three Development Methods2. ESP-IDF + VSCode2.1 Introduction2.2 Toolchain Architecture2.3 Core Features2.4 Environment Setup Essentials3. Arduino + Arduino IDE3.1 Introduction3.2 Toolchain Architecture3.3 Core Features3.4 Environment Setup Essentials4. MicroPython + Thonny4.1 Introduction4.2 Toolchain Architecture4.3 Core Features4.4 Environment Setup Essentials5. How to Choose6. Development Environment Chapters in This Tutorial


1. Overview of the Three Development Methods

The ESP32-S3 supports multiple development methods. This tutorial covers the following three mainstream approaches:

Development environment diagram

 ESP-IDFArduinoMicroPython
IDEVSCode + ESP-IDF extensionArduino IDE 2.xThonny IDE
LanguageCC++Python 3
CompilationCompile → flash (requires full toolchain)Compile → flash (one click)No compilation, upload .py directly
Execution speedFastest (native machine code)Fast (near-native)Slower (interpreted)
Flash footprintApprox. 200 KB ~ several MBApprox. 300 KB ~ several MBFirmware approx. 1.5 MB
DebuggingJTAG hardware breakpoints + logsSerial logsREPL interaction + serial logs
Learning curveSteepGentleLowest
Suitable forCommercial products, performance-sensitiveRapid prototyping, Arduino ecosystemTeaching, scripting, quick verification

2. ESP-IDF + VSCode

2.1 Introduction

ESP-IDF (Espressif IoT Development Framework) is Espressif's official C language development framework, providing the most complete hardware abstraction layer (HAL), FreeRTOS kernel integration, peripheral driver libraries, Wi-Fi/BLE protocol stacks, and a rich set of application examples.

ESP-IDF is the first-class citizen development method for Espressif chips — all new features (USB OTG, AI vector instructions, LCD/Camera interfaces) are first supported by ESP-IDF.

2.2 Toolchain Architecture

┌────────────────────────────────────────────────┐
│        VSCode + ESP-IDF extension              │
│   Code editing, compilation, flashing,         │
│   monitoring, and debugging in one place       │
├────────────────────────────────────────────────┤
│              ESP-IDF framework                 │
│   ┌──────────┐ ┌──────────┐ ┌──────────────┐   │
│   │Driver    │ │Network   │ │FreeRTOS      │   │
│   │layer     │ │stack     │ │kernel        │   │
│   │gpio      │ │TCP/UDP   │ │tasks/queues/ │   │
│   │spi/i2c   │ │HTTP/MQTT │ │semaphores    │   │
│   │uart      │ │Wi-Fi/BLE │ │dual-core     │   │
│   │          │ │          │ │scheduling/   │   │
│   │          │ │          │ │interrupts    │   │
│   └──────────┘ └──────────┘ └──────────────┘   │
├────────────────────────────────────────────────┤
│    Xtensa GCC toolchain + OpenOCD + esptool    │
│    Compile                Debug        Flash   │
├────────────────────────────────────────────────┤
│               ESP32-S3 hardware                │
└────────────────────────────────────────────────┘

2.3 Core Features

FeatureDescription
Officially maintainedDeveloped by Espressif's full-time team, complete API documentation, hundreds of examples
Most complete hardware supportAll peripherals, all sleep modes, and all security features are first supported by ESP-IDF
Component managerDeclare dependencies in idf_component.yml; third-party libraries are downloaded automatically
menuconfigGraphical kernel configuration (task stack size, Wi-Fi parameters, Flash partitions, etc.)
Dual-core FreeRTOSMakes full use of the dual cores + low-power coprocessor
OTA upgradeBuilt-in OTA framework, supports HTTP / HTTPS remote upgrade

2.4 Environment Setup Essentials

  • Windows: Requires installing the ESP-IDF offline installer (approx. 2 GB), which includes Python / Git / GCC toolchain / VSCode extension

  • Linux: Can be installed manually or use a pre-configured VMware virtual machine image (Ubuntu 24.04 + ESP-IDF 6.0.2 / 5.5.5)

  • VSCode extension: Provides GUI entries for project templates, compilation, flashing, monitoring, and menuconfig

For detailed setup steps, see ESP-IDF → 1. Environment Setup.


3. Arduino + Arduino IDE

3.1 Introduction

Arduino Core for ESP32 wraps the ESP-IDF underlying layer into APIs consistent with classic Arduino (digitalWrite, analogRead, Serial.print, etc.), letting Arduino developers migrate to the ESP32-S3 with zero learning cost.

The underlying layer is still ESP-IDF; Arduino is a compatibility layer on top of it. Therefore the performance penalty is small, but the API coverage is not as comprehensive as ESP-IDF.

3.2 Toolchain Architecture

xxxxxxxxxx
┌────────────────────────────────────────────────┐
│              Arduino IDE 2.x                   │
│   Code editing, one-click compile & flash,     │
│   serial monitor, library manager              │
├────────────────────────────────────────────────┤
│         Arduino Core for ESP32 (BSP)           │
│   digitalWrite()  analogRead()  Serial.print() │
│   WiFi.begin()    MQTT client   Wire.begin()   │
├────────────────────────────────────────────────┤
│              ESP-IDF underlying                │
│      (auto-linked at compile time, invisible)  │
├────────────────────────────────────────────────┤
│               ESP32-S3 hardware                │
└────────────────────────────────────────────────┘

3.3 Core Features

FeatureDescription
Extremely fast to get startedsetup() + loop() model, zero learning cost for experienced Arduino users
Rich library ecosystemThousands of Arduino libraries can be used directly (sensor drivers, displays, motor control, etc.)
One-click compile and flashNo manual toolchain configuration; click → in the IDE to finish
Serial monitorBuilt-in Serial Plotter for plotting sensor curves in real time
ESP32-specific APIsAdditional ESP32-specific functions such as ledcWrite(), touchRead()

3.4 Environment Setup Essentials

  • Add the ESP32 board manager URL in the Arduino IDE: https://espressif.github.io/arduino-esp32/package_esp32_index.json

  • In Board Manager, search for esp32 and install esp32 by Espressif Systems

  • Select the board: ESP32S3 Dev Module

For detailed setup steps, see Arduino → 1. Before Development → 1. Environment Setup.


4. MicroPython + Thonny

4.1 Introduction

MicroPython is a lean implementation of Python 3 designed for microcontrollers. It wraps the ESP32-S3 hardware peripherals into the machine module (machine.Pin, machine.I2C, machine.PWM, etc.), executing Python code in real time through the REPL interactive console.

The MicroPython firmware itself is a complete Python interpreter, flashed to Flash in .bin form. After flashing, no compilation is needed; just send .py scripts over the serial port to run them.

4.2 Toolchain Architecture

xxxxxxxxxx
┌────────────────────────────────────────────────┐
│              Thonny IDE                        │
│   Editor + REPL Shell + file manager           │
├────────────────────────────────────────────────┤
│        MicroPython firmware (in Flash)         │
│   ┌──────────┐ ┌──────────┐ ┌──────────────┐   │
│   │ machine  │ │ network  │ │   socket     │   │
│   │ Pin/I2C  │ │ WiFi STA │ │  TCP/UDP     │   │
│   │ PWM/ADC  │ │ BLE      │ │  HTTP/MQTT   │   │
│   └──────────┘ └──────────┘ └──────────────┘   │
│     Python 3 interpreter (compiled C firmware) │
├────────────────────────────────────────────────┤
│               ESP32-S3 hardware                │
└────────────────────────────────────────────────┘

4.3 Core Features

FeatureDescription
No compilationWrite a .py file and upload it directly; code changes take effect immediately
REPL interactionEnter Python statements directly at the >>> prompt and execute immediately, ideal for exploratory debugging
Concise syntaxPython 3 subset, no pointers / memory management / type declarations
Built-in file systemThe device has a /flash file system supporting directory and file operations
mip package managerimport mip; mip.install("umqtt.simple") installs third-party libraries online
Auto-start on power-upAutomatically executes boot.py → main.py; can run standalone without the IDE

4.4 Environment Setup Essentials

  • Flash the MicroPython firmware (.bin) to the ESP32-S3 (using esptool or Flash Download Tool)

  • Install Thonny IDE, select the interpreter as MicroPython (ESP32), and choose the correct COM port

  • Verify the connection through the REPL Shell and upload .py scripts via the file manager

For detailed setup steps, see MicroPython → 1. Before Development → 1. Environment Setup.


5. How to Choose

xxxxxxxxxx
              What’s your requirement?  
               ╱        │         ╲
 Commercial Mass     Rapid        Teaching/Script Development
 Production/High     Prototyping
 Performance      
      ╱                  │                ╲
  ESP-IDF + VSCode   Arduino + IDE    MicroPython + Thonny
Your situationRecommendation
Beginner, never touched embedded developmentMicroPython → first build hardware programming intuition
Have Arduino experience, want to migrate to ESP32Arduino → familiar APIs, get started directly
Pursuing ultimate performance or commercial productsESP-IDF → complete hardware control, no shortcomings in OTA / security / low power
Want to learn all threeThis tutorial covers all three routes, progressing chapter by chapter

6. Development Environment Chapters in This Tutorial

Development methodEnvironment setup chapter
ESP-IDF (Windows)ESP-IDF → 1. Before Development → 1. Environment Setup (Windows)
ESP-IDF (Linux)ESP-IDF → 1. Before Development → 2. Environment Setup (Linux)
ArduinoArduino → 1. Before Development → 1. Environment Setup
MicroPythonMicroPython → 1. Before Development → 1. Environment Setup

 

ESP32S3 Overview
Dev Board Introduction

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