forked from xiaozhi/xiaozhi-esp32
* 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
ESP-P4-Function-EV-Board
Board support for ESP-P4-Function-EV-Board. Wi‑Fi uses ESP‑Hosted via the on‑board ESP32‑C6. LCD is supported via the official MIPI‑DSI LCD adapter.
Features
- Wi‑Fi:
esp_wifi_remote+esp_hosted(SDIO) with ESP32‑C6 co‑processor - Display: 7" MIPI‑DSI LCD (1024×600) via adapter; can also run headless
- Audio: ES8311 codec with speaker and microphone support
- Touch: GT911 capacitive touch controller
- SD Card: MicroSD card support (MMC mode)
- Camera: MIPI-CSI camera interface with fallback DVP configuration (OV5647, SC2336 sensors supported)
- USB: USB host/device support
- SPIFFS: Built-in flash filesystem support
- Fonts: Custom font support with Unicode characters (Vietnamese, Chinese, etc.)
Configure
In menuconfig: Xiaozhi Assistant -> Board Type -> ESP-P4-Function-EV-Board
Ensure these are set (auto-set when building via config.json):
CONFIG_SLAVE_IDF_TARGET_ESP32C6=yCONFIG_ESP_HOSTED_P4_DEV_BOARD_FUNC_BOARD=yCONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE=yCONFIG_ESP_HOSTED_SDIO_4_BIT_BUS=y
LCD Connection (from Espressif user guide)
- Connect the LCD adapter board J3 to the board’s MIPI DSI connector (reverse ribbon).
- Wire
RST_LCD(adapter J6) toGPIO27(board J1). - Wire
PWM(adapter J6) toGPIO26(board J1). - Optionally power the LCD adapter via its USB or provide
5VandGNDfrom the board.
These pins are pre-configured in config.h as PIN_NUM_LCD_RST=GPIO27 and DISPLAY_BACKLIGHT_PIN=GPIO26. Resolution is set to 1024×600.
Build (example)
idf.py set-target esp32p4
idf.py menuconfig
idf.py build
Tip: In menuconfig, choose Xiaozhi Assistant -> Board Type -> ESP-P4-Function-EV-Board.
If building a release via scripts, the config.json in this folder appends the required Hosted options.