Skip to content

Commit b1f2580

Browse files
committed
update README
1 parent acd3f07 commit b1f2580

File tree

12 files changed

+357
-67
lines changed

12 files changed

+357
-67
lines changed

.clangd

Lines changed: 0 additions & 2 deletions
This file was deleted.

README.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
1-
# An MCP-based Chatbot | 一个基于 MCP 的聊天机器人
1+
# An MCP-based Chatbot
22

33
(中文 | [English](README_en.md) | [日本語](README_ja.md)
44

5-
## 视频
5+
## 介绍
66

77
👉 [人类:给 AI 装摄像头 vs AI:当场发现主人三天没洗头【bilibili】](https://www.bilibili.com/video/BV1bpjgzKEhd/)
88

99
👉 [手工打造你的 AI 女友,新手入门教程【bilibili】](https://www.bilibili.com/video/BV1XnmFYLEJN/)
1010

11-
## 介绍
11+
小智 AI 聊天机器人作为一个语音交互入口,利用 Qwen / DeepSeek 等大模型的 AI 能力,通过 MCP 协议实现多端控制。
1212

13-
这是一个由虾哥开源的 ESP32 项目,以 MIT 许可证发布,允许任何人免费使用,或用于商业用途。
13+
<img src="docs/mcp-based-graph.jpg" alt="通过MCP控制万物" width="320">
1414

15-
我们希望通过这个项目,能够帮助大家了解 AI 硬件开发,将当下飞速发展的大语言模型应用到实际的硬件设备中。
15+
### 版本说明
1616

17-
如果你有任何想法或建议,请随时提出 Issues 或加入 QQ 群:1011329060
18-
19-
### 基于 MCP 控制万物
17+
当前 v2 版本与 v1 版本分区表不兼容,所以无法从 v1 版本通过 OTA 升级到 v2 版本。分区表说明参见 [partitions/v2/README.md](partitions/v2/README.md)
2018

21-
小智 AI 聊天机器人作为一个语音交互入口,利用 Qwen / DeepSeek 等大模型的 AI 能力,通过 MCP 协议实现多端控制
19+
使用 v1 版本的所有硬件,可以通过手动烧录固件来升级到 v2 版本
2220

23-
![通过MCP控制万物](docs/mcp-based-graph.jpg)
21+
v1 的稳定版本为 1.9.2,可以通过 `git checkout v1` 来切换到 v1 版本,该分支会持续维护到 2026 年 2 月。
2422

2523
### 已实现功能
2624

@@ -36,6 +34,7 @@
3634
- 支持 ESP32-C3、ESP32-S3、ESP32-P4 芯片平台
3735
- 通过设备端 MCP 实现设备控制(音量、灯光、电机、GPIO 等)
3836
- 通过云端 MCP 扩展大模型能力(智能家居控制、PC桌面操作、知识搜索、邮件收发等)
37+
- 自定义唤醒词、字体、表情与聊天背景,支持网页端在线修改 ([自定义Assets生成器](https://github.com/78/xiaozhi-assets-generator))
3938

4039
## 硬件
4140

@@ -122,7 +121,7 @@
122121

123122
### 开发者文档
124123

125-
- [自定义开发板指南](main/boards/README.md) - 学习如何为小智 AI 创建自定义开发板
124+
- [自定义开发板指南](docs/custom-board.md) - 学习如何为小智 AI 创建自定义开发板
126125
- [MCP 协议物联网控制用法说明](docs/mcp-usage.md) - 了解如何通过 MCP 协议控制物联网设备
127126
- [MCP 协议交互流程](docs/mcp-protocol.md) - 设备端 MCP 协议的实现方式
128127
- [MQTT + UDP 混合通信协议文档](docs/mqtt-udp.md)
@@ -150,6 +149,14 @@
150149
- [78/xiaozhi-sf32](https://github.com/78/xiaozhi-sf32) 思澈科技的蓝牙芯片固件
151150
- [QuecPython/solution-xiaozhiAI](https://github.com/QuecPython/solution-xiaozhiAI) 移远提供的 QuecPython 固件
152151

152+
## 关于项目
153+
154+
这是一个由虾哥开源的 ESP32 项目,以 MIT 许可证发布,允许任何人免费使用,修改或用于商业用途。
155+
156+
我们希望通过这个项目,能够帮助大家了解 AI 硬件开发,将当下飞速发展的大语言模型应用到实际的硬件设备中。
157+
158+
如果你有任何想法或建议,请随时提出 Issues 或加入 QQ 群:1011329060
159+
153160
## Star History
154161

155162
<a href="https://star-history.com/#78/xiaozhi-esp32&Date">

README_en.md

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,23 @@
22

33
(English | [中文](README.md) | [日本語](README_ja.md))
44

5-
## Video
5+
## Introduction
66

77
👉 [Human: Give AI a camera vs AI: Instantly finds out the owner hasn't washed hair for three days【bilibili】](https://www.bilibili.com/video/BV1bpjgzKEhd/)
88

99
👉 [Handcraft your AI girlfriend, beginner's guide【bilibili】](https://www.bilibili.com/video/BV1XnmFYLEJN/)
1010

11-
## Introduction
11+
As a voice interaction entry, the XiaoZhi AI chatbot leverages the AI capabilities of large models like Qwen / DeepSeek, and achieves multi-terminal control via the MCP protocol.
1212

13-
This is an open-source ESP32 project, released under the MIT license, allowing anyone to use it for free, including for commercial purposes.
13+
<img src="docs/mcp-based-graph.jpg" alt="Control everything via MCP" width="320">
1414

15-
We hope this project helps everyone understand AI hardware development and apply rapidly evolving large language models to real hardware devices.
15+
## Version Notes
1616

17-
If you have any ideas or suggestions, please feel free to raise Issues or join the QQ group: 1011329060
18-
19-
### Control Everything with MCP
17+
The current v2 version is incompatible with the v1 partition table, so it is not possible to upgrade from v1 to v2 via OTA. For partition table details, see [partitions/v2/README.md](partitions/v2/README.md).
2018

21-
As a voice interaction entry, the XiaoZhi AI chatbot leverages the AI capabilities of large models like Qwen / DeepSeek, and achieves multi-terminal control via the MCP protocol.
19+
All hardware running v1 can be upgraded to v2 by manually flashing the firmware.
2220

23-
![Control everything via MCP](docs/mcp-based-graph.jpg)
21+
The stable version of v1 is 1.9.2. You can switch to v1 by running `git checkout v1`. The v1 branch will be maintained until February 2026.
2422

2523
### Features Implemented
2624

@@ -36,6 +34,7 @@ As a voice interaction entry, the XiaoZhi AI chatbot leverages the AI capabiliti
3634
- Supports ESP32-C3, ESP32-S3, ESP32-P4 chip platforms
3735
- Device-side MCP for device control (Speaker, LED, Servo, GPIO, etc.)
3836
- Cloud-side MCP to extend large model capabilities (smart home control, PC desktop operation, knowledge search, email, etc.)
37+
- Customizable wake words, fonts, emojis, and chat backgrounds with online web-based editing ([Custom Assets Generator](https://github.com/78/xiaozhi-assets-generator))
3938

4039
## Hardware
4140

@@ -122,9 +121,10 @@ The firmware connects to the official [xiaozhi.me](https://xiaozhi.me) server by
122121

123122
### Developer Documentation
124123

125-
- [Custom Board Guide](main/boards/README.md) - Learn how to create custom boards for XiaoZhi AI
124+
- [Custom Board Guide](docs/custom-board.md) - Learn how to create custom boards for XiaoZhi AI
126125
- [MCP Protocol IoT Control Usage](docs/mcp-usage.md) - Learn how to control IoT devices via MCP protocol
127126
- [MCP Protocol Interaction Flow](docs/mcp-protocol.md) - Device-side MCP protocol implementation
127+
- [MQTT + UDP Hybrid Communication Protocol Document](docs/mqtt-udp.md)
128128
- [A detailed WebSocket communication protocol document](docs/websocket.md)
129129

130130
## Large Model Configuration
@@ -145,6 +145,21 @@ Other client projects using the XiaoZhi communication protocol:
145145

146146
- [huangjunsen0406/py-xiaozhi](https://github.com/huangjunsen0406/py-xiaozhi) Python client
147147
- [TOM88812/xiaozhi-android-client](https://github.com/TOM88812/xiaozhi-android-client) Android client
148+
- [100askTeam/xiaozhi-linux](http://github.com/100askTeam/xiaozhi-linux) Linux client by 100ask
149+
- [78/xiaozhi-sf32](https://github.com/78/xiaozhi-sf32) Bluetooth chip firmware by Sichuan
150+
- [QuecPython/solution-xiaozhiAI](https://github.com/QuecPython/solution-xiaozhiAI) QuecPython firmware by Quectel
151+
152+
Custom Assets Tools:
153+
154+
- [78/xiaozhi-assets-generator](https://github.com/78/xiaozhi-assets-generator) Custom Assets Generator (Wake words, fonts, emojis, backgrounds)
155+
156+
## About the Project
157+
158+
This is an open-source ESP32 project, released under the MIT license, allowing anyone to use it for free, including for commercial purposes.
159+
160+
We hope this project helps everyone understand AI hardware development and apply rapidly evolving large language models to real hardware devices.
161+
162+
If you have any ideas or suggestions, please feel free to raise Issues or join the QQ group: 1011329060
148163

149164
## Star History
150165

README_ja.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,23 @@
22

33
(日本語 | [中文](README.md) | [English](README_en.md)
44

5-
## 動画
5+
## はじめに
66

77
👉 [人間:AIにカメラを装着 vs AI:その場で飼い主が3日間髪を洗っていないことを発見【bilibili】](https://www.bilibili.com/video/BV1bpjgzKEhd/)
88

99
👉 [手作りでAIガールフレンドを作る、初心者入門チュートリアル【bilibili】](https://www.bilibili.com/video/BV1XnmFYLEJN/)
1010

11-
## イントロダクション
11+
シャオジーAIチャットボットは音声インタラクションの入口として、Qwen / DeepSeekなどの大規模モデルのAI能力を活用し、MCPプロトコルを通じてマルチエンド制御を実現します。
1212

13-
これはエビ兄さんがオープンソースで公開しているESP32プロジェクトで、MITライセンスのもと、誰でも無料で、商用利用も可能です。
13+
<img src="docs/mcp-based-graph.jpg" alt="MCPであらゆるものを制御" width="320">
1414

15-
このプロジェクトを通じて、AIハードウェア開発を理解し、急速に進化する大規模言語モデルを実際のハードウェアデバイスに応用できるようになることを目指しています。
15+
## バージョンノート
1616

17-
ご意見やご提案があれば、いつでもIssueを提出するか、QQグループ:1011329060 にご参加ください
17+
現在のv2バージョンはv1パーティションテーブルと互換性がないため、v1からv2へOTAでアップグレードすることはできません。パーティションテーブルの詳細については、[partitions/v2/README.md](partitions/v2/README.md)をご参照ください
1818

19-
### MCPであらゆるものを制御
19+
v1を実行しているすべてのハードウェアは、ファームウェアを手動で書き込むことでv2にアップグレードできます。
2020

21-
シャオジーAIチャットボットは音声インタラクションの入口として、Qwen / DeepSeekなどの大規模モデルのAI能力を活用し、MCPプロトコルを通じてマルチエンド制御を実現します。
22-
23-
![MCPであらゆるものを制御](docs/mcp-based-graph.jpg)
21+
v1の安定版は1.9.2です。`git checkout v1`でv1に切り替えることができます。v1ブランチは2026年2月まで継続的にメンテナンスされます。
2422

2523
### 実装済み機能
2624

@@ -36,6 +34,7 @@
3634
- ESP32-C3、ESP32-S3、ESP32-P4チッププラットフォーム対応
3735
- デバイス側MCPによるデバイス制御(音量・明るさ調整、アクション制御など)
3836
- クラウド側MCPで大規模モデル能力を拡張(スマートホーム制御、PCデスクトップ操作、知識検索、メール送受信など)
37+
- カスタマイズ可能なウェイクワード、フォント、絵文字、チャット背景、オンラインWeb編集に対応 ([カスタムアセットジェネレーター](https://github.com/78/xiaozhi-assets-generator))
3938

4039
## ハードウェア
4140

@@ -122,9 +121,10 @@ Feishuドキュメントチュートリアルをご覧ください:
122121

123122
### 開発者ドキュメント
124123

125-
- [カスタム開発ボードガイド](main/boards/README.md) - シャオジーAI用のカスタム開発ボード作成方法
124+
- [カスタム開発ボードガイド](docs/custom-board.md) - シャオジーAI用のカスタム開発ボード作成方法
126125
- [MCPプロトコルIoT制御使用法](docs/mcp-usage.md) - MCPプロトコルでIoTデバイスを制御する方法
127126
- [MCPプロトコルインタラクションフロー](docs/mcp-protocol.md) - デバイス側MCPプロトコルの実装方法
127+
- [MQTT + UDP ハイブリッド通信プロトコルドキュメント](docs/mqtt-udp.md)
128128
- [詳細なWebSocket通信プロトコルドキュメント](docs/websocket.md)
129129

130130
## 大規模モデル設定
@@ -145,6 +145,17 @@ Feishuドキュメントチュートリアルをご覧ください:
145145

146146
- [huangjunsen0406/py-xiaozhi](https://github.com/huangjunsen0406/py-xiaozhi) Pythonクライアント
147147
- [TOM88812/xiaozhi-android-client](https://github.com/TOM88812/xiaozhi-android-client) Androidクライアント
148+
- [100askTeam/xiaozhi-linux](http://github.com/100askTeam/xiaozhi-linux) 百問科技提供のLinuxクライアント
149+
- [78/xiaozhi-sf32](https://github.com/78/xiaozhi-sf32) 思澈科技のBluetoothチップファームウェア
150+
- [QuecPython/solution-xiaozhiAI](https://github.com/QuecPython/solution-xiaozhiAI) 移遠提供のQuecPythonファームウェア
151+
152+
## プロジェクトについて
153+
154+
これはエビ兄さんがオープンソースで公開しているESP32プロジェクトで、MITライセンスのもと、誰でも無料で、商用利用も可能です。
155+
156+
このプロジェクトを通じて、AIハードウェア開発を理解し、急速に進化する大規模言語モデルを実際のハードウェアデバイスに応用できるようになることを目指しています。
157+
158+
ご意見やご提案があれば、いつでもIssueを提出するか、QQグループ:1011329060 にご参加ください。
148159

149160
## スター履歴
150161

main/boards/README.md renamed to docs/custom-board.md

Lines changed: 132 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
### 1. 创建新的开发板目录
2323

24-
首先在`boards/`目录下创建一个新的目录,例如`my-custom-board/`
24+
首先在`boards/`目录下创建一个新的目录,命名方式应使用 `[品牌名]-[开发板类型]` 的形式,例如 `m5stack-tab5`
2525

2626
```bash
2727
mkdir main/boards/my-custom-board
@@ -87,24 +87,51 @@ mkdir main/boards/my-custom-board
8787

8888
#### config.json
8989

90-
`config.json`中定义编译配置:
90+
`config.json`中定义编译配置,这个文件用于 `scripts/release.py` 脚本自动化编译:
9191

9292
```json
9393
{
94-
"target": "esp32s3", // 目标芯片型号: esp32, esp32s3, esp32c3等
94+
"target": "esp32s3", // 目标芯片型号: esp32, esp32s3, esp32c3, esp32c6, esp32p4等
9595
"builds": [
9696
{
97-
"name": "my-custom-board", // 开发板名称
97+
"name": "my-custom-board", // 开发板名称,用于生成固件包
9898
"sdkconfig_append": [
99-
// 额外需要的编译配置
99+
// 特别 Flash 大小配置
100100
"CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y",
101+
// 特别分区表配置
101102
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v2/8m.csv\""
102103
]
103104
}
104105
]
105106
}
106107
```
107108

109+
**配置项说明:**
110+
- `target`: 目标芯片型号,必须与硬件匹配
111+
- `name`: 编译输出的固件包名称,建议与目录名一致
112+
- `sdkconfig_append`: 额外的 sdkconfig 配置项数组,会追加到默认配置中
113+
114+
**常用的 sdkconfig_append 配置:**
115+
```json
116+
// Flash 大小
117+
"CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y" // 4MB Flash
118+
"CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y" // 8MB Flash
119+
"CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y" // 16MB Flash
120+
121+
// 分区表
122+
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v2/4m.csv\"" // 4MB 分区表
123+
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v2/8m.csv\"" // 8MB 分区表
124+
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v2/16m.csv\"" // 16MB 分区表
125+
126+
// 语言配置
127+
"CONFIG_LANGUAGE_EN_US=y" // 英语
128+
"CONFIG_LANGUAGE_ZH_CN=y" // 简体中文
129+
130+
// 唤醒词配置
131+
"CONFIG_USE_DEVICE_AEC=y" // 启用设备端 AEC
132+
"CONFIG_WAKE_WORD_DISABLED=y" // 禁用唤醒词
133+
```
134+
108135
### 3. 编写板级初始化代码
109136

110137
创建一个`my_custom_board.cc`文件,实现开发板的所有初始化逻辑。
@@ -260,7 +287,106 @@ public:
260287
DECLARE_BOARD(MyCustomBoard);
261288
```
262289
263-
### 4. 创建README.md
290+
### 4. 添加构建系统配置
291+
292+
#### 在 Kconfig.projbuild 中添加开发板选项
293+
294+
打开 `main/Kconfig.projbuild` 文件,在 `choice BOARD_TYPE` 部分添加新的开发板配置项:
295+
296+
```kconfig
297+
choice BOARD_TYPE
298+
prompt "Board Type"
299+
default BOARD_TYPE_BREAD_COMPACT_WIFI
300+
help
301+
Board type. 开发板类型
302+
303+
# ... 其他开发板选项 ...
304+
305+
config BOARD_TYPE_MY_CUSTOM_BOARD
306+
bool "My Custom Board (我的自定义开发板)"
307+
depends on IDF_TARGET_ESP32S3 # 根据你的目标芯片修改
308+
endchoice
309+
```
310+
311+
**注意事项:**
312+
- `BOARD_TYPE_MY_CUSTOM_BOARD` 是配置项名称,需要全大写,使用下划线分隔
313+
- `depends on` 指定了目标芯片类型(如 `IDF_TARGET_ESP32S3``IDF_TARGET_ESP32C3` 等)
314+
- 描述文字可以使用中英文
315+
316+
#### 在 CMakeLists.txt 中添加开发板配置
317+
318+
打开 `main/CMakeLists.txt` 文件,在开发板类型判断部分添加新的配置:
319+
320+
```cmake
321+
# 在 elseif 链中添加你的开发板配置
322+
elseif(CONFIG_BOARD_TYPE_MY_CUSTOM_BOARD)
323+
set(BOARD_TYPE "my-custom-board") # 与目录名一致
324+
set(BUILTIN_TEXT_FONT font_puhui_basic_20_4) # 根据屏幕大小选择合适的字体
325+
set(BUILTIN_ICON_FONT font_awesome_20_4)
326+
set(DEFAULT_EMOJI_COLLECTION twemoji_64) # 可选,如果需要表情显示
327+
endif()
328+
```
329+
330+
**字体和表情配置说明:**
331+
332+
根据屏幕分辨率选择合适的字体大小:
333+
- 小屏幕(128x64 OLED):`font_puhui_basic_14_1` / `font_awesome_14_1`
334+
- 中小屏幕(240x240):`font_puhui_basic_16_4` / `font_awesome_16_4`
335+
- 中等屏幕(240x320):`font_puhui_basic_20_4` / `font_awesome_20_4`
336+
- 大屏幕(480x320+):`font_puhui_basic_30_4` / `font_awesome_30_4`
337+
338+
表情集合选项:
339+
- `twemoji_32` - 32x32 像素表情(小屏幕)
340+
- `twemoji_64` - 64x64 像素表情(大屏幕)
341+
342+
### 5. 配置和编译
343+
344+
#### 方法一:使用 idf.py 手动配置
345+
346+
1. **设置目标芯片**(首次配置或更换芯片时):
347+
```bash
348+
# 对于 ESP32-S3
349+
idf.py set-target esp32s3
350+
351+
# 对于 ESP32-C3
352+
idf.py set-target esp32c3
353+
354+
# 对于 ESP32
355+
idf.py set-target esp32
356+
```
357+
358+
2. **清理旧配置**
359+
```bash
360+
idf.py fullclean
361+
```
362+
363+
3. **进入配置菜单**
364+
```bash
365+
idf.py menuconfig
366+
```
367+
368+
在菜单中导航到:`Xiaozhi Assistant` -> `Board Type`,选择你的自定义开发板。
369+
370+
4. **编译和烧录**
371+
```bash
372+
idf.py build
373+
idf.py flash monitor
374+
```
375+
376+
#### 方法二:使用 release.py 脚本(推荐)
377+
378+
如果你的开发板目录下有 `config.json` 文件,可以使用此脚本自动完成配置和编译:
379+
380+
```bash
381+
python scripts/release.py my-custom-board
382+
```
383+
384+
此脚本会自动:
385+
- 读取 `config.json` 中的 `target` 配置并设置目标芯片
386+
- 应用 `sdkconfig_append` 中的编译选项
387+
- 完成编译并打包固件
388+
389+
### 6. 创建README.md
264390

265391
在README.md中说明开发板的特性、硬件要求、编译和烧录步骤:
266392

0 commit comments

Comments
 (0)