Parallel IO: ESP32-C5 image streaming with DVP Cameras (ESP32-C5-CAM)
-
HaqqScripter
- Posts: 8
- Joined: Fri May 16, 2025 10:00 am
Re: Parallel IO: ESP32-C5 image streaming with DVP Cameras
With various concepts, I was able to solder this on a prototype board and with the correct settings, managed to stream ~32Mbps (AP) via HTTP TCP, and can sustain that speed.
Now, I'm making an open-sourced ESP32-C5-CAM hardware development board. Most of the materials are given (Gerber, BOM, Pick & Place, Schematic) so you can tinker with them or manufacture the PCB. At the moment, ESP32-C5-CAM-BETA1 is not available.
ESP32-C5-CAM Hardware: https://github.com/HaqqScripter/ESP32-C5-CAM_Hardware
-
HaqqScripter
- Posts: 8
- Joined: Fri May 16, 2025 10:00 am
Re: Parallel IO: ESP32-C5 image streaming with DVP Cameras (ESP32-C5-CAM)
Latest performance report for the OV5640 (tested with ESP32-C5) on the upcoming esp_cam_io_parl version 0.1.0-beta.11:
+ Applied auto banding filter.
+ Frame rate increase at normal operation, now the camera captures JPEG images 12FPS (from 10fps) at maximum resolution, and 16FPS (from 13FPS) at QHD resolution. v0.1.0 will be marked as released after all of the basic features are finalized, since I haven't finished figuring out the custom implementation of the PARLIO driver to work with the DVP port. If all of the major features listed (such as full DVP port) are implemented, then v1.0.0 will be released.
Feel free to contribute or give feedback about the DVP camera implementation with the PARLIO peripheral.
+ Applied auto banding filter.
+ Frame rate increase at normal operation, now the camera captures JPEG images 12FPS (from 10fps) at maximum resolution, and 16FPS (from 13FPS) at QHD resolution. v0.1.0 will be marked as released after all of the basic features are finalized, since I haven't finished figuring out the custom implementation of the PARLIO driver to work with the DVP port. If all of the major features listed (such as full DVP port) are implemented, then v1.0.0 will be released.
Feel free to contribute or give feedback about the DVP camera implementation with the PARLIO peripheral.
-
zamlelectronics
- Posts: 1
- Joined: Tue Nov 18, 2025 3:34 pm
Re: Parallel IO: ESP32-C5 image streaming with DVP Cameras (ESP32-C5-CAM)
OMG, you're a lifesaverI have successfully be able to interface DVP camera with ESP32-C5 (Or targets supporting Parallel IO peripheral) to achieve 5GHz connectivity without the need to use other SoCs.
This is useful for example, a cost-effective single-chip applications requiring Wi-Fi 6 connectivity. For my use case, it is a dual-band Wi-Fi surveillance camera.
For OV5640, I was able to get ~28fps up to SVGA, ~32fps at HVGA, ~22fps on 1280x960, ~30fps on HD, ~13.5 (max) on FHD/WUXGA as well as QXGA/QSXGA (~10fps max) in its default setting.
You can refer to High Performance Mode (HPM) to require higher frame rates on OV5640 and OV3660. I would say it is comparable to Xtensa chips.
video_transferring_esp32_c5.gif
video_transferring_esp32_c5_pt2.gif
For convenience, I have also made an ESP-IDF component esp_cam_io_parl v0.1.0-beta.10:
ESP Component Registry: https://components.espressif.com/compon ... am_io_parl
GitHub: https://github.com/haqqscripter/esp_cam_io_parl
Introducing High Performance Mode (HPM):
OV5640 (esp_cam_io_parl v0.1.0-beta.7):OV3660 (esp_cam_io_parl v0.1.0-beta.10):
- Allow images to be captured around 15FPS at maximum resolution (2592x1944), you can also achieve 20FPS QHD/FHD with this setting enabled.
A stable 24MHz XCLK is preferred. View README.md on esp_cam_io_parl for more details.
- Allow images to be captured around 20FPS at maximum resolution (2048x1536), you can also achieve 30FPS FHD with this setting enabled.
ESP-IDF component features checklist before official version release:
- Rewrite esp_cam_io_parl headers and C code (Using esp_driver_parlio currently has some limitations). [Not Complete]
- Merge and rewrite esp_camera_sensor into esp_cam_io_parl. [Pending]
- ETM support for some DVP signals (trigger PARLIO RX start). [Not Complete]
- Allow methods to replicate the valid signal for targets that doesn't have sufficient bit width. [Not Complete]
You can now produce your own camera development board based on the ESP32-C5:
ESP32-C5-CAM Hardware: https://github.com/HaqqScripter/ESP32-C5-CAM_Hardware
-
HaqqScripter
- Posts: 8
- Joined: Fri May 16, 2025 10:00 am
Re: Parallel IO: ESP32-C5 image streaming with DVP Cameras (ESP32-C5-CAM)
I see, well thank you. I'm glad that you find this helpful for your projectsOMG, you're a lifesaverI have successfully be able to interface DVP camera with ESP32-C5 (Or targets supporting Parallel IO peripheral) to achieve 5GHz connectivity without the need to use other SoCs.
This is useful for example, a cost-effective single-chip applications requiring Wi-Fi 6 connectivity. For my use case, it is a dual-band Wi-Fi surveillance camera.
For OV5640, I was able to get ~28fps up to SVGA, ~32fps at HVGA, ~22fps on 1280x960, ~30fps on HD, ~13.5 (max) on FHD/WUXGA as well as QXGA/QSXGA (~10fps max) in its default setting.
You can refer to High Performance Mode (HPM) to require higher frame rates on OV5640 and OV3660. I would say it is comparable to Xtensa chips.
video_transferring_esp32_c5.gif
video_transferring_esp32_c5_pt2.gif
For convenience, I have also made an ESP-IDF component esp_cam_io_parl v0.1.0-beta.10:
ESP Component Registry: https://components.espressif.com/compon ... am_io_parl
GitHub: https://github.com/haqqscripter/esp_cam_io_parl
Introducing High Performance Mode (HPM):
OV5640 (esp_cam_io_parl v0.1.0-beta.7):OV3660 (esp_cam_io_parl v0.1.0-beta.10):
- Allow images to be captured around 15FPS at maximum resolution (2592x1944), you can also achieve 20FPS QHD/FHD with this setting enabled.
A stable 24MHz XCLK is preferred. View README.md on esp_cam_io_parl for more details.
- Allow images to be captured around 20FPS at maximum resolution (2048x1536), you can also achieve 30FPS FHD with this setting enabled.
ESP-IDF component features checklist before official version release:
- Rewrite esp_cam_io_parl headers and C code (Using esp_driver_parlio currently has some limitations). [Not Complete]
- Merge and rewrite esp_camera_sensor into esp_cam_io_parl. [Pending]
- ETM support for some DVP signals (trigger PARLIO RX start). [Not Complete]
- Allow methods to replicate the valid signal for targets that doesn't have sufficient bit width. [Not Complete]
You can now produce your own camera development board based on the ESP32-C5:
ESP32-C5-CAM Hardware: https://github.com/HaqqScripter/ESP32-C5-CAM_Hardware! I saw the majority of people saying that this chip does not support DVP cameras at all, which is odd since the ESP32-C5 has a parallel interface. I kept researching and found this forum. This will make my projects a heck of a lot cheaper and simpler since I need dual-band Wi-Fi. I've heard enough about the ESP32-P4 + ESP32-C5 combo—I only need MJPEG streams to develop an in-house IP camera or a digital camera! I don't know why this does not get a lot of attention it deserves. Even the devs themselves didn't do anything about this, even though they seem to have planned DVP using PARLIO in the DevCon24, as mentioned "still under development".
It is fine. Those who want to create a camera project based on the ESP32-C5 (or any targets that support the PARLIO peripheral) can search and find this forum.
Who is online
Users browsing this forum: No registered users and 0 guests