Introducing the Pcam 5C peripheral camera module!
Embedded vision technology is impacting more and more application areas, with many of these areas forecasting huge growth. Machine learning, augmented reality, smart cars, the list of cutting edge embedded vision applications goes on. With the Pcam 5C hardware plus the software IP Digilent has developed for it, we’re bringing something unique to those looking to develop or learn about embedded vision applications. And, it’s all open source.
First of it’s family, the Pcam 5C is a peripheral camera module designed specifically for use with Zybo Z7 Zynq-7000 ARM/FPGA development platform. Unlike most other camera solutions that require the user to interact with the image sensor via HDMI or USB, we’re enabling direct communication between the sensor and the FPGA, resulting in extremely low latency.
The Pcam 5C is built around the Omnivision OV5640, a 5 MP (megapixel), fixed focus, color image sensor. The sensor itself includes various internal processing functions that can be enabled to improve image quality including hue, gamma, sharpness and saturation adjustment, as well as auto white balance and black level calibration.
Data is transferred over a dual-lane MIPI CSI-2 interface which supports 1080p and 720p common video streaming formats. The module connects to the Zybo Z7 via a 15-pin flat-flexible cable (FFC) that is pin compatible with the familiar camera connector found on the Raspberry Pi board. The Pcam 5C comes with a factory installed fixed focus lens that can be manually adjusted by the user depending on the application.
The Pcam 5C is a uniquely low-level design because data is transferred over the image sensor’s native interfaces, namely CSI-2 and I2C. Expanding on this further, since the video data is flowing into the FPGA as opposed to a hard silicon CSI-2 decoder (such as is present in the Raspberry Pi), users can study exactly how the D-PHY and CSI-2 decoding is done.
Additional video processing IP can also be spliced in between the CSI-2 decoded data and the DMA controller that streams the data into onboard memory. This allows users to study how an image sensor actually works, by getting raw data from it and seeing how it can be improved through implementation of standard digital video processing. This makes the Pcam 5c + Zybo Z7 a unique and valuable tool to those studying embedded vision concepts, or looking to develop their own embedded vision products and applications.
The CSI-2 interface is not easy to implement. But luckily, we’ve done that for you! The Pcam 5C + Zybo Z7 demo project passes the video data from the image sensor to the HDMI output port on the Zybo Z7. The image sensor is put in “RAW” output mode, and image processing is done in the FPGA to convert from the raw Bayer pattern data to standard RGB data that can be transmitted over the Zybo Z7 HDMI port to a display.
All IP that is used in the demo is open source, including a D-PHY receiver, CSI-2 decoder, Bayer to RGB converter, and gamma correction IP. At run-time, the user is given the ability to adjust some settings, such as video resolution and gamma adjustment, from a UART terminal. IP is designed in VHDL and Zynq ARM processor code is written in C and C++. See the project page on the Digilent Wiki for more detailed instructions on how to use the demo. Additionally, make sure to check out the Pcam 5C Resource Center for other relevant tutorials and information.