33 Commits
Author SHA1 Message Date
3dea6e7f84 Migrate to xiaozhi-fonts 2.0.0 (#2125)
* feat: migrate firmware to xiaozhi-fonts 2.0.0

* fix: restart scrolling subtitles on text change

* docs: add AGENTS.md for project overview, architecture, rules, and commands

- Introduced AGENTS.md to document the XiaoZhi voice-assistant firmware architecture, required rules for development, board configuration process, and validation steps.
- Included detailed sections on project structure, commands for building and testing, and authoritative documentation references.

* feat: finalize glyph push protocol

* fix: remove stale emoji font include

* build: use xiaozhi-fonts 2.0.0

* fix: decouple custom fonts from glyph push

* refactor: improve wake word invocation handling

- Introduced BeginWakeWordInvoke method to streamline the wake word processing flow.
- Updated HandleWakeWordDetectedEvent to utilize the new method, ensuring proper state transitions and scheduling.
- Enhanced error handling to prevent the device from getting stuck in the connecting state.
- Refactored audio channel management to improve responsiveness during wake word detection.

---------

Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-18 21:29:00 +08:00
0f6c435f66 Complete ESP-IDF 6 migration hardening (#2123)
* Complete ESP-IDF 6 migration hardening

* Fix PR variant diff selection

* Allow Git diff in CI container

---------

Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-17 16:32:44 +08:00
3e78cd73bd v2.4.0: Migrate to IDF 6.0 (#2120)
* Migrate board builds to ESP-IDF 6.0.1

* Document upstream IDF 6 CI blockers

* Use IDF 6 patched registry components

* Fix board-specific ESP-IDF 6 build errors

* Fix remaining ESP-IDF 6 board builds

* Document final ESP-IDF 6 matrix results [skip ci]

* update IDF 6 component releases

* rebase IDF 6 migration and use upstream SSCMA

* Enhance audio input management in AudioService

- Introduced AS_EVENT_AUDIO_INPUT_STOP_REQUEST to manage audio input stopping more effectively.
- Updated AudioService::Start() to clear the new stop request event.
- Modified AudioService::AudioInputTask() to handle the stop request and ensure proper input disabling.
- Adjusted AdcPdmAudioCodec::Start() to reflect lazy input opening, ensuring start/stop operations run in the same task.

* Refactor audio codec management and configuration

- Added output_device_opened_ flag to track the state of the output device in Es8388 and Es8389 codecs.
- Updated EnableOutput method to prevent unnecessary device reopening and added mute functionality to manage audio output more effectively.
- Enhanced error handling in Es8311AudioCodec by ensuring proper closure and deletion of the codec device.
- Adjusted sample rates in board configurations for atk-dnesp32s3-box2 to 24000 Hz and introduced AUDIO_CODEC_USE_MCLK for improved clock management.

* Update build configurations and documentation for ESP-IDF 6 compatibility

- Added container specification for the build workflow using espressif/idf:v6.0.1.
- Updated the version of the espressif/esp_video component to ^2.3.0.
- Enhanced documentation to clarify the support status of ESP32-P4 variants, specifying that legacy Rev < 3 variants are excluded from the IDF 6 matrix.
- Adjusted board configurations to include IDF version constraints and necessary SDK configurations for legacy support.
- Improved handling of YUV formats in EspVideo to maintain compatibility with previous versions.

* Implement playback drained event handling in Application

- Added MAIN_EVENT_PLAYBACK_DRAINED to manage playback state transitions.
- Introduced callbacks for playback drained events in AudioService to trigger listening state changes.
- Refactored Application::Run() to handle deferred listening start based on playback queue status.
- Enhanced audio processing logic to prevent audio truncation during state changes.
- Updated related methods to ensure proper wake word detection configuration during listening mode.

* Fix variant selection shell in CI

* Update project version to 2.4.0 and adjust component dependencies

- Bump project version in CMakeLists.txt to 2.4.0.
- Change espressif/esp_video component version to ^2.0.1 in idf_component.yml.
- Modify AUDIO_INPUT_REFERENCE setting in config.h to false for m5stack-core-s3.
- Remove unnecessary infinite loops in xmini_c3_board.cc during initialization.

---------

Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-17 13:41:52 +08:00
Terrence 87f6faee79 Update Chinese and English documentation for custom board setup and MCP protocol
- Added a comprehensive guide for creating custom boards in the XiaoZhi AI project, detailing directory structure, configuration files, and initialization code.
- Introduced a new document explaining the MCP protocol for IoT control, including message formats and interaction flows.
- Updated existing documentation to reflect changes in tool registration and usage examples for the MCP protocol.
- Enhanced README files for better clarity and consistency across languages.
2026-04-17 03:36:37 +08:00
Wang is proudandGitHub f6ca040d19 Change the Bluetooth device name to "Xiaozhi-Blufi" in blufi provisioning. (#1701) 2026-01-28 01:51:42 +08:00
b9617368a0 Add clang-format (#1694)
-文件.clang-format配置基于Google C++风格指南,并做了适当调整
1.使用4空格缩进
2.行宽限制为100字符
3.采用风格的大括号和空格规则

-编写code_style.m
1.针对不同开发平台(windows/Linux/macOs)
2.举例进行整体项目格式化(建议owner择机进行)
3.举例单文件格式化、格式检查
4.举例如何跳过特定代码段的格式化(待补充指定跳过文件格式化)
5.IDE集成说明

Co-authored-by: CaptainBarker <1350989027@qq.com>
2026-01-26 20:42:31 +08:00
Wang is proudandGitHub 3a52761d30 Fixed compilation errors that occurred after enabling blufi (#1677) 2026-01-24 21:55:24 +08:00
Wang is proudandGitHub 213117ded2 BLUFI network configuration supports encryption. (#1603) 2025-12-29 15:04:29 +08:00
神奇bug在哪里andGitHub 0ccdc082b5 feat: BluFi Wi-Fi configuration (#1321)
Signed-off-by: WhereAreBugs <wherearebugs@icloud.com>
2025-12-13 01:43:32 +08:00
XiaoxiaandGitHub b7db68457c v2.1.0: Upgrade esp-wifi-connect to 3.0; New device state machine (#1528)
* Upgrade component version

* update fonts component version

* Handle OTA error code

* Update project version to 2.1.0 and add device state machine implementation

- Upgrade  esp-wifi-connect to 3.0.0, allowing reconfiguring wifi without rebooting
- Introduce device state machine with state change notification in new files
- Remove obsolete device state event files
- Update application logic to utilize new state machine
- Minor adjustments in various board implementations for state handling

* fix compile errors

* Refactor power saving mode implementation to use PowerSaveLevel enumeration

- Updated Application class to replace SetPowerSaveMode with SetPowerSaveLevel, allowing for LOW_POWER and PERFORMANCE settings.
- Modified various board implementations to align with the new power save level structure.
- Ensured consistent handling of power save levels across different board files, enhancing code maintainability and clarity.

* Refactor power save level checks across multiple board implementations

- Updated the condition for power save level checks in various board files to ensure that the power save timer only wakes up when the level is not set to LOW_POWER.
- Improved consistency in handling power save levels, enhancing code clarity and maintainability.

* Refactor EnterWifiConfigMode calls in board implementations

- Updated calls to EnterWifiConfigMode to use the appropriate instance reference (self or board) across multiple board files.
- Improved code consistency and clarity in handling device state during WiFi configuration mode entry.

* Add cellular modem event handling and improve network status updates

- Introduced new network events for cellular modem operations, including detecting, registration errors, and timeouts.
- Enhanced the Application class to handle different network states and update the display status accordingly.
- Refactored Ml307Board to implement a callback mechanism for network events, improving modularity and responsiveness.
- Updated dual_network_board and board headers to support new network event callbacks, ensuring consistent handling across board implementations.

* update esp-wifi-connect version

* Update WiFi configuration tool messages across multiple board implementations to clarify user actions
2025-12-09 09:24:56 +08:00
XiaoxiaandGitHub 911fee2d85 Update README (#1251)
* Upgrade to the latest ml307 component

* update README
2025-10-02 03:29:16 +08:00
香草味的纳西妲喵andGitHub 7cd37427b2 feat: 添加批量转换OGG音频的相关脚本,移动声波配网HTML文件到scripts文件夹下 (#1107)
* feat: 添加批量转换OGG音频的相关脚本,移动声波配网HTML文件到scripts文件夹下

* Rename

* moved README.md
2025-08-22 00:53:18 +08:00
b2e1c5bb5c 添加了一个声波配网的HTML界面 (#996)
* Add HTML page for sonic-based Wi-Fi provisioning

* Add HTML page for sonic-based Wi-Fi provisioning

* Add soundwave provisioning UI and fix bugs

* Add soundwave provisioning UI and fix bugs

* Move sonic_wifi_config.html to the docs folder

---------

Co-authored-by: luyuhan <xiaolumylove@icloud.com>
2025-08-02 14:13:35 +08:00
XiaoxiaandGitHub 3c71558a5f v1.8.0: Audio 代码重构与低功耗优化 (#943)
* Reconstruct Audio Code

* Remove old IoT implementation

* Add MQTT-UDP documentation

* OTA升级失败时,可以继续使用
2025-07-19 22:45:22 +08:00
小鹏andGitHub 7bb12f31f0 增加ottoRobot和electronBot的支持 (#757)
* otto v1.4.0 MCP

1.使用MCP协议控制机器人
2.gif继承lcdDisplay,避免修改lcdDisplay

* otto v1.4.1 gif as components

gif as components

* electronBot v1.1.0 mcp

1.增加electronBot支持
2.mcp协议
3.gif 作为组件
4.display子类

* 规范代码

1.规范代码
2.修复切换主题死机bug
2025-06-05 23:51:49 +08:00
Xiaoxia 16ec95f6d5 Update documentation (An MCP-based Chatbot) 2025-06-04 04:17:49 +08:00
565c54e7d4 MCP协议文档 (#717)
* MCP协议文档

* Update mcp_protocol.md

---------

Co-authored-by: loadingxv <loadingvx@gmail.com>
Co-authored-by: Xiaoxia <terrence@tenclass.com>
2025-05-29 20:12:21 +08:00
Terrence 3404180a77 更新Wi-Fi组件版本,从OTA接口读取Websocket服务器 2025-04-21 15:13:11 +08:00
MOVandGitHub e486d8e91e Add feature cuican (#407)
* fix:Modify the README and add Moji images

* fix: Moji LCD initialization configuration.

* fix: DISPLAY_MIRROR_X false >> true

* fix: Moji GPIO conflict

* fix: Moji GPIO conflict

* add-feature-cuican

* update cuican image

* update config.h
2025-03-26 02:20:30 +08:00
virgilandGitHub 2eb8cac140 Add SenseCAP Watcher (#241)
* feat: add sensecap watcher board.

* feat(sensecap): Add button function.

* fix: fix compilation error.

* style:Modify code style.

* fix: fix wake bug

* fix: fix compilation error & Enable click to toggle state.

* style:  move sensecap_audio_codec files to sensecap board

* fix: Optimize shutdown.
2025-03-04 20:38:53 +08:00
dc118d2f24 在README.md中加入了星智开发板。 修改了星智开发板的分支,对0.96oled、1.54tft屏幕细分了wifi和4g两个版本 (#210)
* Update README.md

* Add files via upload

* Update README.md

* Update README.md

* Update README.md

* 修改了星智的版级配置,对0.96oled、1.54tft屏幕细分了wifi和4g两个版本

* 修改了星知开发板支持,对0.96oled、1.54tft屏幕都细分了4g和wifi两个版本

---------

Co-authored-by: WMnologo <200~limaohui2016@icloud.com>
2025-02-22 02:55:26 +08:00
Terrence d0e3426d9f Update docs 2025-02-20 04:15:56 +08:00
ooxxUandGitHub d44c01a5a3 支持 ESP32 系列开发板 (#116)
* 1. 支持 ESP32系列开发板: DevKitC / NodeMcu-32S / GoouuuESP32 / ESP32 DoIt / ESP-32S
2. 注意:非ESP32-C3 / 非ESP32-S3

* 补图片: M5Stack  Atom Matrix + ES8311 + NS4150B

* 修订 ESP32 系列开发板 面包板 成品图

* 修订: ESP32系列开发板 README.md

* 修订: 移除对首页修改的这部分内容,跳转链接添加至《百科全书》的目录里。
2025-02-01 11:03:49 +08:00
MOVandGitHub fbf90d1b17 fix:Modify the README and add Moji images (#106) 2025-01-24 12:17:49 +08:00
Terrence 10353d7b9f update v1 docs 2025-01-24 04:24:50 +08:00
e1ff22e4d6 Adapt for LilyGO-T-Circle-S3 device (#89)
* Adapt for LilyGO-T-Circle-S3 device

* Adapt for LilyGO-T-Circle-S3 device

* Remove comments and modify the size of the lilygo-t-circle-s3 image

* Modify the code style and format to Google C++

* Modify the code style and format to Google C++

---------

Co-authored-by: Xiaoxia <terrence@tenclass.com>
2025-01-23 20:58:14 +08:00
958517b931 Add esp sparkbot support (#70)
* audio interrupt

* support esp launchpad online download

* Update config.toml

config url

* Update README.md

新窗口打开

* Update config.toml

* Update config.toml

* Update config.toml

* Update README.md

* Update config.toml

* Update config.toml

* Update config.toml

* fix config file and bin name error

fix config file and bin name error

* add Esp Launchpad in readme

* Update config.toml

* update readme

* fit all board online download

* Update config.toml

firmware url to releases

* Update README.md

* Update README_en.md

* Revert "Update config.toml"

This reverts commit 1fe349d5b4.

* Revert "Update README.md"

This reverts commit 8fc7dc8e68.

* Revert "Update README_en.md"

This reverts commit 346ab09b90.

* 增加esp SparkBot

* sparkbot work ok

* Update config.h

* delete esp launchpad

* Update application.cc

* esp-sparkbot picture

* Resolve display io and PA io conflicts on Esp Sparkbot board

* Update CMakeLists.txt

Keep the board type consistent with the folder name.

---------

Co-authored-by: Xiaoxia <terrence@tenclass.com>
2025-01-16 15:09:37 +08:00
Terrence d0081cfb43 add atoms3r echo base 2025-01-16 05:57:53 +08:00
bdbbff302d Added ESP32-S3-Touch-AMOLED-1.8 support (#63)
* Added ESP32-S3-Touch-AMOLED-1.8 support

* Add ESP32-S3-Touch-AMOLED-1.8 support README

* Change the default image format

---------

Co-authored-by: Xiaoxia <terrence@tenclass.com>
2025-01-14 23:49:51 +08:00
Terrence fd00ba9bc0 add opensource boards to README 2025-01-06 04:25:36 +08:00
Terrence 2833142870 update docs 2024-10-25 10:05:01 +08:00
Terrence d26e8d25ff support ML307, new version 0.3.0 2024-10-01 14:16:12 +08:00
Terrence 1093bce089 add usage to readme 2024-09-12 19:53:14 +08:00