FAQ
Q: Which screens are supported by the development board?
A: Please first check the component documentation to confirm compatible screen types: esp32_p4_platform
If you have requirements for adapting other screens or wish to inquire about support for specific screens, you can submit an issue via Waveshare's official after-sales support or the following address:
We will follow up and respond to your requests promptly.
Q: How do I determine my ESP32-P4 chip revision?
A: Check the silkscreen marking on the chip and the boot log from the serial port. The ESP32-P4 Platform examples provide build configurations for rev v3.0 and later chips, rev v3.1 and later chips, and rev v0.x / v1.x engineering samples. Before flashing, make sure the firmware configuration matches the actual chip revision.
Q: I get a chip revision mismatch error when flashing. How do I fix it?
A: This message means the firmware's ESP32-P4 chip revision configuration doesn't match the chip on your board. Do not use --force to skip the check — rebuild with the correct chip revision instead.
The ESP32-P4 Platform repository provides shared configuration files:
- rev v3.1 or later:
config/esp32p4_rev_v3_1.defaults - rev v3.0 or later:
config/esp32p4_rev_v3_0.defaults - rev v0.x / v1.x engineering sample:
config/esp32p4_rev_pre_v3.defaults
Specify the matching config in the example directory via SDKCONFIG_DEFAULTS. See the detailed instructions under ESP-IDF examples.
Q: How to use the Type‑A ports on the development board?
A: Of the four Type‑A ports, one is directly connected to the ESP32-P4, and the other three are connected to the CH334 HUB chip. You can use the jumper caps on the board to switch the ESP32-P4 between direct connection and connection to the CH334.
- When the jumper cap is placed on the HOST side, USB port 1 is enabled.
- When the jumper cap is placed on the DEVICE side, USB ports 2‑4 are enabled.

Q: How to flash firmware onto the ESP32-C6?
The ESP32-C6 ships with factory firmware. Please verify the firmware source, version, and recovery method first.
A: When powering on, pull C6_IO9 pin low (to put the C6 into download mode) , and also put the P4 into download mode. Then you can flash firmware to the C6 via the C6_U0RXD and C6_U0TXD pins.
Q: Are there example codes for other application scenarios?
A:
- During functionality testing, we have validated several features. Some applications, like using a Cat-4 module for network access or using P4's MIPI-DSI to expand the host screen, are progressing but not yet stable enough to release. Once these functionalities are refined, we will add examples to the wiki.
- If you have ideas or partially validated application scenarios, feel free to share them with us for feasibility assessment.
Q: Can I develop using PlatformIO or MicroPython?
A:
- Due to stability requirements, in order for PlatformIO to support ESP32-P4, it is also necessary for the PlatformIO community to support the Arduino-esp32 SDK V3.1x version
- During development, we tested MPY firmware for ESP32-P4, which can run some basic commands. However, this is just a preliminary verification; actual interface and peripheral applications are not yet adapted. Once fully adapted and stable, we will release ESP32-P4 usage examples in MicroPython.