* Enhance GitHub Actions artifact download script
- Updated the output directory structure to save downloaded files in a version-specific subdirectory (releases/<version>).
- Added a new function to determine the default releases directory path relative to the script's location.
- Improved artifact renaming logic to handle known extensions more robustly and ensure compatibility with filenames containing dots.
* Refactor UI setup in ElectronEmojiDisplay and OttoEmojiDisplay classes
- Moved SetupChatLabel call in ElectronEmojiDisplay to ensure it is executed after the parent UI is initialized, preventing potential issues with container validity.
- Updated SetupUI in OttoEmojiDisplay to release the display lock before calling SetEmotion, avoiding deadlock scenarios during UI setup.
* Add multiline chat message support in display configuration
- Introduced a new Kconfig option to enable multiline chat message display in the default mode.
- Updated the LCD display setup to accommodate a dynamic height bottom bar for multiline messages.
- Modified the configuration files for the waveshare-esp32-s3-epaper-1.54 board to include the new chat message setting.
* Update font and emoji settings for Magiclick boards; enhance bottom bar visibility logic in LCD display
- Changed the default text and emoji fonts for Magiclick S3 2P4 and S3 2P5 boards to Noto fonts.
- Improved bottom bar visibility logic in LcdDisplay to hide when there is no content, ensuring a cleaner UI experience.
* Add support for both hardware versions of waveshare-s3-epaper-1.54
* use v2 partition, reduced assets partition by 300k so that the app would fit
* add manufacturer
* updated readme
* CONFIG_SR_WN_WN9_NIHAOXIAOZHI_TTS=n to save space
* no custom font
* Add EDA Education Board Configuration
- Add eda-tv-pro Board Configuration
- Add eda-robot-pro Board Configuration
- Add eda-super-bear Board Configuration
* docs(oscillator): Add file headers with copyright and license information
- Add comprehensive file headers to oscillator.cc and oscillator.h in eda-robot-pro board
- Add comprehensive file headers to oscillator.cc and oscillator.h in eda-super-bear board
- Include original author attribution (Juan Gonzalez-Gomez/Obijuan) and ESP32 port credit (txp666)
- Include GPL license notice and file descriptions for clarity and compliance
* fix: Move the eda* boards to the lceda-course-examples folder.
- Move eda-robot-pro, eda-super-bear, and eda-tv-pro boards to lceda-course-examples subdirectory
- Update CMakeLists.txt to set MANUFACTURER variable for each board configuration
content: Update the README.md
ci: Adapt to the lower directory
ci: the lower directory support
ci: board type errors fixed.
ci: board_type errors fixed to board_leaf.
fix: A naming error problem
fix: jd9365 member error
fix: Update product naming
feat: Add manufacturer parameters to the firmware name for 'release'
fix: Verification logic
fix: Verification logic
* Enhance audio processing and wake word detection
- Set task priority in Application::Run to improve responsiveness.
- Log detected wake words with their state in HandleWakeWordDetectedEvent.
- Streamline audio feeding in AudioService to handle both wake word and audio processor events.
- Implement input buffering in AfeAudioProcessor, AfeWakeWord, CustomWakeWord, and EspWakeWord to manage audio data more efficiently.
- Clear input buffers on stop to prevent residual data issues.
* Refactor audio processing to enhance thread safety and state management
- Implement early return checks in Feed methods of AfeAudioProcessor, AfeWakeWord, CustomWakeWord, and EspWakeWord to prevent processing when not running.
- Introduce std::atomic for running state in CustomWakeWord and EspWakeWord to ensure thread-safe access.
- Consolidate input buffer management with mutex locks to avoid race conditions during Stop and Feed operations.
* Refactor listening mode handling and wake word detection configuration
- Replace direct mode setting logic with a new GetDefaultListeningMode method for improved clarity and maintainability.
- Update HandleToggleChatEvent, HandleWakeWordDetectedEvent, and ContinueWakeWordInvoke to utilize the new method for determining listening mode.
- Introduce Kconfig option WAKE_WORD_DETECTION_IN_LISTENING to enable or disable wake word detection during listening mode, enhancing configurability.
* 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
* 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
* 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
* 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>
* 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