xiaozhi/xiaozhi-esp32-server/docs/firmware-build.md
“wangquan” 57fdf656b9 add_xiaozhi
2025-07-18 13:12:09 +08:00

4.8 KiB
Executable File
Raw Blame History

esp32固件编译

第1步 准备你的ota地址

如果你使用的是本项目0.3.12版本不管是简单Server部署还是全模块部署都会有ota地址。

由于简单Server部署和全模块部署的OTA地址设置方式不一样请你选择下面的具体方式

如果你用的是简单Server部署

此刻请你用浏览器打开你的ota地址例如我的ota地址

http://192.168.1.25:8003/xiaozhi/ota/

如果显示“OTA接口运行正常向设备发送的websocket地址是ws://xxx:8000/xiaozhi/v1/

你可以使用项目自带的test_page.html测试一下是否能连上ota页面输出的websocket地址。

如果访问不到,你需要到配置文件.config.yaml里修改server.websocket的地址,重启后再重新测试,直到test_page.html能正常访问。

成功后请往下进行第2步

如果你用的是全模块部署

此刻请你用浏览器打开你的ota地址例如我的ota地址

http://192.168.1.25:8002/xiaozhi/ota/

如果显示“OTA接口运行正常websocket集群数量X”。那就往下进行2步。

如果显示“OTA接口运行不正常”大概是你还没在智控台配置Websocket地址。那就:

  • 1、使用超级管理员登录智控台

  • 2、顶部菜单点击参数管理

  • 3、在列表中找到server.websocket项目,输入你的Websocket地址。例如我的就是

ws://192.168.1.25:8000/xiaozhi/v1/

配置完后再使用浏览器刷新你的ota接口地址看看是不是正常了。如果还不正常就就再次确认一下Websocket是否正常启动是否配置了Websocket地址。

第2步 配置环境

先按照这个教程配置项目环境《Windows搭建 ESP IDF 5.3.2开发环境以及编译小智》

第3步 打开配置文件

配置好编译环境后下载虾哥iaozhi-esp32项目源码

从这里下载虾哥xiaozhi-esp32项目源码

下载后,打开xiaozhi-esp32/main/Kconfig.projbuild文件。

第4步 修改OTA地址

找到OTA_URLdefault的内容,把https://api.tenclass.net/xiaozhi/ota/ 改成你自己的地址,例如,我的接口地址是http://192.168.1.25:8002/xiaozhi/ota/,就把内容改成这个。

修改前:

config OTA_URL
    string "Default OTA URL"
    default "https://api.tenclass.net/xiaozhi/ota/"
    help
        The application will access this URL to check for new firmwares and server address.

修改后:

config OTA_URL
    string "Default OTA URL"
    default "http://192.168.1.25:8002/xiaozhi/ota/"
    help
        The application will access this URL to check for new firmwares and server address.

第4步 设置编译参数

设置编译参数

# 终端命令行进入xiaozhi-esp32的根目录
cd xiaozhi-esp32
# 例如我使用的板子是esp32s3所以设置编译目标为esp32s3如果你的板子是其他型号请替换成对应的型号
idf.py set-target esp32s3
# 进入菜单配置
idf.py menuconfig

进入菜单配置后,再进入Xiaozhi Assistant,将BOARD_TYPE设置你板子的具体型号 保存退出,回到终端命令行。

第5步 编译固件

idf.py build

第6步 打包bin固件

cd scripts
python release.py

上面的打包命令执行完成后,会在项目根目录下的build目录下生成固件文件merged-binary.bin。 这个merged-binary.bin就是要烧录到硬件上的固件文件。

注意如果执行到第二命令后报了“zip”相关的错误请忽略这个错误只要build目录下生成固件文件merged-binary.bin ,对你没有太大影响,请继续。

第7步 烧录固件

将esp32设备连接电脑使用chrome浏览器打开以下网址

https://espressif.github.io/esp-launchpad/

打开这个教程,Flash工具/Web端烧录固件无IDF开发环境。 翻到:方式二ESP-Launchpad 浏览器WEB端烧录,从3. 烧录固件/下载到开发板开始,按照教程操作。

烧录成功且联网成功后通过唤醒词唤醒小智留意server端输出的控制台信息。

常见问题

以下是一些常见问题,供参考:

1、为什么我说的话小智识别出来很多韩文、日文、英文

2、为什么会出现“TTS 任务出错 文件不存在”?

3、TTS 经常失败,经常超时

4、使用Wifi能连接自建服务器但是4G模式却接不上

5、如何提高小智对话响应速度

6、我说话很慢停顿时小智老是抢话

7、我想通过小智控制电灯、空调、远程开关机等操作