跳到主要内容

小智AI终端开源项目配置修改等操作指引(一)

本文档仅限开发者,已经入门的初学者

修改前提:

1)请先确保已经安装配置好 ESP-IDF开发环境,版本在IDF5.0以上(IDF的各个大版本不兼容),为避免不必要的问题,建议版本为 IDF V5.3.2。

Window10系统安装配置 ESP-IDF开发环境请参考之前的教程文档:

Windows搭建 ESP IDF 5.3开发环境

1. 打开小智AI聊天机器人开源项目操作

1)PowerShell 命令终端切换小智AI终端开源项目的代码路径

打开集成好的 ESP IDF 5.3 PowerShell 命令终端,使用 cd 命令 把目录切换到 xiaozhi-esp32-0.9.7 根目录下

注意:上述0.9.7是版本号和代码存放文件目录路径,仅作示例参考,具体根据自己的源码路径和版本号自行修改;

ESP-IDF 5.3 PowerShell 建议用管理员权限方式打开。

小智AI代码文件目录

2)使用VSCode打开小智AI终端开源项目

①打开VScode在开始页面选择打开文件夹(下右图) 或 在菜单——文件——打开文件夹(下左图)

小智AI代码文件夹小智AI代码文件夹

②打开目录到电脑上自己存放的小智AI源代码解压后的跟目录

VScode打开文件夹路径请自行选择到小智AI源代码根目录,请不要选择进入到项目根目录下的 main 目录。

注意:如果是从github上clone的代码,默认不带类似0.9.7版本号,打开目录到 \xiaozhi-esp32 即可。

小智AI代码文件夹

③使用VSCode打开小智AI项目之后,界面参考如下图:

下图示例已经关闭了vscode欢迎页,打开了 xiaozhi-esp32-0.9.7\main\boards\bread-compact-wifi 目录下的 config.h 配置头文件,小智AI终端的esp32-s3 开发板版本的麦克风、音频功放等引脚定义和屏幕设置参数都在这里。

注意:修改小智AI源码之后,需要重新编译项目 idf.py buildidf.py flash 编译烧录到开发板或设备上运行才能生效。

小智AI代码修改编译

2. 如何修改开发板的引脚配置?

使用esp32s3芯片模块的开发板,或者自行设计的搭载esp32s3芯片模块的开发板或终端设备,一般都是在面包板版本上修改代码以适配。

开发板引脚配置

1)小智AI终端面包板版本源码配置目录及引脚参数

面包板wifi版配置目录为:xiaozhi-esp32-0.9.7\main\boards\bread-compact-wifi 。

面包板ML307-4G版配置目录为:xiaozhi-esp32-0.9.7\main\boards\bread-compact-ml307 。

打开了 xiaozhi-esp32-0.9.7\main\boards\bread-compact-wifi 目录下的 config.h 配置头文件,小智AI终端的esp32-s3 开发板版本的麦克风、音频功放等引脚定义和屏幕设置参数都在这里。

开发板引脚配置

注:如果需要修改其他的开发板,请在\main\boards目录下切换对应的开发板配置目录修改源代码,同时在菜单或sdk配置对应开发板,
可参考之前的文档编译小智部分。

编译小智教程文档: Windows ESP IDF 5.3编译小智

2)面包板WIFI版/ML307R-4G版本OLED屏幕设置参数

屏幕默认为0.91寸的SSD1306驱动芯片的OLED屏幕,分辨率为128x32,如果使用其他4线的SSD1306驱动芯片的OLED屏幕,需要修改分辨率。

示例1:如果使用 0.96寸的SSD1306驱动芯片的OLED屏幕,分辨率为128x64,需要修改屏幕的高度 #define DISPLAY_HEIGHT 64

示例2:如果的OLED屏幕和默认的倒着看的,Y轴需要镜像设置,例如修改镜像设置参数:

#define DISPLAY_MIRROR_Y false; #define DISPLAY_MIRROR_X false;

更多请自行调试。

开发板OLED引脚配置

更多的设置请自行尝试验证。

注意:任何修改小智AI源码之后,需要重新编译项目 idf.py build, idf.py flash 编译烧录到开发板或设备上运行才能生效。

3. 如何修改flash size大小?

方式一:使用IDF 5.3 PowerShell 命令终端 idf.py menuconfig 命令菜单修改:

接上节,在 ESP IDF 5.3 PowerShell 命令终端切换小智源码路径后,请输入 idf.py menuconfig 命令回车,终端将加载程序进入IDF 菜单配置主界面。

按键盘上下键切换选项选择 Serial flasher config ---> 行菜单,按回车/Enter键进入配置,如下图:

修改flash size大小入口

在 Serial flasher config 界面按键盘上下键切换选项选择 Flash size (xxMB)---> ,按回车/Enter键进入修改flash size大小,如下图:

选择flash size大小

在 Flash size 界面按键盘上下键切换选项,按回车/Enter键确认,如下图:

注意:这里演示修改选择8M,请根据自己的开发板实际flash大小修改。

修改flash size大小

修改一定要按 S 键保存,系统提示成功 Success,再按 回车/Enter键确认 Success提示关闭,最后按键盘上 Q键 或者 ESC键 退出或离开munuconfig菜单界面,完成修改操作,如下图。

保存修改flash size大小

注意:修改后需要重新编译项目 idf.py build ,编译成功后才能生效。

保存后重新编译构建项目

方式二:使用VScode修改SDK配置,待补充

     

4. 如何修改小智AI项目分区表?

由于Flash大小不是默认的16M或者需要修改某个分区的大小,这种情况下需要修改小智AI源码中的分区表:

1)(新版)使用ESP-IDF Powershell 配置菜单修改

注意:如果当前源码版本大于1.0.0,参考本节以下步骤进行修改。

在ESP-IDF Powershell 管理员身份运行,cd到 小智AI开源项目根目录,输入 idf.py menuconfig 进入小智AI项目菜单配置界面,按上下按钮选择 Partition Table ---> 菜单项,如下图示:

修改小智AI项目分区表入口

键盘 回车/Enter按键 进入 Partition Table 菜单,选择 Partition Table界面第1个选项 (partitions.csv )Custom Partition Table CSV file 选项(如果修改过前面括号中的内容会有所不同),再次 回车/Enter按键 进入修改自定义分区表,如下图示:

修改小智AI项目分区表

如果用户使用的是8M的flash就修改为 partitions_8M.csv,用户使用的是4M的flash就修改为 partitions_4M.csv,小智开源项目已经包含了这两个分区表CSV文件,修改8M的 flash 如下图示:

修改小智AI项目分区表

按 【S】键 回车/Enter键确认保存,再按【Q】退出。

保存修改小智AI项目分区表

注意:修改完分区表配置需要保存后,重新编译项目才能生效。

同时,请用户确认flash大小设置与分区表一致(修改flash大小请参考第3节)。

2)(旧版)直接修改分区表文件后编译

注意:如果当前源码版本小于1.0.0,可参考本节说明进行修改。

打开存放 小智AI项目的源码根目录下,建议用文本编辑器打开 partitions.csv 文件。

注意:下图演示路径仅供参考,具体根据用户自己的电脑上源码位置打开到跟目录。

partitions.csv 文件默认是excel打开,建议用 文本编辑器打开。如果文件后缀名没有显示请到

分区表文件

如果文件 partitions.csv 没有显示后缀名,请到浏览器查看中打开,如下图:

显示文件后缀名

partitions.csv 分区表说明

(1)partitions.csv 分区表中设置的大小不能超过开发板上 ESP32 芯片的flash大小,一般对应开发板型号中的N之后的数字,例如 ESP32-S3-N16R8 芯片模块对应的N后面数字为16,表示flash大小为16M。

(2)partitions.csv分区表一般按开发程序应用的需要,参考按官方推荐的示例和规范进行修改。主要修改 Offset 和Size两列即可,其中Offset可以不配置,系统会自动根据Size计算偏移位置,其中Type和SubType 限定项支持(具体参考乐鑫官方文档),请不要随便修改,否则编译报错。

partitions.csv 分区表文件修改参考示例

  • 示例1:Flash size 为8M对应修改 partitions.csv

由于flash大小不够16M,建议修改文件为去掉两个 ota_0 和 ota_1两行配置,剩余配置项目合计为8M。

注意:ota 配置行去掉之后将不能ota自动升级,需要程序不能自动升级需要自己烧录,同时,建议关闭网站后台自动升级设置,避免运行程序检测到新版本,却又不能下载升级可能的报错。

分区表文件内容预览

注意:目前小智AI终端esp32s3合并 bin固件需要大小约4M,partitions.csv分区表中 factory,  app …… 
配置行建议4M,不要修改配置大小,否则可能无法烧录完成。
注意:修改partitions.csv分区表后需要重新编译项目 idf.py build 成功后才能生效。