Files
xiaozhi-esp32/main/boards/esp-p4-function-ev-board
Xiaoxia b7db68457c v2.1.0: Upgrade esp-wifi-connect to 3.0; New device state machine (#1528)
* Upgrade component version

* update fonts component version

* Handle OTA error code

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

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

* fix compile errors

* Refactor power saving mode implementation to use PowerSaveLevel enumeration

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

* Refactor power save level checks across multiple board implementations

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

* Refactor EnterWifiConfigMode calls in board implementations

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

* Add cellular modem event handling and improve network status updates

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

* update esp-wifi-connect version

* Update WiFi configuration tool messages across multiple board implementations to clarify user actions
2025-12-09 09:24:56 +08:00
..

ESP-P4-Function-EV-Board

Board support for ESP-P4-Function-EV-Board. WiFi uses ESPHosted via the onboard ESP32C6. LCD is supported via the official MIPIDSI LCD adapter.

Features

  • WiFi: esp_wifi_remote + esp_hosted (SDIO) with ESP32C6 coprocessor
  • Display: 7" MIPIDSI 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=y
  • CONFIG_ESP_HOSTED_P4_DEV_BOARD_FUNC_BOARD=y
  • CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE=y
  • CONFIG_ESP_HOSTED_SDIO_4_BIT_BUS=y

LCD Connection (from Espressif user guide)

  • Connect the LCD adapter board J3 to the boards MIPI DSI connector (reverse ribbon).
  • Wire RST_LCD (adapter J6) to GPIO27 (board J1).
  • Wire PWM (adapter J6) to GPIO26 (board J1).
  • Optionally power the LCD adapter via its USB or provide 5V and GND from 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.