Arduino IDE 离线安装 ESP32 开发板支持(3.3.10)

Arduino IDE 离线安装 ESP32 开发板支持(3.3.10)

背景

Arduino IDE 通过package_esp32_index.json定义 ESP32 的依赖链。添加开发板时,IDE 从 GitHub Releases 逐个拉取文件。国内网络环境下单线程下载速度约 30KB/s,395MB 的编译器需要 3 小时以上,整个依赖链 28GB 全部下完在实际操作中基本不可行。

IDE 的下载逻辑是一个文件一个文件校验的:检查%LOCALAPPDATA%\Arduino15\下目标路径是否已有对应文件,有则跳过。利用这一点,提前把文件放到正确位置即可绕过下载。

依赖链

package_esp32_index.jsonesp32:esp32@3.3.10的依赖如下:

esp32:esp32@3.3.10├─xtensa-esp-elf-gcc14.2.0+20260121395MBC/C++Xtensa机器码├─esp32-arduino-libs-idf5.5-129cd0d2425MBWiFi/BLE/FreeRTOS/LWIP├─esp32-libs3.3.1042MB外设驱动SPI/I2C/UART/GPIO/ADC├─esp32-core3.3.1044MBArduinoAPI封装+bootloader└─esptool5.3.061MBUSB-Serial烧录

合计 967MB。IDE 自动下载还会拉取其他 7 种芯片的 libs、32 位工具链、RISC-V GCC、各版本 OpenOCD、mkspiffs 等不需要的文件,总量约 28GB。

文件清单

① 编译器

项目
文件名xtensa-esp-elf-14.2.0_20260121-x86_64-w64-mingw32.zip
分卷xtensa_compiler_part_00.zip~_04.zip(5 卷,90MB×4 + 35MB)
合并copy /b xtensa_compiler_part_00.zip + xtensa_compiler_part_01.zip + xtensa_compiler_part_02.zip + xtensa_compiler_part_03.zip + xtensa_compiler_part_04.zip xtensa-esp-elf-14.2.0_20260121-x86_64-w64-mingw32.zip
解压到%LOCALAPPDATA%\Arduino15\packages\esp32\tools\xtensa-esp-elf\14.2.0+20260121\

② IDF 框架库

项目
文件名esp32-arduino-libs-idf-v5.5.zip
分卷idf_libs_part_00.zip~_04.zip(5 卷,90MB×4 + 66MB)
合并copy /b idf_libs_part_00.zip + idf_libs_part_01.zip + idf_libs_part_02.zip + idf_libs_part_03.zip + idf_libs_part_04.zip esp32-arduino-libs-idf-v5.5.zip
解压到%LOCALAPPDATA%\Arduino15\packages\esp32\tools\esp32-arduino-libs-idf\5.5-129cd0d2\

③ 芯片驱动库

项目
文件名esp32-libs-3.3.10.zip
分卷无,单文件
放到%LOCALAPPDATA%\Arduino15\staging\packages\esp32-libs-3.3.10.zip(不解压)

Arduino IDE 的安装流程中对这个文件做了特殊处理:下载到staging/packages/后校验 SHA256,通过后自动解压。所以直接放 ZIP 本身即可,IDE 检测到文件存在就会跳过下载并自行解压。

④ Arduino 核心

项目
文件名esp32-core-3.3.10.zip
分卷无,单文件
解压到%LOCALAPPDATA%\Arduino15\packages\esp32\hardware\esp32\3.3.10\

⑤ 烧录工具

项目
文件名esptool-v5.3.0-windows-amd64.zip
分卷无,单文件
解压到%LOCALAPPDATA%\Arduino15\packages\esp32\tools\esptool_py\5.3.0\

操作步骤

1. 获取文件

编号组件CSDN 下载链接
编译器download.csdn.net/download/llm765800916/93107209
IDF 框架download.csdn.net/download/llm765800916/93107213
芯片驱动download.csdn.net/download/llm765800916/93107214
Arduino Coredownload.csdn.net/download/llm765800916/93107215
烧录工具download.csdn.net/download/llm765800916/93107243

付费资源,¥6.90/个。下载后得到 ZIP 文件,解压密码csdn2026,解压后内含download.txt(蓝奏云直链 + 合并说明)。

2. 合并分卷

①和②是大文件拆分。所有分卷下载到同一目录后,CMD 执行:

copy /b xtensa_compiler_part_00.zip + xtensa_compiler_part_01.zip + xtensa_compiler_part_02.zip + xtensa_compiler_part_03.zip + xtensa_compiler_part_04.zip xtensa-esp-elf-14.2.0_20260121-x86_64-w64-mingw32.zip copy /b idf_libs_part_00.zip + idf_libs_part_01.zip + idf_libs_part_02.zip + idf_libs_part_03.zip + idf_libs_part_04.zip esp32-arduino-libs-idf-v5.5.zip

PowerShell 下用cmd /c "copy /b ..."包裹。

3. 创建目录结构

%LOCALAPPDATA%\Arduino15\下创建以下目录(如果不存在):

mkdir%LOCALAPPDATA%\Arduino15\packages\esp32\tools\xtensa-esp-elf\14.2.0+20260121mkdir%LOCALAPPDATA%\Arduino15\packages\esp32\tools\esp32-arduino-libs-idf\5.5-129cd0d2mkdir%LOCALAPPDATA%\Arduino15\packages\esp32\hardware\esp32\3.3.10mkdir%LOCALAPPDATA%\Arduino15\packages\esp32\tools\esptool_py\5.3.0mkdir%LOCALAPPDATA%\Arduino15\staging\packages

4. 解压

逐个解压到对应目录。③号不解压,直接把 ZIP 文件放到staging\packages\

完成后目录结构如下:

%LOCALAPPDATA%\Arduino15\├──staging\└──packages\└──esp32-libs-3.3.10.zip└──packages\└──esp32\├──hardware\└──esp32\└──3.3.10\├──boards.txt├──platform.txt├──cores/├──libraries/└──...└──tools\├──xtensa-esp-elf\14.2.0+20260121\└──bin\├──xtensa-esp-elf-gcc.exe└──...├──esp32-arduino-libs-idf\5.5-129cd0d2\└──esptool_py\5.3.0\

5. 验证

重启 Arduino IDE。工具 → 开发板 → 开发板管理器,搜索esp32,版本选3.3.10,点击安装。IDE 会逐个校验文件,已就位的直接跳过,应该在 30 秒内完成。

工具 → 开发板 → ESP32 Arduino → ESP32 Dev Module,编译 Blink:

voidsetup(){pinMode(2,OUTPUT);}voidloop(){digitalWrite(2,HIGH);delay(500);digitalWrite(2,LOW);delay(500);}

编译通过且不触发任何下载,说明离线安装成功。


其他芯片型号

上面 5 个包对应经典 ESP32(单模组 Xtensa 双核)。用到其他芯片时只需替换③号:

芯片③号包文件名架构
ESP32-S3esp32s3-libs-3.3.10.zipXtensa LX7
ESP32-C3esp32c3-libs-3.3.10.zipRISC-V
ESP32-C6esp32c6-libs-3.3.10.zipRISC-V
ESP32-S2esp32s2-libs-3.3.10.zipXtensa LX7

①、②、④、⑤仍用上面列的文件,不换。

RISC-V 芯片(C3/C5/C6/H2/P4)还需要 ⑥号包:RISC-V GCC 编译器(riscv32-esp-elf-14.2.0_20260121-x86_64-w64-mingw32.zip),路径为packages\esp32\tools\riscv32-esp-elf\14.2.0+20260121\。本文不展开,留作后续。


原理

Arduino IDE 的 Boards Manager 安装流程:

1.解析package_esp32_index.json获取文件列表+URL+SHA2562.遍历files[]:a.检查目标路径/staging路径是否已有文件b.已有且SHA256匹配跳过c.没有GitHub下载校验解压3.全部完成显示INSTALLED

关键在第 2.a 步:IDE 不区分文件是手动放的还是自己下载的。只要文件在预期位置且校验通过,就认为是已下载。这就是整个离线安装的基础。

③号包(芯片驱动)不走解压——它在 JSON 里的archiveFileName指向staging/packages/,IDE 下载完原样保留 ZIP,编译时按需引用。其他 4 个包的archiveFileName指向packages/下的工具目录,下载后自动解压到对应版本号子目录。