989 Commits

Author SHA1 Message Date
Xiaoxia bb9122ab08 Add streamed notify playback (#2191)
Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-08-21 13:52:29 +08:00
sebastjanb 4142f6d5de fix(lichuang-dev): don't crash when the FT5x06 touch controller is absent (#2204)
InitializeTouch() declares its touch handle uninitialised, ignores the
return value of both init calls, and then asserts on the handle:

    esp_lcd_touch_handle_t tp;
    esp_lcd_new_panel_io_i2c(i2c_bus_, &tp_io_config, &tp_io_handle);
    esp_lcd_touch_new_i2c_ft5x06(tp_io_handle, &tp_cfg, &tp);
    assert(tp);

When the controller does not respond, esp_lcd_touch_new_i2c_ft5x06()
leaves tp untouched, so assert(tp) tests whatever was on the stack.
A non-zero stack value passes, and lvgl_port_add_touch() then
dereferences it:

    E FT5x06: esp_lcd_touch_new_i2c_ft5x06(161): FT5x06 init failed
    E FT5x06: Error (0x108)! Touch controller FT5x06 initialization failed!
    Guru Meditation Error: Core 0 panic'ed (LoadProhibited)
    Backtrace: lvgl_port_add_touch -> LichuangDevBoard::InitializeTouch()

This happens on every boot, so the board never gets past construction.
Seen on a unit with no touch panel fitted: an I2C scan finds only 0x18
(ES8311), 0x19 (PCA9557) and 0x41 (ES7210), no 0x38.

Initialise the handle, check both return values, and treat a missing
controller as "no touch" instead. Touch is optional here: the display,
audio and buttons are all unaffected, and boards that do have the
controller are unchanged.

Verified on hardware: boots to idle, connects, holds a conversation.

Note: rymcu/bigsmart has the same uninitialised-handle pattern, but it
wraps the calls in ESP_ERROR_CHECK, so it aborts with a diagnosable
error rather than dereferencing garbage. Left alone, as I have no such
board to test on.
2026-08-21 00:41:04 +08:00
suflanker d6f6b64297 feat(m5stack-stopwatch): support display brightness control (#2189) 2026-08-19 14:04:52 +08:00
ChanchalSakardeQH 8e2899dbc9 Add Marathi (mr-IN) Indian Language Support (#2180)
* 38 interface languages, with localized voice prompts where available and English fallback - **plus Marathi (mr-IN) in this fork**

* Windows Build fix

* Add Marathi (mr-IN) Indian interface language Support

---------

Co-authored-by: Chanchal Sakarde <chanchaljsakarde@gmail.com>
2026-08-15 10:01:12 +08:00
Xiaoxia 631add2a32 fix: tolerate long localized OTA errors 2026-08-12 04:05:22 +08:00
Y1hsiaochunnn 1ce658bcb9 Merge pull request #2174 from shunian11/main
content : add waveshare esp32-c6-epaper-1.54
2026-08-10 16:51:47 +08:00
shunian11 25494663ea Merge branch '78:main' into main 2026-08-10 15:05:09 +08:00
Xiaoxia 18a60b8051 fix(firmware-builder): upload artifacts through control API 2026-08-09 04:49:52 +08:00
Xiaoxia 48142026b5 fix: support SH1106 on bread compact NT26 2026-08-08 08:33:45 +08:00
Xiaoxia 61111f105f fix: restore WDMomo CGC LCD selection (#2175)
Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-08-08 08:05:31 +08:00
Xiaoxia ef84728631 Refactor build workflow and update LCD panel configuration
- Removed the intermediate step of storing all variants in an environment variable to prevent exceeding size limits.
- Updated the logic for selecting variants based on changes in the GitHub Actions workflow.
- Enhanced the LCD panel configuration for `esp_lcd_ili9486` and `esp_lcd_nv3030b` to support new RGB element order handling.
- Adjusted SSD1306 display initialization to ensure compatibility with different IDF versions by using individual field assignments.
2026-08-07 23:43:47 +08:00
shunian11 305c91b913 update board sort 2026-08-07 16:37:09 +08:00
shunian11 b5c60289a2 content : add waveshare esp32-c6-epaper-1.54 2026-08-07 16:17:06 +08:00
Xiaoxia 85ff44a759 Enhance firmware builder with failure summary and error reporting
- Added `failure_summary` function to extract actionable errors from compiler logs.
- Updated manifest to include error details when firmware build fails.
- Added unit tests to verify the functionality of the new failure summary feature.
2026-08-07 00:46:05 +08:00
STM32F103 3ac6d89d0a feat: add wk esp32s3 dev board (#2030)
* feat: add wk esp32s3 dev board

* docs: add README for WK ESP32-S3 dev board
2026-08-07 00:14:58 +08:00
Xiaoxia 1da3df89bf Enhance firmware builder with retry logic for OSS uploads
- Added retry mechanism for transient OSS upload errors with exponential backoff.
- Updated `upload_outputs` function to utilize the new upload logic.
- Enhanced documentation to reflect the new retry behavior for OSS uploads.
- Added unit tests to verify retry functionality and error handling.
2026-08-06 13:03:29 +08:00
Xiaoxia e8d8a40107 fix(build): hide inactive optional camera controls v2.4.2 2026-08-06 08:49:23 +08:00
Xiaoxia 78f362ab77 fix(build): honor board-compatible build options 2026-08-06 07:04:59 +08:00
Xiaoxia 5136aca1d4 Remove WeChat UI configuration from xingzhi-cube-1.54tft-ml307 board settings in config.json 2026-08-06 06:53:27 +08:00
Xiaoxia 20bbf1192e Add configuration files for bread-compact-wifi-lcd and bread-compact-wifi-s3cam boards
- Introduced config.json for bread-compact-wifi-lcd with LCD ST7789 support.
- Added config.json for bread-compact-wifi-s3cam with camera build options and LCD ST7789 support.
- Removed camera horizontal mirroring setting from bread-compact-wifi-s3cam implementation.
2026-08-06 06:08:46 +08:00
Xiaoxia e9582601e0 Update project version to 2.4.2 and enhance firmware builder with build options
- Incremented project version from 2.4.1 to 2.4.2 in CMakeLists.txt.
- Added support for `--build-options-json` in firmware_builder.py to allow custom build options.
- Implemented validation for build options to ensure correct data types and structure.
- Updated tests to cover new build options functionality and validation logic.
2026-08-06 05:54:34 +08:00
Xiaoxia 66bf9f7c1d Update project version to 2.4.1 and enhance WifiBoard configuration
- Incremented project version from 2.4.0 to 2.4.1 in CMakeLists.txt.
- Added options to WifiBoard configuration to show OTA and sleep settings.
2026-08-04 09:24:25 +08:00
Xiaoxia 0a1dbdb2d8 Update GitHub Actions workflow to support ESP32-S31 with IDF 6.1
- Changed Docker image from `espressif/idf:release-v6.1` to `espressif/idf:v6.0.2` for existing jobs.
- Added new job for building ESP32-S31 variants with IDF 6.1, including configurations for `esp32-s31-function-coreboard-1` and `esp32-s31-korvo-1`.
- Enhanced build steps to include artifact upload for the new board configurations.
2026-08-04 04:03:32 +08:00
Xiaoxia 60e161d543 Update build workflow and firmware builder for improved board support
- Updated Docker image in GitHub Actions workflow from `espressif/idf:v6.0.1` to `espressif/idf:release-v6.1`.
- Removed obsolete build configurations for ESP32-S31 and BluFi options.
- Enhanced `firmware_builder.py` to emit build stage markers and handle board configurations more effectively.
- Updated documentation to reflect changes in build process and configuration handling.
- Added tests to verify board display names and configuration resolution logic.
2026-08-04 02:04:17 +08:00
Xiaoxia f5deb3a668 Add firmware builder container with support for XiaoZhi board configurations
- Introduced a Dockerfile for building firmware for XiaoZhi boards.
- Added entrypoint script to initialize the environment and execute the firmware build.
- Implemented firmware_builder.py for handling the build process, including validation and artifact collection.
- Created README.md with build instructions and usage examples.
- Added test suite for firmware builder functionality.
- Included .dockerignore to exclude unnecessary files from the Docker context.
2026-08-03 22:20:16 +08:00
Create123 dd99da00dc Add M5Stack CoreP4 board support. (#2061)
Build Boards / Build ESP32-S31 with IDF 6.1 (push) Has been cancelled
Build Boards / IDF 6 BluFi option (push) Has been cancelled
Build Boards / Determine variants to build (push) Has been cancelled
Build Boards / Build ${{ matrix.full_name }} (push) Has been cancelled
Co-authored-by: luoweiyuan <luoweiyuan@m5stack.com>
2026-07-29 17:51:47 +08:00
HonestQiao e0074e90ce feat: add ESP32-S31-Korvo-1 Board support (#2158)
Co-authored-by: Xiaoxia <terrence@tenclass.com>
2026-07-28 08:24:21 +08:00
Xiaoxia 34c0b18d7c Fix Zectrix ESP32-S3 build (#2160)
Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-28 08:22:17 +08:00
Copilot 01212107fe Fix mirrored camera image on AtomS3R-M12 (OV3660) (#2155)
* Initial plan

* Fix mirrored camera image on AtomS3R-M12 (OV3660)

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-07-28 07:40:48 +08:00
Xiaoxia e384aece68 Decouple P4 function board from BSP (#2159)
Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-28 07:38:25 +08:00
孙永乐 b867aecb5d feat: add zectrix board support (#2154) 2026-07-28 06:28:39 +08:00
Frank 210b8e9a39 fix: correct the battery level calculation for esp32-s3-korvo2 (#2156)
* fix: correct the battery level calculation for esp32-s3-korvo2

* fix: correct comment for esp32-s3-korvo2
2026-07-27 20:57:52 +08:00
Xiaoxia d91d682430 refactor: organize boards by manufacturer (#2153)
* refactor: organize board metadata and directories

* fix: enable cross-signed certificate verification globally

* refactor: replace release script with build tool

* fix: defer board validation during CMake early expansion

* fix: resolve build regressions after board moves

* refactor: centralize board build configuration

---------

Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-27 16:52:04 +08:00
Xiaoxia 90311fc8fb refactor: remove unreliable acoustic provisioning (#2152)
Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-27 02:14:53 +08:00
Xiaoxia 3e86f0adaf feat: add ESP32-S31 Function CoreBoard support (#2151)
* feat: add ESP32-S31 Function CoreBoard support

* ci: build ESP32-S31 with IDF 6.1

---------

Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-27 00:46:15 +08:00
javen13 5b55606415 feat: add Waveshare ESP32-S3-Touch-LCD-3.49 V2 (#2143) 2026-07-26 21:17:11 +08:00
Xiaoxia 38bc4f443b Update ESP-SR/P4 support and fix LCDWiki IDF 6 build (#2142)
* feat: update esp-sr and enable ESP32-P4 rev1 builds

* fix: build LCDWiki ES3C35P with ESP-IDF 6

---------

Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-25 00:35:14 +08:00
sinco-z 324c8098a9 fix(taiji-pi-s3): keep round-screen text in safe area (#2136)
Co-authored-by: sinco-z <sinco-z@users.noreply.github.com>
2026-07-23 02:29:53 +08:00
Eivs ac3212d781 Add support for LCD Wiki ES3C35P board configuration and files (#2112)
* Add support for LCD Wiki ES3C35P (3.5" ESP32-S3) board

* fix: update variant counts in test for new ES3C35P board

---------

Co-authored-by: Eivs <eivs@Eivss-MacBook-Pro.local>
2026-07-22 20:46:57 +08:00
Xiaoxia 5f6c09b893 feat: enhance BoxAudioCodec with input gain and reference channel support
- Updated BoxAudioCodec constructor to include parameters for input gain, reference gain channel, and reference gain.
- Modified EnableInput method to set gain for the reference channel if applicable.
- Adjusted CustomAudioCodec initialization to utilize new gain parameters for improved audio processing.
2026-07-19 22:45:03 +08:00
Xiaoxia 5540258abc feat: integrate press-to-talk functionality in lichuang_dev_board
- Added PressToTalkMcpTool to manage press-to-talk and click-to-talk modes.
- Updated button event handling to support listening state transitions based on press-to-talk status.
- Initialized press-to-talk tool during board setup for enhanced user interaction.
v2.4.0
2026-07-19 02:43:04 +08:00
Xiaoxia cb06516bea Refine GitHub issue forms (#2128)
Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-19 02:10:46 +08:00
Xiaoxia 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
Xiaoxia 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
Xiaoxia 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
小鹏 2b8e1f34b0 feat(otto): update GIF emoji component to v1.3.0 (#2119)
- Upgrade the Otto GIF emoji component to v1.3.0
- Remove legacy Otto GIF emotion alias mappings
- Use the 21 standard Xiaozhi emotion names directly
2026-07-17 12:53:50 +08:00
laride 467b96a857 chore: temporarily disable touch sensor for ESP-VoCat on IDF v6 (#2118) 2026-07-16 21:40:00 +08:00
Terrence 7df0080e88 Enhance ES8311 codec detection in xmini_c3_board.cc
- Implemented a new function, IsEs8311Present(), to verify the presence of the ES8311 codec by checking its chip ID registers instead of relying solely on I2C bus probing.
- Updated error logging to provide clearer messages when the ES8311 codec is not detected.
- Added a continuous logging loop to indicate waiting for the boot button to be pressed during initialization.
2026-07-15 22:03:25 +08:00
Terrence 1b48ebd786 Update project version to 2.3.0 and modify dependencies in idf_component.yml; enhance DHCP hostname configuration in WifiBoard class v2.3.0 2026-07-15 15:13:21 +08:00
Xiaoxia 03fe29a313 Update README and refactor audio processing dependencies (#2115)
* Update QQ group contact in README.md

* Update dependencies in idf_component.yml and modify AFE audio processor configuration

- Updated versions for several dependencies in idf_component.yml to improve compatibility and performance.
- Changed AFE audio processor initialization to use low-cost mode and adjusted AEC settings for enhanced audio processing.

* Update audio dependencies in idf_component.yml

- Downgraded versions for espressif/esp_audio_effects and espressif/esp_audio_codec to improve compatibility with existing components.

* refactor(audio): unify speech processing engines

---------

Co-authored-by: Xiaoxia <terrence.huang@tenclass.com>
2026-07-15 11:13:06 +08:00