* Fix: uart-uhci compiling errors
* Enhance Esp32Camera functionality by adding optional byte swapping for RGB565 format. Introduce SetSwapBytes method to enable/disable byte order swapping, and update Capture method to utilize an encode buffer for improved memory management and performance during image processing.
* Update esp-ml307 dependency version to ~3.6.0 in idf_component.yml
* Update .gitignore to include 'dist/' directory, add ml307 and dual_network_board source files to CMakeLists.txt, and update esp-ml307 dependency version to ~3.6.2 in idf_component.yml. Refactor CompactWifiBoard and CompactWifiBoardLCD classes to inherit from WifiBoard instead of DualNetworkBoard, simplifying network handling logic.
- Introduced ContinueOpenAudioChannel and ContinueWakeWordInvoke methods to streamline audio channel management and wake word processing.
- Updated HandleToggleChatEvent and HandleWakeWordDetectedEvent to utilize scheduling for state changes, improving UI responsiveness.
- Simplified logic for setting listening modes based on audio channel state, enhancing code clarity and maintainability.
* Enhance memory management in asset download and OTA processes by replacing static buffer allocations with dynamic memory allocation using heap capabilities. Update SPIRAM configuration values for improved memory usage. Add logging for error handling in buffer allocation failures. Introduce a new parameter in CloseAudioChannel to control goodbye message sending in MQTT and WebSocket protocols.
* Update component versions in idf_component.yml and refactor GIF decoder functions for improved performance. Bump versions for audio effects, audio codec, LED strip, and other dependencies. Change GIF read and seek functions to inline for optimization.
* Update language files to include new phrases for flight mode and connection status across multiple locales. Added translations for "FLIGHT_MODE_ON", "FLIGHT_MODE_OFF", "CONNECTION_SUCCESSFUL", and "MODEM_INIT_ERROR" in various languages, enhancing user experience and localization support.
* fix wechat display
* 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
* fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug
* 1.增加robot舵机初始位置校准
2.fix(mcp_sever) 超出范围异常捕获类型 bug
* refactor: Update Electron and Otto emoji display implementations
- Removed GIF selection from Kconfig for Electron and Otto boards.
- Updated Electron and Otto bot versions to 2.0.4 in their respective config files.
- Refactored emoji display classes to utilize EmojiCollection for managing emojis.
- Enhanced chat label setup and status display functionality in both classes.
- Cleaned up unused code and improved initialization logging for emoji displays.
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* refactor: Update Otto emoji display configurations and functionalities
- Changed chat label text mode to circular scrolling for both Otto and Electron emoji displays.
- Bumped Otto robot version to 2.0.5 in the configuration file.
- Added new actions for Otto robot including Sit, WhirlwindLeg, Fitness, Greeting, Shy, RadioCalisthenics, MagicCircle, and Showcase.
- Enhanced servo sequence handling and added support for executing custom servo sequences.
- Improved logging and error handling for servo sequence execution.
* refactor: Update chat label long mode for Electron and Otto emoji displays
- Changed chat label text mode from wrap to circular scrolling for both Electron and Otto emoji displays.
- Improved consistency in chat label setup across both implementations.
* Update Otto robot README with new actions and parameters
* Update Otto controller parameters for oscillation settings
- Changed default oscillation period from 500ms to 300ms.
- Increased default steps from 5.0 to 8.0.
- Updated default amplitude from 20 degrees to 0 degrees.
- Enhanced documentation with new examples for oscillation modes and sequences.
* Fix default amplitude initialization in Otto controller to use a single zero instead of two digits.
* chore: update txp666/otto-emoji-gif-component version to 1.0.3 in idf_component.yml
* Refactor Otto controller
- Consolidated movement actions into a unified tool for the Otto robot, allowing for a single action command with various parameters.
- Removed individual movement tools (walk, turn, jump, etc.) and replaced them with a more flexible action system.
* Enhance Otto robot functionality by adding WebSocket control server and IP address retrieval feature. Updated config to support WebSocket, and revised README to include new control options and usage examples.
* Add camera support for Otto Robot board
- Introduced configuration option to enable the Otto Robot camera in Kconfig.
- Updated config.h to define camera-related GPIO pins and settings.
- Modified config.json to include camera configuration.
- Enhanced otto_robot.cc to initialize I2C and camera components when the camera is enabled.
- Adjusted power_manager.h to manage battery updates during camera operations.
- Removed unused SetupChatLabel method from OttoEmojiDisplay class.
* Refactor Otto Robot configuration and initialization
- Removed the camera configuration option from Kconfig and related code.
- Introduced a new HardwareConfig struct to encapsulate hardware pin definitions and settings.
- Updated config.h to define camera and non-camera configurations using the new struct.
- Refactored otto_controller.cc and otto_robot.cc to utilize the HardwareConfig struct for initialization.
- Enhanced camera detection and initialization logic based on hardware version.
- Improved audio codec initialization based on configuration settings.
* Refactor emoji initialization for Electron and Otto boards to use Assets system
- Removed direct emoji initialization from `InitializeElectronEmojis` and `InitializeOttoEmojis` methods, delegating the responsibility to the Assets system.
- Updated `CMakeLists.txt` to set `DEFAULT_EMOJI_COLLECTION` to `otto-gif` for both boards.
- Enhanced `build_default_assets.py` to support alias mapping for Otto GIF emojis.
- Updated `idf_component.yml` to bump `otto-emoji-gif-component` version to `^1.0.5` for improved functionality.
* Initial plan
* Fix LVGL object deletion issue in SetChatMessage
- Refresh child_count after deleting first_child to avoid using stale count
- Add lv_obj_is_valid() checks before accessing deleted objects
- Prevent duplicate deletion by refreshing child_count before system message deletion
- Ensures last_child validation before scrolling to it
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
* Address code review feedback on LVGL object deletion fix
- Move last_child retrieval after deletion to avoid stale pointer
- Add child_count > 0 check before scrolling to prevent edge case issues
- Add lv_obj_is_valid() check for last_bubble for consistency
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
* Final review: LVGL object deletion fix complete
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
* Remove std::thread wrappers in display callbacks to fix thread safety
Remove detached threads that were calling SetChatMessage from download/upgrade
progress callbacks. The DisplayLockGuard mutex already provides thread safety,
so we can call display methods directly from the callback thread without
spawning additional threads, which were causing race conditions.
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
* Use Application::Schedule() for display updates in callbacks
Instead of calling SetChatMessage directly from download/upgrade progress
callbacks, queue the updates using Application::Schedule(). This prevents
blocking the network receive task and avoids potential UART FIFO overflow
issues with 4G modems. The scheduled callbacks execute in the main task
thread, maintaining proper thread safety.
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
* Add support for RNDIS board and enhance camera initialization
- Included rndis_board.cc in the build for ESP32S3 and ESP32P4 targets.
- Updated camera initialization logic in esp32s3_korvo2_v3_board.cc and esp32s3_korvo2_v3_board.cc to use a more structured camera_config_t setup.
- Improved code readability by refining comments and formatting in the camera initialization functions.
* Remove outdated camera configuration options from esp32s3-korvo2-v3-rndis config.json to streamline setup and improve clarity.
* Update IDF version in build configuration and component dependencies to v5.5.2 for improved compatibility.
* update discord links
---------
Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
* Update project version to 2.2.1 and refactor camera component handling
- Incremented project version from 2.2.0 to 2.2.1 in CMakeLists.txt.
- Removed legacy esp32_camera component and replaced it with esp_video for ESP32-S3 and ESP32-P4 boards.
- Updated board implementations to utilize the new esp_video component, ensuring compatibility and improved functionality.
- Cleaned up Kconfig options related to camera selection, streamlining the configuration process.
- Enhanced camera initialization logic across various board files to support the new component structure.
* Refactor camera handling in AtomS3R CAM/M12 EchoBase board
- Replaced the legacy EspVideo component with the new Esp32Camera class for improved camera functionality.
- Updated camera initialization logic to utilize a more structured configuration approach, enhancing clarity and maintainability.
- Removed outdated comments and code related to the previous camera implementation in the README file.
* Update camera configuration for atoms3r-cam-m12-echo-base
- Removed outdated camera configuration options from config.json to streamline the setup.
- Retained essential partition table configuration for improved clarity.
* Enhance Esp32Camera functionality and memory management
- Added esp_timer.h for improved timing functionality.
- Streamlined camera initialization by removing redundant frame buffer setup and logging.
- Improved memory allocation for JPEG encoding and added error handling for unsupported pixel formats.
- Updated comments for clarity and consistency, ensuring better understanding of the code flow.
Introduces a new esp32s3_camera implementation for ESP32-S3 boards using the esp_camera component, with conditional compilation and Kconfig options to select between esp_camera and esp_video. Updates board initialization code and config files to use the new camera class where appropriate, and adjusts build system and dependencies to support both camera components on ESP32-S3 and ESP32-P4 targets.
* Refactor application error handling and improve network task logic
- Updated error handling for modem initialization failure in Application::Initialize().
- Added new error message for modem initialization in English and Chinese language files.
- Simplified lambda captures in NetworkTask to avoid unnecessary references.
- Set main task priority in Application::Run() for better performance.
* Add support for Bread Compact NT26 board
- Introduced new board configuration for Bread Compact NT26 in CMakeLists.txt and Kconfig.
- Added board-specific implementation in compact_nt26_board.cc and nt26_board.cc.
- Created configuration files for NT26, including config.h and config.json.
- Updated dependencies in idf_component.yml to include uart-eth-modem.
- Translated error messages in config.h for OLED display type selection to English.
- Enhanced display and button initialization logic for NT26 board.
* Update project version and improve build configuration
- Updated project version from 2.1.0 to 2.2.0 in CMakeLists.txt.
- Enabled minimal build configuration to include only essential components.
- Updated README files to replace QQ group links with Discord links for community engagement.
* Update Bread Compact NT26 board configuration name in config.json
* fix compile errors
* Update uart-eth-modem dependency format in idf_component.yml
* fix esp32 compiling errors
* Update CMakeLists.txt to change component dependency from REQUIRES to PRIV_REQUIRES for esp_pm, esp_psram, and esp_driver_gpio
* Refactor CMakeLists.txt to explicitly list board common source files and update include directories for better clarity and organization.
* Add esp_driver_ppa as a dependency in CMakeLists.txt
* content: New support for third-party boards: waveshare ESP32-C6-Touch-AMOLED-1.8
* content: Change the TAG of ESP32-C6-Touch-AMOLED-1.8
* content: Change the config.json of ESP32-C6-Touch-AMOLED-1.8
Introduces PowerManager and integrates it into the ESP32S3-Korvo2-V3 board class to monitor battery level, charging status, and manage power save mode. Adds power_manager.h with battery ADC reading, calibration, and event callbacks. Updates board initialization to support power management and power save timer functionality.
Added camera-related sdkconfig options to esp32s3-korvo2-v3 and kevin-sp-v4-dev config.json files. Updated esp32s3_korvo2_v3_board.cc to implement button actions for WiFi config and chat state toggling. Refactored kevin-sp-v4_board.cc to unify I2C bus usage for codec and camera, and adjusted SCCB initialization logic.
* Enhance audio feedback mechanism by introducing a flag to play a popup sound after transitioning to listening mode. Update Schedule method to accept rvalue references for callbacks. Bump esp-ml307 component version to 3.5.3. Adjust signal strength thresholds in Ml307Board for better accuracy.
* Update esp-wifi-connect component version to 3.0.2 in idf_component.yml
* Adjust Wi-Fi signal strength thresholds in WifiBoard for improved accuracy in network state icon representation.
* 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
* 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
* fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug
* 1.增加robot舵机初始位置校准
2.fix(mcp_sever) 超出范围异常捕获类型 bug
* refactor: Update Electron and Otto emoji display implementations
- Removed GIF selection from Kconfig for Electron and Otto boards.
- Updated Electron and Otto bot versions to 2.0.4 in their respective config files.
- Refactored emoji display classes to utilize EmojiCollection for managing emojis.
- Enhanced chat label setup and status display functionality in both classes.
- Cleaned up unused code and improved initialization logging for emoji displays.
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* refactor: Update Otto emoji display configurations and functionalities
- Changed chat label text mode to circular scrolling for both Otto and Electron emoji displays.
- Bumped Otto robot version to 2.0.5 in the configuration file.
- Added new actions for Otto robot including Sit, WhirlwindLeg, Fitness, Greeting, Shy, RadioCalisthenics, MagicCircle, and Showcase.
- Enhanced servo sequence handling and added support for executing custom servo sequences.
- Improved logging and error handling for servo sequence execution.
* refactor: Update chat label long mode for Electron and Otto emoji displays
- Changed chat label text mode from wrap to circular scrolling for both Electron and Otto emoji displays.
- Improved consistency in chat label setup across both implementations.
* Update Otto robot README with new actions and parameters
* Update Otto controller parameters for oscillation settings
- Changed default oscillation period from 500ms to 300ms.
- Increased default steps from 5.0 to 8.0.
- Updated default amplitude from 20 degrees to 0 degrees.
- Enhanced documentation with new examples for oscillation modes and sequences.
* Fix default amplitude initialization in Otto controller to use a single zero instead of two digits.
* chore: update txp666/otto-emoji-gif-component version to 1.0.3 in idf_component.yml
* Refactor Otto controller
- Consolidated movement actions into a unified tool for the Otto robot, allowing for a single action command with various parameters.
- Removed individual movement tools (walk, turn, jump, etc.) and replaced them with a more flexible action system.
* Enhance Otto robot functionality by adding WebSocket control server and IP address retrieval feature. Updated config to support WebSocket, and revised README to include new control options and usage examples.
* Add camera support for Otto Robot board
- Introduced configuration option to enable the Otto Robot camera in Kconfig.
- Updated config.h to define camera-related GPIO pins and settings.
- Modified config.json to include camera configuration.
- Enhanced otto_robot.cc to initialize I2C and camera components when the camera is enabled.
- Adjusted power_manager.h to manage battery updates during camera operations.
- Removed unused SetupChatLabel method from OttoEmojiDisplay class.
* Refactor Otto Robot configuration and initialization
- Removed the camera configuration option from Kconfig and related code.
- Introduced a new HardwareConfig struct to encapsulate hardware pin definitions and settings.
- Updated config.h to define camera and non-camera configurations using the new struct.
- Refactored otto_controller.cc and otto_robot.cc to utilize the HardwareConfig struct for initialization.
- Enhanced camera detection and initialization logic based on hardware version.
- Improved audio codec initialization based on configuration settings.
* 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
* fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug
* 1.增加robot舵机初始位置校准
2.fix(mcp_sever) 超出范围异常捕获类型 bug
* refactor: Update Electron and Otto emoji display implementations
- Removed GIF selection from Kconfig for Electron and Otto boards.
- Updated Electron and Otto bot versions to 2.0.4 in their respective config files.
- Refactored emoji display classes to utilize EmojiCollection for managing emojis.
- Enhanced chat label setup and status display functionality in both classes.
- Cleaned up unused code and improved initialization logging for emoji displays.
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* refactor: Update Otto emoji display configurations and functionalities
- Changed chat label text mode to circular scrolling for both Otto and Electron emoji displays.
- Bumped Otto robot version to 2.0.5 in the configuration file.
- Added new actions for Otto robot including Sit, WhirlwindLeg, Fitness, Greeting, Shy, RadioCalisthenics, MagicCircle, and Showcase.
- Enhanced servo sequence handling and added support for executing custom servo sequences.
- Improved logging and error handling for servo sequence execution.
* refactor: Update chat label long mode for Electron and Otto emoji displays
- Changed chat label text mode from wrap to circular scrolling for both Electron and Otto emoji displays.
- Improved consistency in chat label setup across both implementations.
* Update Otto robot README with new actions and parameters
* Update Otto controller parameters for oscillation settings
- Changed default oscillation period from 500ms to 300ms.
- Increased default steps from 5.0 to 8.0.
- Updated default amplitude from 20 degrees to 0 degrees.
- Enhanced documentation with new examples for oscillation modes and sequences.
* Fix default amplitude initialization in Otto controller to use a single zero instead of two digits.
* chore: update txp666/otto-emoji-gif-component version to 1.0.3 in idf_component.yml
* Refactor Otto controller
- Consolidated movement actions into a unified tool for the Otto robot, allowing for a single action command with various parameters.
- Removed individual movement tools (walk, turn, jump, etc.) and replaced them with a more flexible action system.
* Enhance Otto robot functionality by adding WebSocket control server and IP address retrieval feature. Updated config to support WebSocket, and revised README to include new control options and usage examples.
* Add camera support for Otto Robot board
- Introduced configuration option to enable the Otto Robot camera in Kconfig.
- Updated config.h to define camera-related GPIO pins and settings.
- Modified config.json to include camera configuration.
- Enhanced otto_robot.cc to initialize I2C and camera components when the camera is enabled.
- Adjusted power_manager.h to manage battery updates during camera operations.
- Removed unused SetupChatLabel method from OttoEmojiDisplay class.
* Added new board for hu-087 smart AI watch
* Added a README with link to prouct on Aliexpress
* Trying to control chatbot mode instead of listening state
* Removed the esp32-s3 prefix for the board
* Changed board name to match folder naming
* Fixed formating and long URL
* Fixed typo in README.md
* feat: add keepalive check for Himax client and handle restart
* fix: adjust layout and positioning for top and bottom bars
* fix: fix other param restoring default when modifying one param .
* Upgrade component version
* update fonts component version
* change lcd display layout from grids to layers
* Update English README as default
* Handle OTA error code
* 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
* fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug
* 1.增加robot舵机初始位置校准
2.fix(mcp_sever) 超出范围异常捕获类型 bug
* refactor: Update Electron and Otto emoji display implementations
- Removed GIF selection from Kconfig for Electron and Otto boards.
- Updated Electron and Otto bot versions to 2.0.4 in their respective config files.
- Refactored emoji display classes to utilize EmojiCollection for managing emojis.
- Enhanced chat label setup and status display functionality in both classes.
- Cleaned up unused code and improved initialization logging for emoji displays.
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* refactor: Update Otto emoji display configurations and functionalities
- Changed chat label text mode to circular scrolling for both Otto and Electron emoji displays.
- Bumped Otto robot version to 2.0.5 in the configuration file.
- Added new actions for Otto robot including Sit, WhirlwindLeg, Fitness, Greeting, Shy, RadioCalisthenics, MagicCircle, and Showcase.
- Enhanced servo sequence handling and added support for executing custom servo sequences.
- Improved logging and error handling for servo sequence execution.
* refactor: Update chat label long mode for Electron and Otto emoji displays
- Changed chat label text mode from wrap to circular scrolling for both Electron and Otto emoji displays.
- Improved consistency in chat label setup across both implementations.
* Update Otto robot README with new actions and parameters
* Update Otto controller parameters for oscillation settings
- Changed default oscillation period from 500ms to 300ms.
- Increased default steps from 5.0 to 8.0.
- Updated default amplitude from 20 degrees to 0 degrees.
- Enhanced documentation with new examples for oscillation modes and sequences.
* Fix default amplitude initialization in Otto controller to use a single zero instead of two digits.
* chore: update txp666/otto-emoji-gif-component version to 1.0.3 in idf_component.yml
* Refactor Otto controller
- Consolidated movement actions into a unified tool for the Otto robot, allowing for a single action command with various parameters.
- Removed individual movement tools (walk, turn, jump, etc.) and replaced them with a more flexible action system.
* Enhance Otto robot functionality by adding WebSocket control server and IP address retrieval feature. Updated config to support WebSocket, and revised README to include new control options and usage examples.
* Add support for the Waveshare ESP32-C6-Touch-AMOLED-2.06 third-party board
* Fix the known issues
* Fix the name
* Update screen brightness
* readme content error correction
* Update the default wake-up word configuration for the ESP32-P4 chip
* Refactor DSI bus configuration for LCD panel
* Update MIPI DSI bus configuration for LCD
* Update MIPI DSI bus configuration structure
* Cancel redundant configuration
* Cancel redundant configuration
* feat: add support for ESP32-P4-Function-EV-Board with configuration and display handling
* detect wake word model from index.json
* update wait time before entering wifi configure mode
* feat: Enhance ESP32-P4 Function EV Board support with LCD and touch initialization
* feat: Update ESP32-P4 Function EV Board configuration for improved touch and SD card support
* feat: add touch I2C configuration and improve initialization structure
* Remove ESP hosted configuration from defaults
Removed ESP hosted configuration options.
* chore: update documentation for improved clarity
* refactor: remove obsolete files for ESP32-P4-Function-EV-Board and add updated configurations
* refactor: reintroduce ESP32-P4-Function-EV-Board implementation with updated configurations
* refactor: restore esp32_p4_function_ev_board dependency with updated version
* Remove ESP-P4-Function-EV-Board configuration and update README with detailed features; add SD card, camera, and font initialization in esp-p4-function-ev-board.cc
* Update main/boards/esp-p4-function-ev-board/esp-p4-function-ev-board.cc
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update main/boards/esp-p4-function-ev-board/esp-p4-function-ev-board.cc
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Enhance camera initialization in ESP-P4-Function-EV-Board; add fallback configuration for direct camera setup and update README for clarity
* Update clock source for MIPI DSI configuration in ESP-P4-Function-EV-Board
---------
Co-authored-by: n2flowjs-bot <n2flowjs@gmail.com>
Co-authored-by: Terrence <terrence@tenclass.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* 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
* fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug
* 1.增加robot舵机初始位置校准
2.fix(mcp_sever) 超出范围异常捕获类型 bug
* refactor: Update Electron and Otto emoji display implementations
- Removed GIF selection from Kconfig for Electron and Otto boards.
- Updated Electron and Otto bot versions to 2.0.4 in their respective config files.
- Refactored emoji display classes to utilize EmojiCollection for managing emojis.
- Enhanced chat label setup and status display functionality in both classes.
- Cleaned up unused code and improved initialization logging for emoji displays.
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* refactor: Update Otto emoji display configurations and functionalities
- Changed chat label text mode to circular scrolling for both Otto and Electron emoji displays.
- Bumped Otto robot version to 2.0.5 in the configuration file.
- Added new actions for Otto robot including Sit, WhirlwindLeg, Fitness, Greeting, Shy, RadioCalisthenics, MagicCircle, and Showcase.
- Enhanced servo sequence handling and added support for executing custom servo sequences.
- Improved logging and error handling for servo sequence execution.
* refactor: Update chat label long mode for Electron and Otto emoji displays
- Changed chat label text mode from wrap to circular scrolling for both Electron and Otto emoji displays.
- Improved consistency in chat label setup across both implementations.
* Update Otto robot README with new actions and parameters
* Update Otto controller parameters for oscillation settings
- Changed default oscillation period from 500ms to 300ms.
- Increased default steps from 5.0 to 8.0.
- Updated default amplitude from 20 degrees to 0 degrees.
- Enhanced documentation with new examples for oscillation modes and sequences.
* Fix default amplitude initialization in Otto controller to use a single zero instead of two digits.
* chore: update txp666/otto-emoji-gif-component version to 1.0.3 in idf_component.yml
* Refactor Otto controller
- Consolidated movement actions into a unified tool for the Otto robot, allowing for a single action command with various parameters.
- Removed individual movement tools (walk, turn, jump, etc.) and replaced them with a more flexible action system.
* 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
* fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug
* 1.增加robot舵机初始位置校准
2.fix(mcp_sever) 超出范围异常捕获类型 bug
* refactor: Update Electron and Otto emoji display implementations
- Removed GIF selection from Kconfig for Electron and Otto boards.
- Updated Electron and Otto bot versions to 2.0.4 in their respective config files.
- Refactored emoji display classes to utilize EmojiCollection for managing emojis.
- Enhanced chat label setup and status display functionality in both classes.
- Cleaned up unused code and improved initialization logging for emoji displays.
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* refactor: Update Otto emoji display configurations and functionalities
- Changed chat label text mode to circular scrolling for both Otto and Electron emoji displays.
- Bumped Otto robot version to 2.0.5 in the configuration file.
- Added new actions for Otto robot including Sit, WhirlwindLeg, Fitness, Greeting, Shy, RadioCalisthenics, MagicCircle, and Showcase.
- Enhanced servo sequence handling and added support for executing custom servo sequences.
- Improved logging and error handling for servo sequence execution.
* refactor: Update chat label long mode for Electron and Otto emoji displays
- Changed chat label text mode from wrap to circular scrolling for both Electron and Otto emoji displays.
- Improved consistency in chat label setup across both implementations.
* Update Otto robot README with new actions and parameters
* Update Otto controller parameters for oscillation settings
- Changed default oscillation period from 500ms to 300ms.
- Increased default steps from 5.0 to 8.0.
- Updated default amplitude from 20 degrees to 0 degrees.
- Enhanced documentation with new examples for oscillation modes and sequences.
* Fix default amplitude initialization in Otto controller to use a single zero instead of two digits.
* chore: update txp666/otto-emoji-gif-component version to 1.0.3 in idf_component.yml
* 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
* fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug
* 1.增加robot舵机初始位置校准
2.fix(mcp_sever) 超出范围异常捕获类型 bug
* refactor: Update Electron and Otto emoji display implementations
- Removed GIF selection from Kconfig for Electron and Otto boards.
- Updated Electron and Otto bot versions to 2.0.4 in their respective config files.
- Refactored emoji display classes to utilize EmojiCollection for managing emojis.
- Enhanced chat label setup and status display functionality in both classes.
- Cleaned up unused code and improved initialization logging for emoji displays.
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* refactor: Update Otto emoji display configurations and functionalities
- Changed chat label text mode to circular scrolling for both Otto and Electron emoji displays.
- Bumped Otto robot version to 2.0.5 in the configuration file.
- Added new actions for Otto robot including Sit, WhirlwindLeg, Fitness, Greeting, Shy, RadioCalisthenics, MagicCircle, and Showcase.
- Enhanced servo sequence handling and added support for executing custom servo sequences.
- Improved logging and error handling for servo sequence execution.
* refactor: Update chat label long mode for Electron and Otto emoji displays
- Changed chat label text mode from wrap to circular scrolling for both Electron and Otto emoji displays.
- Improved consistency in chat label setup across both implementations.
* Update Otto robot README with new actions and parameters
* Update Otto controller parameters for oscillation settings
- Changed default oscillation period from 500ms to 300ms.
- Increased default steps from 5.0 to 8.0.
- Updated default amplitude from 20 degrees to 0 degrees.
- Enhanced documentation with new examples for oscillation modes and sequences.
* Fix default amplitude initialization in Otto controller to use a single zero instead of two digits.
* 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
* fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug
* 1.增加robot舵机初始位置校准
2.fix(mcp_sever) 超出范围异常捕获类型 bug
* refactor: Update Electron and Otto emoji display implementations
- Removed GIF selection from Kconfig for Electron and Otto boards.
- Updated Electron and Otto bot versions to 2.0.4 in their respective config files.
- Refactored emoji display classes to utilize EmojiCollection for managing emojis.
- Enhanced chat label setup and status display functionality in both classes.
- Cleaned up unused code and improved initialization logging for emoji displays.
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* refactor: Update Otto emoji display configurations and functionalities
- Changed chat label text mode to circular scrolling for both Otto and Electron emoji displays.
- Bumped Otto robot version to 2.0.5 in the configuration file.
- Added new actions for Otto robot including Sit, WhirlwindLeg, Fitness, Greeting, Shy, RadioCalisthenics, MagicCircle, and Showcase.
- Enhanced servo sequence handling and added support for executing custom servo sequences.
- Improved logging and error handling for servo sequence execution.
* refactor: Update chat label long mode for Electron and Otto emoji displays
- Changed chat label text mode from wrap to circular scrolling for both Electron and Otto emoji displays.
- Improved consistency in chat label setup across both implementations.
* Update Otto robot README with new actions and parameters
* Add support for the Xorigin AiPi Lite
* aipi-lite: correction to README_en.md
* aipi-lite: use 20MHz display clock
Highger speeds might work sometimes but best not to push
it and use a sane speed.
* aipi-lite: change English name and remove Chinese TTS
* 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
* fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug
* 1.增加robot舵机初始位置校准
2.fix(mcp_sever) 超出范围异常捕获类型 bug
* refactor: Update Electron and Otto emoji display implementations
- Removed GIF selection from Kconfig for Electron and Otto boards.
- Updated Electron and Otto bot versions to 2.0.4 in their respective config files.
- Refactored emoji display classes to utilize EmojiCollection for managing emojis.
- Enhanced chat label setup and status display functionality in both classes.
- Cleaned up unused code and improved initialization logging for emoji displays.
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* Rename OTTO_ICON_FONT.c to otto_icon_font.c
* feat: add support for ESP32-P4-Function-EV-Board with configuration and display handling
* detect wake word model from index.json
* update wait time before entering wifi configure mode
* feat: Enhance ESP32-P4 Function EV Board support with LCD and touch initialization
* feat: Update ESP32-P4 Function EV Board configuration for improved touch and SD card support
* feat: add touch I2C configuration and improve initialization structure
* Remove ESP hosted configuration from defaults
Removed ESP hosted configuration options.
* chore: update documentation for improved clarity
* refactor: remove obsolete files for ESP32-P4-Function-EV-Board and add updated configurations
* refactor: reintroduce ESP32-P4-Function-EV-Board implementation with updated configurations
* refactor: restore esp32_p4_function_ev_board dependency with updated version
---------
Co-authored-by: n2flowjs-bot <n2flowjs@gmail.com>
Co-authored-by: Terrence <terrence@tenclass.com>
* 同步esp-video组件驱动摄像头的配置
* 修改Waveshare ESP32-S3-AUDIO-Board 摄像头配置。
* Modify the XCLK parameters of the camera, and modify the config.txt to be compatible with 2640 and 5640.
* Update the esp_video component version to 1.3.0
* Downgrade the esp_video component version. There are unfixed bugs.
* Update component version
* feat: Wake up when a person is detected
* fix: Solve the problem of no sound when using WakeWordInvoke
* fix: Solve the problem of triggering dialogue when the person has not left
* feat(vision): 优化视觉检测逻辑并增加配置接口
本次提交旨在优化视觉检测功能,使其行为更自然、更智能,并为用户提供灵活的配置选项。
主要更新包括:
1. 引入了更精细的检测状态机:
- IDLE: 空闲状态,等待检测目标。
- VALIDATING: 验证状态,在检测到目标后,持续一段时间(可配置)以确认其存在,防止误触发。
- COOLDOWN: 冷却状态,在一次成功交互后进入,避免过于频繁的打扰。
2. 新增了用于配置视觉检测的 MCP 工具:
- self.vision.get_detection_config: 获取当前的检测参数(阈值、冷却间隔、验证时长、目标类型)。
- self.vision.set_detection_config: 允许用户动态修改这些参数,以适应不同场景。
3. 性能优化:
- 增加了配置参数的内存缓存,避免了在检测循环中对 NVS 的频繁访问。
* feat: Inference using Model 4
* feat: default inference disable
* feat: version cmd change to output json
* fix: fix image display
* Fix include directives for esp_check and esp_app_desc
---------
Co-authored-by: Spencer <love4yzp@gmail.com>
Co-authored-by: Xiaoxia <terrence@tenclass.com>
* refactor: migrate camera module to esp-video library
* refactor: migrate boards to esp-video API (1/2)
* refactor: migrate boards to esp-video API (2/2)
* fix: use ESP-IDF 5.5
* refactor: migrate the JPEG encoder to `esp_new_jpeg`
* feat: add YUV422 support
* feat: improve pixelformat and device selection process
* feat: use ESP32-P4 Hardware JPEG Encoder
* add support for Wireless-Tag WTP4C5MP07S ESP32P4 + 7 inch MIPI DSI LCD display combo
* a minor update of README
* update of the device name/folder
* exclude USE_DEVICE_AEC from the options list
* 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++
* Fixed bugs in the LILYGO T-Circle-S3 board and added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Fix the color display issue for T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Update T-CameraPlus-S3_V1.2 Version Xiaozhi Example
* Resolve the issue where the camera on the T-CameraPlus-S3_V1.2 board cannot be used normally.
* Enhance microphone reception volume
* fix the issue where voice wake-up is not working
* fix the issue where voice wake-up is not working
* Add LILYGO T-Display-P4 board adaptation
* Modify the MIPILCDDISPLAY class
* Added Waveshare ESP32-P4-WIFI6-Touch-LCD-7B third party board
* Add config,json for Waveshare ESP32-P4 series boards
* Fix some errors
* update v2 partition table readme
* feat: Add user only tool
* Add image cache
* smaller cache and buffer, more heap
* use MAIN_EVENT_CLOCK_TICK to avoid audio glitches
* fix: esp_psram_get_size not found in c3
* Bump to 1.9.0
* fix: resolve crash when closing codec dev on esp-hi
* fix: fix incorrect status display in non-zh-CN languages
* fix: reduce noise when not in Speaking state
* 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++
* Fixed bugs in the LILYGO T-Circle-S3 board and added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Fix the color display issue for T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Update T-CameraPlus-S3_V1.2 Version Xiaozhi Example
* Resolve the issue where the camera on the T-CameraPlus-S3_V1.2 board cannot be used normally.
* Enhance microphone reception volume
* fix the issue where voice wake-up is not working
* fix the issue where voice wake-up is not working
* set camera HMirror to true
* change key1 to camera button
* change key1 to camera button
* change key1 to camera button
* add ir filter controller
* add ir filter controller
* add ir filter controller
* Added third-party hardware support
Waveshare-ESP32-P4-WIFI6-Touch-LCD-3.4C,
Waveshare-ESP32-P4-WIFI6-Touch-LCD-4C,
Waveshare-ESP32-P4-WIFI6-Touch-LCD-4B
* Remove the README
* Merge ESP32-P4-WIFI6-Touch-LCD-3.4C and ESP32-P4-WIFI6-Touch-LCD-4C into one board
* Add readme files
* 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++
* Fixed bugs in the LILYGO T-Circle-S3 board and added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Fix the color display issue for T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Update T-CameraPlus-S3_V1.2 Version Xiaozhi Example
* Adjust dependency components for ESP32-P4
* Add backlight control and touch control to Waveshare ESP32-P4-NANO
* Increase the amount of saved information for Waveshare ESP32-P4-NANO
* feat(ota): add logging for missing sections in Ota::CheckVersion
Add detailed logging to inform when specific sections (activation, mqtt, websocket, server_time, firmware) are not found during the OTA version check. This improves debugging and visibility into the OTA process.
* 恢复提示词
---------
Co-authored-by: loadingxv <loadingvx@gmail.com>
* 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++
* Fixed bugs in the LILYGO T-Circle-S3 board and added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Merge branch 'main' of https://github.com/Llgok/xiaozhi-esp32
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Added support for two new boards: LILYGO T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* Fix the color display issue for T-Display-S3-Pro-MVSRLora and LILYGO T-Display-S3-Pro-MVSRLora_NO_BATTERY.
* The atk-dnesp32s3-box is compatible with ES8311 devices and non-ES8311 devices
* Update atk_dnesp32s3_box.cc
format code
---------
Co-authored-by: Xiaoxia <terrence@tenclass.com>
* fix typo, add missing prefix `CONFIG` to `ESP_TASK_WDT_TIMEOUT_S`
* add KNOB gpio spec to sensecap config
* create new knob component
* implement ajust output volume with knob
* modify function name to UpperCamelCase
* Tidy up comments and logs
* fix: fixed the issue that the device enters re-network configuration mode by mistake when long pressing to start the device.
* fix: Do not shut down when connected to type-c.
* fix: fixed the issue that firmware verification failed during OTA for 32M flash.
* doc: update readme.
* fix: Solve the problem that the partition table configuration is not effective.
* Add files via upload
Added board description
* Add files via upload
New battery control
* Add files via upload
New battery control
* Add files via upload
Update format
* Add files via upload
Added screen version compatibility
* Add files via upload
Added screen version compatibility
* Add files via upload
修改程序风格
* Add files via upload
修改程序风格
* Add files via upload
更新背光
* Add files via upload
Update the backlight control program
* Add files via upload
Update the backlight control program
* Add files via upload
Update the backlight control program
* Add files via upload
Update function function implementation
* Add files via upload
Update function function implementation
* Add files via upload
Remove excess space
* Add files via upload
添加注释
* Add files via upload
添加程序注释
- Add support for device activation with audio feedback
- Refactor OTA update flow to include activation code handling
- Update asset management for localized sound resources
- Improve error handling and device state management
- Reorganize binary asset includes and CMake configuration
* 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>
* 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>
description:Before submitting a new issue, please follow the checklist and try to find the answer.
options:
- label:I have read the documentation [XiaoZhi AI Programming Guide](https://ccnphfhqs21z.feishu.cn/wiki/F5krwD16viZoF0kKkvDcrZNYnhb) and the issue is not addressed there.
required:true
- label:I have updated my branch (master or release) to the latest version and checked that the issue is present there.
required:true
- label:I have searched the issue tracker for a similar issue and not found a similar issue.
required:true
- type:input
id:xiaozhi_ai_version
attributes:
label:XiaoZhi AI version.
description:Onwhich XiaoZhi AI version does this issue occur on? Run `git describe --tags` to find it.
placeholder:ex. v1.1.0-44-g140aab8
validations:
required:true
- type:dropdown
id:operating_system
attributes:
label:Operating System used.
multiple:false
options:
- Windows
- Linux
- macOS
validations:
required:true
- type:dropdown
id:build
attributes:
label:How did you build your project?
multiple:false
options:
- Command line with CMake
- Command line with idf.py
- CLion IDE
- VS Code IDE/Cursor
- Other (please specify in More Information)
validations:
required:true
- type:dropdown
id:windows_comand_line
attributes:
label:If you are using Windows, please specify command line type.
multiple:false
options:
- PowerShell
- CMD
validations:
required:false
- type:textarea
id:expected
attributes:
label:What is the expected behavior?
description:Please provide a clear and concise description of the expected behavior.
placeholder:I expected it to...
validations:
required:true
- type:textarea
id:actual
attributes:
label:What is the actual behavior?
description:Please describe actual behavior.
placeholder:Instead it...
validations:
required:true
- type:textarea
id:steps
attributes:
label:Steps to reproduce.
description:'How do you trigger this bug? Please walk us through it step by step. If this is build bug, please attach sdkconfig file (from your project folder). Please attach your code here.'
value:|
1. Step
2. Step
3. Step
...
validations:
required:true
- type:textarea
id:debug_logs
attributes:
label:Build or installation Logs.
description:Build or installation log goes here, should contain the backtrace, as well as the reset source if it is a crash.
placeholder:Your log goes here.
render:plain
validations:
required:false
- type:textarea
id:more-info
attributes:
label:More Information.
description:Do you have any other information from investigating this?
description:Before submitting a new issue, please follow the checklist and try to find the answer.
options:
- label:I have read the documentation [XiaoZhi AI Programming Guide](https://ccnphfhqs21z.feishu.cn/wiki/F5krwD16viZoF0kKkvDcrZNYnhb) and the issue is not addressed there.
required:true
- label:I have updated my firmware to the latest version and checked that the issue is present there.
required:true
- label:I have searched the issue tracker for a similar issue and not found a similar issue.
required:true
- type:input
id:xiaozhi_ai_firmware_version
attributes:
label:XiaoZhi AI firmware version.
description:Onwhich firmware version does this issue occur on?
placeholder:ex. v1.2.1_bread-compact-wifi
validations:
required:true
- type:dropdown
id:operating_system
attributes:
label:Operating System used.
multiple:false
options:
- Windows
- Linux
- macOS
validations:
required:true
- type:dropdown
id:build
attributes:
label:How did you build your project?
multiple:false
options:
- Command line with CMake
- Command line with idf.py
- CLion IDE
- VS Code IDE/Cursor
- Other (please specify in More Information)
validations:
required:true
- type:dropdown
id:windows_comand_line
attributes:
label:If you are using Windows, please specify command line type.
multiple:false
options:
- PowerShell
- CMD
validations:
required:false
- type:dropdown
id:power_supply
attributes:
label:Power Supply used.
multiple:false
options:
- USB
- External 5V
- External 3.3V
- Battery
validations:
required:true
- type:textarea
id:expected
attributes:
label:What is the expected behavior?
description:Please provide a clear and concise description of the expected behavior.
placeholder:I expected it to...
validations:
required:true
- type:textarea
id:actual
attributes:
label:What is the actual behavior?
description:Please describe actual behavior.
placeholder:Instead it...
validations:
required:true
- type:textarea
id:steps
attributes:
label:Steps to reproduce.
description:'How do you trigger this bug? Please walk us through it step by step. Please attach your code here.'
value:|
1. Step
2. Step
3. Step
...
validations:
required:true
- type:textarea
id:debug_logs
attributes:
label:Debug Logs.
description:Debug log goes here, should contain the backtrace, as well as the reset source if it is a crash.
placeholder:Your log goes here.
render:plain
validations:
required:false
- type:textarea
id:more-info
attributes:
label:More Information.
description:Do you have any other information from investigating this?
* We welcome any ideas or feature requests! It’s helpful if you can explain exactly why the feature would be useful.
* There are usually some outstanding feature requests in the [existing issues list](https://github.com/78/xiaozhi-esp32/labels/enhancement), feel free to add comments to them.
* If you would like to contribute, please read the [contributions guide](https://ccnphfhqs21z.feishu.cn/wiki/F5krwD16viZoF0kKkvDcrZNYnhb).
- type:textarea
id:problem-related
attributes:
label:Is your feature request related to a problem?
description:Please provide a clear and concise description of what the problem is.
placeholder:ex. I'm always frustrated when ...
- type:textarea
id:solution
attributes:
label:Describe the solution you'd like.
description:Please provide a clear and concise description of what you want to happen.
placeholder:ex. When using XiaoZhi ...
- type:textarea
id:alternatives
attributes:
label:Describe alternatives you've considered.
description:Please provide a clear and concise description of any alternative solutions or features you've considered.
placeholder:ex. Choosing other approach wouldn't work, because ...
- type:textarea
id:context
attributes:
label:Additional context.
description:Please add any other context or screenshots about the feature request here.
👉 [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/)
👉 [Handcraft your AI girlfriend, beginner's guide【bilibili】](https://www.bilibili.com/video/BV1XnmFYLEJN/)
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.
<img src="docs/mcp-based-graph.jpg" alt="Control everything via MCP" width="320">
## Version Notes
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).
All hardware running v1 can be upgraded to v2 by manually flashing the firmware.
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.
For beginners, it is recommended to use the firmware that can be flashed without setting up a development environment.
The firmware connects to the official [xiaozhi.me](https://xiaozhi.me) server by default. Personal users can register an account to use the Qwen real-time model for free.
- [MQTT + UDP Hybrid Communication Protocol Document](docs/mqtt-udp.md)
- [A detailed WebSocket communication protocol document](docs/websocket.md)
## Large Model Configuration
If you already have a XiaoZhi AI chatbot device and have connected to the official server, you can log in to the [xiaozhi.me](https://xiaozhi.me) console for configuration.
👉 [Backend Operation Video Tutorial (Old Interface)](https://www.bilibili.com/video/BV1jUCUY2EKM/)
## Related Open Source Projects
For server deployment on personal computers, refer to the following open-source projects:
- [xinnan-tech/xiaozhi-esp32-server](https://github.com/xinnan-tech/xiaozhi-esp32-server) Python server
- [joey-zhou/xiaozhi-esp32-server-java](https://github.com/joey-zhou/xiaozhi-esp32-server-java) Java server
- [AnimeAIChat/xiaozhi-server-go](https://github.com/AnimeAIChat/xiaozhi-server-go) Golang server
- [hackers365/xiaozhi-esp32-server-golang](https://github.com/hackers365/xiaozhi-esp32-server-golang) Golang server
Other client projects using the XiaoZhi communication protocol:
To work properly, device-side AEC requires a clean output reference path from the speaker signal and physical acoustic isolation between the microphone and speaker.
config USE_SERVER_AEC
bool "Enable Server-Side AEC (Unstable)"
default n
depends on USE_AUDIO_PROCESSOR
help
To work perperly, server-side AEC requires server support
config USE_AUDIO_DEBUGGER
bool "Enable Audio Debugger"
default n
help
Enable audio debugger, send audio data through UDP to the host machine
menu "WiFi Configuration Method"
help
WiFi Configuration Method Selection
config USE_HOTSPOT_WIFI_PROVISIONING
bool "Hotspot"
default y
help
Use WiFi Hotspot to transmit WiFi configuration data
config USE_ACOUSTIC_WIFI_PROVISIONING
bool "Acoustic"
help
Use audio signal to transmit WiFi configuration data
config USE_ESP_BLUFI_WIFI_PROVISIONING
bool "Esp Blufi"
help
Use esp blufi protocol to transmit WiFi configuration data
select BT_ENABLED
select BT_BLE_42_FEATURES_SUPPORTED
select BT_BLE_BLUFI_ENABLE
select MBEDTLS_DHM_C
endmenu
config AUDIO_DEBUG_UDP_SERVER
string "Audio Debug UDP Server Address"
default "192.168.2.100:8000"
depends on USE_AUDIO_DEBUGGER
help
UDP server address, format: IP:PORT, used to receive audio debugging data
config RECEIVE_CUSTOM_MESSAGE
bool "Enable Custom Message Reception"
default n
help
Enable custom message reception, allow the device to receive custom messages from the server (preferably through the MQTT protocol)
menu "Camera Configuration"
depends on !IDF_TARGET_ESP32
comment "Warning: Please read the help text before modifying these settings."
config XIAOZHI_CAMERA_ALLOW_JPEG_INPUT
bool "Allow JPEG Input"
default n
help
Allow JPEG Input format for the camera.
This option may need to be enabled when using a USB camera.
Not currently supported when used simultaneously with XIAOZHI_ENABLE_ROTATE_CAMERA_IMAGE.
config XIAOZHI_ENABLE_HARDWARE_JPEG_ENCODER
bool "Enable Hardware JPEG Encoder"
default y
depends on SOC_JPEG_ENCODE_SUPPORTED
help
Use hardware JPEG encoder on ESP32-P4 to encode image to JPEG.
See https://docs.espressif.com/projects/esp-idf/en/stable/esp32p4/api-reference/peripherals/jpeg.html for more details.
config XIAOZHI_ENABLE_HARDWARE_JPEG_DECODER
bool "Enable Hardware JPEG Decoder"
default n
depends on SOC_JPEG_DECODE_SUPPORTED && XIAOZHI_CAMERA_ALLOW_JPEG_INPUT
help
Use hardware JPEG decoder on ESP32-P4 to decode JPEG to image.
See https://docs.espressif.com/projects/esp-idf/en/stable/esp32p4/api-reference/peripherals/jpeg.html for more details.
config XIAOZHI_ENABLE_CAMERA_DEBUG_MODE
bool "Enable Camera Debug Mode"
default n
help
Enable camera debug mode, print camera debug information to the console.
Only works on boards that support camera.
config XIAOZHI_ENABLE_CAMERA_ENDIANNESS_SWAP
bool "Enable software camera buffer endianness swapping"
default n
depends on !CAMERA_SENSOR_SWAP_PIXEL_BYTE_ORDER
help
This option treats the camera buffer as a uint16_t[] array and performs byte-swapping (endianness conversion) on each element.
Should only be modified by development board integration engineers.
**Incorrect usage may result in incorrect image colors!**
ATTENTION: If the option CAMERA_SENSOR_SWAP_PIXEL_BYTE_ORDER is available for your sensor, please use that instead.
menuconfig XIAOZHI_ENABLE_ROTATE_CAMERA_IMAGE
bool "Enable Camera Image Rotation"
default n
depends on !XIAOZHI_CAMERA_ALLOW_JPEG_INPUT
help
Enable camera image rotation, rotate the camera image to the correct orientation.
- On ESP32-P4, rotation is handled by PPA hardware.
- On other chips, rotation is done in software with performance cost.
- For 180° rotation, use HFlip + VFlip instead of this option.
Not currently supported when used simultaneously with XIAOZHI_CAMERA_ALLOW_JPEG_INPUT.
if XIAOZHI_ENABLE_ROTATE_CAMERA_IMAGE
choice XIAOZHI_CAMERA_IMAGE_ROTATION_ANGLE
prompt "Camera Image Rotation Angle (clockwise)"
default XIAOZHI_CAMERA_IMAGE_ROTATION_ANGLE_90
help
Camera image rotation angle.
config XIAOZHI_CAMERA_IMAGE_ROTATION_ANGLE_90
bool "90°"
config XIAOZHI_CAMERA_IMAGE_ROTATION_ANGLE_270
bool "270°"
comment "For 180° rotation, use HFlip + VFlip instead of this option"
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.