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 (Linux)

Linux Environment Setup — VMware + Ubuntu + ESP-IDF 5.5.2


Linux Environment Setup — VMware + Ubuntu + ESP-IDF 5.5.21. Overview2. Official Environment Acquisition3. Preparation3.1 Hardware Requirements3.2 Downloads Required4. Enable CPU Virtualization4.1 Check Virtualization Status4.2 BIOS Enabling Steps5. Install VMware Workstation5.1 Installation Steps6. Import Virtual Machine Image6.1 Extract the Image6.2 Open the Virtual Machine6.3 Adjust VM Settings (As Needed)6.4 Start the Virtual Machine6.5 VM Environment Overview6.6 Snapshot Management7. Connect Development Board to VM7.1 USB Passthrough7.2 Verify Serial Port8. Build Verification9. FAQ10. Appendix: Complete Official Manual Installation GuideOfficial Documentation LinksVersion Selection Recommendations


1. Overview

Compilation speed of ESP-IDF on Linux is significantly faster than on Windows (native GCC toolchain without intermediate layer overhead), and it avoids Windows path length limitations and encoding issues. Some features (such as audio codecs and AI XiaoZhi firmware) have strict ESP-IDF version requirements, and version switching is more flexible in a Linux environment.

This tutorial provides a pre-packaged Ubuntu 24.04 virtual machine image with ESP-IDF 6.0.2/5.5.5 + VSCode + all toolchains pre-installed. Import and it's ready to use.

The process has two steps:

  1. Install VMware Workstation — Virtualization software

  2. Import the virtual machine image — Load pre-configured Ubuntu + ESP-IDF environment

Snapshots have already been taken for the user inside the image. If you make mistakes or damage the environment, you can restore to a clean initial state with one click.


2. Official Environment Acquisition

If you are an advanced user and prefer to build your own environment instead of using a virtual machine, Espressif provides complete Linux installation documentation and toolchains:

Environment Setup (Official Guide)

ResourceAddress
ESP-IDF Programming Guide (Linux)Installation of ESP-IDF and Tools on Linux - ESP32-S3 - — ESP-IDF Programming Guide v6.0.2 documentation
ESP-IDF GitHub Repositoryhttps://github.com/espressif/esp-idf

General Steps for Official Manual Installation (for reference, not required):

​x
# 1. Install system dependencies
sudo apt-get install git wget flex bison gperf python3 python3-pip \
  python3-venv cmake ninja-build ccache libffi-dev libssl-dev \
  dfu-util libusb-1.0-0

# 2. Clone ESP-IDF
mkdir -p ~/esp && cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
cd esp-idf && git checkout v5.5.5

# 3. Install toolchain
./install.sh esp32s3

# 4. Activate environment
. ./export.sh

Official manual installation takes approximately 1-2 hours (including toolchain download and compilation) and has high network requirements. To lower the barrier to entry, we provide pre-configured virtual machine images, skipping the tedious environment setup process, so readers can directly proceed to code learning.


3. Preparation

3.1 Hardware Requirements

ItemRequirement
Operating SystemWindows 10 / 11 (64-bit)
CPUSupports virtualization technology (Intel VT-x or AMD-V), must be enabled in BIOS
Memory≥ 16 GB (8 GB recommended for virtual machine allocation)
Disk Space≥ 120 GB (VM image ~65 GB + decompression space)
USB PortAt least 1 USB-A / USB-C (for connecting development board, must be passed through to VM)

3.2 Downloads Required

FileDescriptionDownload Address
VMware Workstation InstallerVirtualization software6. Software Tools → VMware → VMware-workstation-full-17.6.2-24409262.zip
Ubuntu + ESP-IDF VM ImagePre-configured Ubuntu 24.04 + ESP-IDF 6.0.2/5.5.5 + VSCode6. Software Tools → Linux VM → Ubuntu.rar

The VM image comes pre-installed with: Ubuntu 24.04, ESP-IDF 6.0.2/5.5.5, VSCode + ESP-IDF extension, CH340 driver, Python 3, Git. After importing, you can compile and flash directly without any additional configuration.


4. Enable CPU Virtualization

Virtual machines require CPU hardware virtualization support. Most laptops/desktops have it disabled by default and require manual enabling in BIOS.

4.1 Check Virtualization Status

Ctrl + Shift + Esc → Performance tab → Check "Virtualization" status in the bottom-right corner:

DisplayStatus
EnabledNo action needed, proceed to Chapter 5
DisabledNeed to enter BIOS to enable

4.2 BIOS Enabling Steps

  1. Restart the computer, press the BIOS hotkey on the boot logo screen (common: F2 / Del / F10 / Esc, depends on motherboard)

  2. Go to Advanced or Configuration tab

  3. Find one of the following options and set it to Enabled:

    Common Names in BIOS
    Intel Virtualization Technology (VT-x)
    AMD SVM Mode
    Virtualization Technology
    SVM
  4. Press F10 to save and exit, computer will restart automatically


5. Install VMware Workstation

5.1 Installation Steps

  1. Double-click the VMware installer (e.g., VMware-workstation-full-17.6.2-24409262.exe)

  2. Click Next, read the license agreement, check I accept the terms in the license agreement

    VM1

    VM2

  3. Choose installation path (recommended to keep default C:\Program Files (x86)\VMware\VMware Workstation\), click Next

    VM3

  4. Uncheck Check for product updates on startup and Join the VMware Customer Experience Improvement Program, click Next

    VM4

  5. Check Desktop and Start Menu shortcuts, click Next

    VM5

  6. Click Install/Upgrade, wait for installation to complete

    VM6

  7. Click License to enter a key, or choose Try for 30 days, click Finish

VMware Workstation 17 Personal is now free for individuals. You can register for a free account on the VMware website to get it.


6. Import Virtual Machine Image

6.1 Extract the Image

Extract the downloaded VM image archive (e.g., Ubuntu24.04-ESP-IDF.7z) to a disk directory with ≥ 100 GB free space.

xxxxxxxxxx
D:\Ubuntu\
├── Ubuntu24.04-ESP-IDF.vmx           ← VM configuration file (double-click to open)
├── Ubuntu24.04-ESP-IDF.vmdk          ← Virtual disk (~65 GB)
├── Ubuntu24.04-ESP-IDF-sXXXX.vmdk    ← Snapshot data
└── ...

6.2 Open the Virtual Machine

  1. Open VMware Workstation, click Open a Virtual Machine image-20260807174434536

  2. Navigate to the extracted directory, select Ubuntu 64-bit.vmx, click Open

  3. The VM appears in the left list, named Ubuntu 64-bit

    VM Main Page

6.3 Adjust VM Settings (As Needed)

Click Edit virtual machine settings (or right-click → Settings), adjust based on your physical machine configuration:

Hardware ItemRecommended ValueDescription
Memory8 GB (8192 MB)If physical memory is above 16GB, allocate 8GB; minimum no less than 4GB
Processors4 coresCompilation speed is positively correlated with core count
Hard DiskDefault (100 GB, dynamic expansion)Enough for ESP-IDF framework + multiple projects
USB ControllerUSB 3.1 compatibleEnsures the development board is recognized by the VM

Allocating too much memory and CPU may cause the host machine to lag. Recommended not to exceed 50% of the host's physical configuration.

6.4 Start the Virtual Machine

  1. Click Power on this virtual machine

  2. On first boot, you may be prompted "I moved the virtual machine" or "I copied it" — select I moved the virtual machine (preserves MAC address and network configuration)

  3. Login password: 1

  4. Wait for Ubuntu to boot (~30-60 seconds), auto-login to desktop

    Ubuntu Desktop

6.5 VM Environment Overview

After login, the desktop and taskbar are ready:

ComponentVersionDescription
Ubuntu24.04 LTSLong-term support version, stable and reliable
ESP-IDF6.0.2/5.5.2Installed to ~/esp, toolchain ready
VSCodeLatest stableESP-IDF extension + C/C++ extension installed
Python3.12ESP-IDF toolchain dependency
GitSystem built-inVersion management and repository cloning
CH340 DriverBuilt into kernelDriver-free, plug in the development board and it's recognized

6.6 Snapshot Management

The VM supports snapshots, allowing you to save the current state as a restore point:

  • Take Snapshot: VMware menu → VM → Snapshot → Take Snapshot, enter a name (e.g., "Initial Environment-ESP-IDF 6.0.2/5.5.2")

  • Restore Snapshot: VMware menu → VM → Snapshot → Select the corresponding snapshot → Go to

It is recommended to take a snapshot immediately after completing the environment setup. If you make mistakes later or the system becomes corrupted, you can restore with one click.


7. Connect Development Board to VM

7.1 USB Passthrough

  1. Connect the ESP32-S3 development board to the computer using a USB cable

  2. In VMware menu: VM → Removable Devices → Find the corresponding USB device → Click Connect (disconnect from host)

  3. A checkmark √ appears next to the device, indicating it has been passed through to the VM

After passthrough, the development board is only recognized by the VM, and it will temporarily disappear from the host's (Windows) Device Manager. It will automatically return to Windows after disconnecting from the VM.

7.2 Verify Serial Port

Open Terminal inside the VM (Ctrl + Alt + T), execute:

xxxxxxxxxx
ls /dev/ttyUSB*      # CH340 driver    → /dev/ttyUSB0
ls /dev/ttyACM*      # CP2102 driver   → /dev/ttyACM0

If /dev/ttyUSB0 appears, the development board has been correctly recognized by the VM.

If there is no output, check if USB passthrough was successful (VMware bottom-right USB icon status), or reconnect the USB cable.


8. Build Verification

Open the project in VSCode, or use the terminal to verify the environment:

xxxxxxxxxx
# Activate ESP-IDF environment
source ~/esp/esp-idf/export.sh

# Enter hello_world example
cd ~/esp/esp-idf/examples/get-started/hello_world

# Set target chip
idf.py set-target esp32s3

# Build
idf.py build

# Flash (/dev/ttyUSB0 replaced with actual serial port)
idf.py -p /dev/ttyUSB0 flash

# Monitor
idf.py -p /dev/ttyUSB0 monitor

Build success indicator:

xxxxxxxxxx
Project build complete.

9. FAQ

SymptomCauseSolution
VM reports "VT-x is disabled in BIOS" on startupCPU virtualization not enabledRestart and enter BIOS to enable VT-x / AMD SVM
VM runs sluggishlyInsufficient allocated resourcesIncrease memory to 8 GB + CPU to 4 cores; close large applications on host
Development board not found in USB device listVMware USB service not startedOn host, open services.msc → restart VMware USB Arbitration Service
/dev/ttyUSB0 does not exist in VMUSB passthrough failed or driver not loadedConfirm the device is checked in VMware menu; use lsusb to check if CH340 is visible
Flash fails with "Permission denied"No read/write permission for serial portsudo chmod 666 /dev/ttyUSB0 or sudo usermod -aG dialout $USER
VSCode terminal cannot use idf.pyEnvironment variables not activatedFirst execute source ~/esp/esp-idf/export.sh, or add alias in .bashrc
ESP-IDF version mismatchProject requires specific versionRefer to official documentation to switch versions: git checkout vX.X.X && ./install.sh
VM disk space insufficientVirtual disk is fullClean ~/esp/esp-idf/build directory; or expand virtual disk size

10. Appendix: Complete Official Manual Installation Guide

The VM we provide has already completed all the following steps for you. If you choose not to use a VM, below is the complete installation process recommended by Espressif.

Official Documentation Links

ResourceAddress
ESP-IDF Programming Guidehttps://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32s3/index.html
Linux/macOS Environment Setuphttps://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32s3/get-started/linux-macos-setup.html
ESP-IDF Release Pageshttps://github.com/espressif/esp-idf/releases
ESP-IDF Toolchain Downloadshttps://dl.espressif.com/
ESP-IDF Official Forumhttps://esp32.com/

Version Selection Recommendations

Project TypeRecommended Version
This tutorial series (basic peripherals / communication / FreeRTOS)ESP-IDF 6.0.2
AI XiaoZhi firmware compilationESP-IDF ≥ 5.5.2 (Must use 5.x series, 6.0.x is NOT acceptable)
New project developmentCurrent latest Stable version

ESP-IDF 5.x and 6.0.x have many API incompatibilities (esp_netif interface restructuring, Wi-Fi driver changes, etc.). Some open-source projects have not yet adapted to 6.0.x. ** beginners are recommended to follow the tutorial and use v6.0.2**, as the environment is most mature.


Environment Setup (Windows)
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/中文