Skip to main content

FAQ

Connection and Flashing​

Q: Why does the computer not show a serial port, or why does a USB function not start?

The USB Type-C port of the board selects its function by plug orientation. One orientation connects the USB-to-UART serial port, which is used for flashing and serial logs. The other orientation connects the ESP32-P4 USB 2.0 port, which is used by USB Screen, the USB drive function, and the USB display examples.

Flip the USB Type-C plug at the board end and connect again. Flipping the plug powers the board up again; reopen the APP after the board restarts.

Q: How do I enter download mode when flashing fails?
  1. Close other programs that use the serial port, such as a serial monitor.
  2. Connect the USB-to-UART plug orientation.
  3. Hold the BOOT button, power on the board again, and then release BOOT.
  4. Start flashing again. If the problem persists, try another USB cable that supports data transfer, and connect directly to the computer instead of through a hub.
Q: Why is there no serial output after flashing?

Check the plug orientation and the baud rate. The basic ESP-IDF examples and the Arduino examples use 115200 baud. The factory application uses 2000000 baud.

For Arduino, keep USB CDC On Boot set to Disabled so that Serial uses UART0, which is connected to the onboard CH343P USB-to-UART chip.

Factory Firmware​

Q: Why do Music, Video, Gallery, or Reader show no files?
  • Check that the TF card uses the FAT32 or exFAT file system.
  • Check that the files are in the music, videos, pictures, or books folder in the root directory of the card, and that the file formats are supported. See TF Card Content.
  • Turn off USB drive in Settings > Storage. While the computer uses the card, the APPs cannot open files on it.
Q: Why are some characters missing in Reader?

Copy a TTF font that contains the missing characters to the fonts folder of the TF card, then open Reader again. Also check that the TXT file uses UTF-8, GBK, or UTF-16 encoding.

Q: Why does the computer not detect USB Screen?
  • Install the Espressif USB Display Driver for Windows. USB Screen supports Windows 10 and Windows 11.
  • Turn off USB drive in Settings > Storage. USB Screen and USB drive cannot run at the same time.
  • Flip the USB Type-C plug at the board end. After the board restarts, open USB Screen again.
Q: Why can I not turn on USB drive in Settings > Storage?

Exit USB Screen first. The ESP32-P4 USB port runs only one USB function at a time. Also confirm that the Storage page shows the TF card as ready; if not, tap Rescan.

Q: Why does Xiaozhi open the WLAN page?

Xiaozhi requires a Wi-Fi connection. When Wi-Fi is not connected, the APP opens Settings > WLAN. Connect to a 2.4GHz network with internet access; the board then returns to Xiaozhi, where activation or the conversation can continue.

Q: Does the board support 5GHz Wi-Fi?

No. Wi-Fi is provided by the ESP32 wireless coprocessor, which supports 2.4GHz Wi-Fi (802.11 b/g/n) only.

Q: Why is there no sound in BT Music?

Confirm that Bluetooth is on in Settings > Bluetooth and that the phone is connected to ESP32-P4-Knob. The playback volume depends on the board volume and the phone volume; check both and turn the knob to increase the board volume.

Q: Why is there no battery icon in the status bar?

The battery icon appears only when a lithium battery is connected. The ESP32-P4-Knob-Touch-AMOLED-1.75S-EN and ESP32-P4-Knob-Touch-AMOLED-1.75B-EN do not include a battery and run from USB power.

Q: How do I restore the factory firmware after flashing an example?

Flash the factory firmware as described in Firmware Flashing and Erasing. Flashing the complete image clears the saved settings.

Development​

Q: Which development environment versions do the examples use?
ProjectVersion
ESP-IDF examplesESP-IDF v6.1
Factory applicationESP-IDF v6.1
Arduino examplesArduino-ESP32 3.3.12

For the Arduino board options, see Select Project Parameters.

Q: How do I read the knob?

The knob uses two independent direction switches instead of a quadrature encoder. Turning clockwise pulls GPIO20 low, and turning counterclockwise pulls GPIO21 low, with one pulse per detent. Enable the internal pull-ups and debounce each input. See the ESP-IDF 07_limit_switches and Arduino 07_limit_switches examples.

Q: How do I read the PWR button?

The PWR button is connected to GPIO2 through an onboard BSS138 inverter, so GPIO2 reads HIGH when the button is pressed and LOW when it is released. The PWR button is also connected to the PWRON pin of the AXP2101.

Q: How do Wi-Fi and Bluetooth work on the ESP32-P4?

The ESP32-P4 has no built-in wireless function. Wi-Fi and Bluetooth are provided by the onboard ESP32 wireless coprocessor. The ESP-IDF examples initialize it with knob_wireless in examples/esp-idf/common; the Arduino examples use the KnobWireless library, which contains a precompiled ESP32-P4 runtime for Arduino-ESP32 3.3.12.

The coprocessor supports 2.4GHz Wi-Fi, Classic Bluetooth, and BLE 4.2.

Q: What are the onboard I2C devices and their addresses?

The onboard I2C devices share GPIO7 (SDA) and GPIO8 (SCL). For the device list and 7-bit addresses, see Internal Hardware Connections.