(See the README.md file in the upper level examples directory for more information about examples.)
This example demonstrates the following:
potplay
APP for PC on Windows OSConfigure camera hardware data interface based on development kit:
Plaintext
Example Configuration --->
Camera sensor interface (MIPI-CSI) --->
(X) MIPI-CSI
(0) MIPI CSI SCCB I2C Port Number
(8) MIPI CSI SCCB I2C SCL Pin
(7) MIPI CSI SCCB I2C SDA Pin
Component config --->
Espressif Camera Sensors Configurations --->
[*] SC2336 ---->
Default format select for MIPI (RAW8 1280x720 30fps, MIPI 2lane 24M input) --->
(X) RAW8 1280x720 30fps, MIPI 2lane 24M input
USB Device UVC --->
USB Cam1 Config --->
UVC Default Resolution (HD 1280x720) --->
(X) HD 1280x720
(30) Frame Rate (FPS)
(1280) Cam1 Frame Width
(720) Cam1 Frame Height
Note: For custom development boards, please update the I2C pins configuration in the Example Configuration
menu.
Plaintext
Example Configuration --->
Camera sensor interface (DVP) --->
(X) DVP
(1) DVP SCCB I2C Port Number (NEW)
(33) DVP SCCB I2C SCL Pin (NEW)
(32) DVP SCCB I2C SDA Pin (NEW)
Component config --->
Espressif Camera Sensors Configurations --->
[*] OV2640 --->
Default format select (RGB565 640x480 6fps, DVP 8bit 20M input) --->
(X) RGB565 640x480 6fps, DVP 8bit 20M input
USB Device UVC --->
USB Cam1 Config --->
Default Resolution (VGA 640x480) --->
(X) VGA 640x480
(6) Frame Rate (FPS)
(640) Cam1 Frame Width
(480) Cam1 Frame Height
Plaintext
component config --->
USB Device UVC --->
USB Cam1 Config --->
Cam1 Format (MJPEG) --->
(X) MJPEG
Plaintext
component config --->
USB Device UVC --->
USB Cam1 Config --->
UVC Cam1 Format (H264) --->
(X) H264
Please note that the OV2640 doesn't support H.264 format, it only supports the JPEG format.
Build the project and flash it to the board, then run monitor tool to view serial output:
Plaintext
idf.py set-target esp32p4
idf.py -p PORT flash monitor
(To exit the serial monitor, type Ctrl-]
.)
See the ESP-IDF Getting Started Guide for full steps to configure and use ESP-IDF to build projects.
Running this example, you will see the following log output on the serial monitor:
Plaintext
...
I (1641) main_task: Calling app_main()
I (1641) gpio: GPIO[22]| InputEn: 1| OutputEn: 1| OpenDrain: 1| Pullup: 1| Pulldown: 0| Intr:0
I (1651) gpio: GPIO[23]| InputEn: 1| OutputEn: 1| OpenDrain: 1| Pullup: 1| Pulldown: 0| Intr:0
I (1661) sc2336: Detected Camera sensor PID=0xcb3a
I (1741) example: version: 0.5.1
I (1741) example: driver: MIPI-CSI
I (1741) example: card: MIPI-CSI
I (1741) example: bus: esp32p4:MIPI-CSI
I (1741) example: capabilities:
I (1751) example: VIDEO_CAPTURE
I (1751) example: STREAMING
I (1761) example: device capabilities:
I (1761) example: VIDEO_CAPTURE
I (1761) example: STREAMING
I (1771) example: version: 0.5.1
I (1771) example: driver: H.264
I (1781) example: card: H.264
I (1781) example: bus: esp32p4:H.264
I (1781) example: capabilities:
I (1791) example: STREAMING
I (1791) example: device capabilities:
I (1801) example: STREAMING
I (1801) example: Format List
I (1801) example: Format(1) = H.264
I (1811) example: Frame List
I (1811) example: Frame(1) = 1280 * 720 @30fps
I (1821) usbd_uvc: UVC Device Start, Version: 1.1.0
I (1821) main_task: Returned from app_main()
I (2031) usbd_uvc: Mount
I (3281) usbd_uvc: Suspend
...
Plaintext
...
I (1164) main_task: Calling app_main()
I (1164) gpio: GPIO[32]| InputEn: 1| OutputEn: 1| OpenDrain: 1| Pullup: 1| Pulldown: 0| Intr:0
I (1174) gpio: GPIO[33]| InputEn: 1| OutputEn: 1| OpenDrain: 1| Pullup: 1| Pulldown: 0| Intr:0
I (1194) ov2640: Detected Camera sensor PID=0x26
I (1274) example: version: 0.5.1
I (1274) example: driver: DVP
I (1274) example: card: DVP
I (1274) example: bus: esp32p4:DVP
I (1274) example: capabilities:
I (1284) example: VIDEO_CAPTURE
I (1284) example: STREAMING
I (1284) example: device capabilities:
I (1294) example: VIDEO_CAPTURE
I (1294) example: STREAMING
I (1304) example: version: 0.5.1
I (1304) example: driver: JPEG
I (1304) example: card: JPEG
I (1314) example: bus: esp32p4:JPEG
I (1314) example: capabilities:
I (1314) example: STREAMING
I (1324) example: device capabilities:
I (1324) example: STREAMING
I (1334) example: Format List
I (1334) example: Format(1) = MJPEG
I (1334) example: Frame List
I (1344) example: Frame(1) = 640 * 480 @6fps
I (1344) usbd_uvc: UVC Device Start, Version: 1.1.0
I (1354) main_task: Returned from app_main()
I (1564) usbd_uvc: Mount
I (2824) usbd_uvc: Suspend
...
Open potplay APP and select follow option in menu:
Plaintext
PotPlayer -->
Open -->
Camera/Other Device
You can see following log on the serial monitor and video in potlayer display window:
Plaintext
I (192121) usbd_uvc: Resume
I (192411) usbd_uvc: bFrameIndex: 1
I (192411) usbd_uvc: dwFrameInterval: 333333
If the console log shows as follows, it means your ESP32-P4 chip version is v0.0, and it is not supported by default configuration, please configure the right version by menuconfig:
Txt
A fatal error occurred: bootloader/bootloader.bin requires chip revision in range [v0.1 - v0.99] (this chip is revision v0.0). Use --force to flash anyway
menuconfig:
Component config ---> Hardware Settings ---> Chip revision ---> Minimum Supported ESP32-P4 Revision (Rev v0.1) ---> (X) Rev v0.0
To create a project from this example, run:
idf.py create-project-from-example "espressif/esp_video=0.9.0:uvc"