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

本文档仅限开发者,至少已经入门的初学者
修改前提:
1)请先确保已经安装配置好 ESP-IDF开发环境,版本在IDF5.0以上(IDF的各个大版本不兼容),为避免不必要的问题,建议版本为 IDF V5.3.1
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 建议用管理方式打开。

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

①打开VScode在开始页面选择打开文件夹(下右图) 或 在菜单——文件——打开文件夹(下左图)
②打开目录到电脑上自己存放的小智AI源代码解压后的目录
VScode打开文件夹路径请自行选择到小智AI源代码根目录,请不要选择进入到项目根目录下的 main 目录。
注意:如果是从github上clone的代码,默认不带类似0.9.7版本号,打开目录到 xiaozhi-esp32 即可。
③使用VSCode打开小智AI项目之后,界面参考如下图:
下图示例这里已经关闭了vscode欢迎页,打开了 xiaozhi-esp32-0.9.7mainboardsbread-compact-wifi 目录下的 config.h 配置头文件,小智AI终端的esp32-s3 开发板版本的麦克风、音频功放等引脚定义和屏幕设置参数都在这里。
注意:修改小智AI源码之后,需要重新编译项目 idf.py build, idf.py flash 编译烧录到开发板或设备上运行才能生效。
  1. 如何修改开发板的引脚配置?

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

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

面包板wifi版配置目录为:xiaozhi-esp32-0.9.7mainboardsbread-compact-wifi 。
面包板ML307-4G版配置目录为:xiaozhi-esp32-0.9.7mainboardsbread-compact-ml307 。
打开了 xiaozhi-esp32-0.9.7mainboardsbread-compact-wifi 目录下的 config.h 配置头文件,小智AI终端的esp32-s3 开发板版本的麦克风、音频功放等引脚定义和屏幕设置参数都在这里。
注:如果需要修改其他的开发板,请在mainboards目录下切换对应的开发板配置目录修改源代码,同时在菜单或sdk配置对应开发板,可参考之前的文档编译小智部分: Windows搭建 ESP IDF 5.3开发环境以及编译小智

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

屏幕默认为0.91寸的SSD1306驱动芯片的OLED屏幕,分辨率为128×32,如果使用其他4线的SSD1306驱动芯片的OLED屏幕,需要修改分辨率。
示例1:如果使用 0.96寸的SSD1306驱动芯片的OLED屏幕,分辨率为128×64,需要修改屏幕的高度 #define DISPLAY_HEIGHT 64
示例2:如果的OLED屏幕和默认的倒着看的,Y轴需要镜像设置,例如修改镜像设置参数:#define DISPLAY_MIRROR_Y false; #define DISPLAY_MIRROR_X false; 更多请自行调试。
更多的设置请自行尝试验证。
注意:任何修改小智AI源码之后,需要重新编译项目 idf.py build, idf.py flash 编译烧录到开发板或设备上运行才能生效。
  1. 如何修改flash size大小?

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

接上节,在 ESP IDF 5.3 PowerShell 命令终端切换小智源码路径后,请输入 idf.py menuconfig 命令回车,终端将加载程序进入IDF 菜单配置主界面。
按键盘上下键切换选项选择 Serial flasher config —> 行菜单,按回车/Enter键进入配置,如下图:
在 Serial flasher config 界面按键盘上下键切换选项选择 Flash size (xxMB)—> ,按回车/Enter键进入修改flash size大小,如下图:
在 Flash size 界面按键盘上下键切换选项,按回车/Enter键确认,如下图:
注意:这里演示修改选择8M,请根据自己的开发板实际flash大小修改。
修改一定要按 S 键保存,系统提示成功 Success,再按 回车/Enter键确认 Success提示关闭,最后按键盘上 Q键 或者 ESC键 退出或离开munuconfig菜单界面,完成修改操作,如下图。
注意:修改后需要重新编译项目 idf.py build ,编译成功后才能生效。

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

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

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

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

注意:如果当前源码版本大于1.0.0,参考本节以下步骤进行修改。
在ESP-IDF Powershell 管理员身份运行,cd到 小智AI开源项目根目录,输入 idf.py menuconfig 进入小智AI项目菜单配置界面,按上下按钮选择 Partition Table —-> 菜单项,如下图示:
键盘 回车/Enter按键 进入 Partition Table 菜单,选择 Partition Table界面第1个选项 (partitions.csv )Custom Partition Table CSV file 选项(如果修改过前面括号中的内容会有所不同),再次 回车/Enter按键 进入修改自定义分区表,如下图示:
如果用户使用的是8M的flash就修改为 partitions_8M.csv,用户使用的是4M的flash就修改为 partitions_4M.csv,小智开源项目已经包含了这两个分区表CSV文件,修改8M的 flash 如下图示:
按 【S】键 回车/Enter键确认保存,再按【Q】退出。
注意:修改完分区表配置需要保存后,重新编译项目才能生效。
同时,请用户确认flash大小设置与分区表一致(修改flash大小请参考第3节)。

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

注意:如果当前源码版本小于1.0.0,可参考本节说明进行修改。
打开存放 小智AI项目的源码根目录下,建议用文本编辑器打开 partitions.csv 文件。
注意:下图演示路径仅供参考,具体根据用户自己的电脑上源码位置打开到跟目录。
partitions.csv 文件默认是excel打开,建议用 文本编辑器打开。如果文件后缀名没有显示请到
如果文件 partitions.csv 没有显示后缀名,请到浏览器查看中打开,如下图:

(1)partitions.csv 分区表说明

(1)partitions.csv 分区表中设置的大小不能超过开发板上ESP32芯片的flash大小,一般对应开发板型号中的N之后的数字,例如 ESP32-S3-N16R8 芯片模块对应的N后面数字为16,表示flash大小为16M。
(2)partitions.csv分区表一般按开发程序应用的需要,参考按官方推荐的示例和规范进行修改。主要修改 Offset 和Size两列即可,其中Offset可以不配置,系统会自动根据Size计算偏移位置,其中Type和SubType 限定项支持(具体参考乐鑫官方文档),请不要随便修改,否则编译报错。

(2)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 成功后才能生效。
注意:修改后需要重新编译项目 idf.py build ,编译成功后才能生效