Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:start [2017/12/23 01:35] – [Table] sbobrowiczlearn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:start [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Zybo Z7 Pcam 5C Demo ======+====== Zybo Z7-20 Pcam 5C Demo ======
  
 {{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-running.jpg|}} {{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-running.jpg|}}
Line 18: Line 18:
  
  
-^ Supported Resolutions:        ^ Supported Image Sensor Output Formats  ^ +^ Supported Resolutions:        ^ Supported Image Sensor Output Formats  ^ Supported OV5640 Image Processing Features                                                                               ^ Image Processing Features Performed in FPGA  ^ 
-| * 1080p@30Hz\\   * 720p@60Hz  | * RAW                                  |+| * 1080p@30Hz\\   * 720p@60Hz  | * RAW                                  | * Auto White Balance\\ * Defective Pixel Canceling\\ * Auto Exposure Control (AEC)\\ * Auto 50/60Hz Luminance Detection  | * Demosaicing \\ * Gamma Correction          |
  
    
Line 52: Line 52:
  
 ===Hardware=== ===Hardware===
-  * **Zybo Z7 board**+  * **Zybo Z7-20 board** 
 +  * **[[https://digilent.com/shop/5v-2-5a-switching-power-supply/|External 5V supply]]**
   * **Micro-USB cable**   * **Micro-USB cable**
-  * **1 HDMI cable**+  * **1 HDMI Type A to Type A or HDMI Type A to DVI-D cable**
   * **1 Pcam 5C assembly**   * **1 Pcam 5C assembly**
-  * **HDMI monitor**+  * **HDMI or DVI monitor**
  
 ===Software=== ===Software===
Line 70: Line 71:
 ===== Download and Launch the Zybo Z7 Pcam 5C Demo ===== ===== Download and Launch the Zybo Z7 Pcam 5C Demo =====
  
->Follow the [[:learn:programmable-logic:tutorials:github-demos:start:|Using Digilent Github Demo Projects]] Tutorial. Since this is a Vivado SDK Project, you can either directly launch SDK and import the hardware handoff, or you can generate a bitstream in Vivado before launching SDK. Select the hardware handoff options in the tutorial if you don't want to modify the project block design later. Return to this guide when prompted to check for additional hardware requirements and setup.+>Follow the [[learn:programmable-logic:tutorials:github-demos:start:|Using Digilent Github Demo Projects]] Tutorial. Since this is a Vivado SDK Project, you can either directly launch SDK and import the hardware handoff, or you can generate a bitstream in Vivado before launching SDK. Select the hardware handoff options in the tutorial if you don't want to modify the project block design later. Return to this guide when prompted to check for additional hardware requirements and setup.
  
->Plug one end of the HDMI cable into the HDMI TX port of the Zybo Z7 and the other into your HDMI monitor. Also attach a USB micro cable between the Zybo Z7 and your computer. Finally, attach an external 5V power supply if you don't want to power from USB. +>Plug one end of the HDMI cable into the HDMI TX port of the Zybo Z7 and the other into your HDMI monitor. Also attach a USB micro cable between the Zybo Z7 and your computer. Finally, attach an external 5V power supply, since the power demand surpasses the USB power budget. 
 > >
 >{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-hdmi.jpg?800|}} >{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-hdmi.jpg?800|}}
  
->Attach the Pcam 5C assembly (which includes the Pcam 5C and the attached 15-pin flat flexible cable) by inserting the other end of the FFC into the Pcam connector on the Zybo Z7 as shown in image below. Ensure the cable is securely latched by pressing down firmly on the connector with two fingers.+>Attach the Pcam 5C assembly (which includes the Pcam 5C and the attached 15-pin flat flexible cable) by inserting the other end of the FFC into the Pcam connector on the Zybo Z7 as shown in image below. Ensure the cable is securely latched by pressing down firmly on the connector with two fingers. For a more detailed set of instructions, see the Pcam section in the [[programmable-logic:zybo-z7:reference-manual#pcam_port|Zybo Z7 Reference Manual]]. If the cable has become disconnected from the Pcam 5C, please see the [[add-ons:pcam-5c:reference-manual|Pcam 5C reference manual]] for instructions on how to reattach it.
 > >
 >{{:reference:programmable-logic:zybo-z7:zybo-z7-pcam-attach.png|}} >{{:reference:programmable-logic:zybo-z7:zybo-z7-pcam-attach.png|}}
  
->To see the UART communication channel, open a terminal program on your computer set to 112500 baud rate, 8 data bits, no parity bit and 1 stop bit. On startup, the Zybo Z7 will display the image sensor control and post processing menu, shown below.+>To see the UART communication channel, open a terminal program on your computer set to 115200 baud rate, 8 data bits, no parity bit and 1 stop bit. On startup, the Zybo Z7 will display the image sensor control and post processing menu, shown below.
 > >
 >{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-teraterm.PNG?800|}} >{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-teraterm.PNG?800|}}
Line 88: Line 89:
 ==== Pcam 5C Image Sensor and Post Processing Options ==== ==== Pcam 5C Image Sensor and Post Processing Options ====
  
->  1 - FIXME +>**a - Change Resolution** 
-> +>    This option can be used to change the resolution of the video coming from the sensor. Currently 1080p@15Hz is not supported and will cause problems if used. 
->FIXME +>**b - Change Liquid Lens Focus** 
-> +>    This option is not compatible with this version of the Pcam 5C and should be ignored  
->//The demo in action - streaming camera data from the sensor.//+>**d - Change Image Format** 
 +>    This option was included for debugging purposes and should always be set to RAW mode (option 2) 
 +>**e - Write a Register inside the Image Sensor** 
 +>    This option allows you to write a value to any register inside the Image sensor over the OmniVision SCCB interface. You will need to refer to the OV5640 datasheet for information on the register map. This option is very useful for exploring the features of the image sensor. 
 +>**f - Read a Register inside the Image Sensor** 
 +>    This option allows you to read the value of any register inside the Image sensor over the OmniVision SCCB interface. 
 +>**g - Change Gamma Correction Factor Value** 
 +>    This option allows you to change the amount of gamma correction that is done by the custom AXI stream IP inside the FPGA. 
 +>**h - Change AWB Settings** 
 +>    This option allows you to adjust how the image sensor is doing auto white balancing. There are 3 modes: Advanced, simple, and disabled. The advanced mode sometimes causes dramatic shifts between "red-ish" and "blue-ish" tints. 
  
 ==== Pcam 5C Image Quality Notes ==== ==== Pcam 5C Image Quality Notes ====
Line 98: Line 108:
 This demo uses our own software to configure the OV5640 image sensor and open source IP to post process the image data. Both of these facets of the software greatly affect image quality. This section documents the current quality of the images our software is able to produce with the Pcam 5C. We are aware that the quality of the image affects whether the Pcam 5C is suitable for some applications, so the information provided here can be used to help determine if the product will fit your needs. This demo uses our own software to configure the OV5640 image sensor and open source IP to post process the image data. Both of these facets of the software greatly affect image quality. This section documents the current quality of the images our software is able to produce with the Pcam 5C. We are aware that the quality of the image affects whether the Pcam 5C is suitable for some applications, so the information provided here can be used to help determine if the product will fit your needs.
  
-We hope to improve the quality of the images produced by this demo over time, so please check back often if you are interested. We are also looking into using Xilinx IP and the Omnivision provided Linux drivers to provide another software option for the use of the Pcam 5C. This will be made available if successful on the [[:reference:add-ons:pcam-5c:start|Pcam 5C Resource Center]].+We hope to improve the quality of the images produced by this demo over time, so please check back often if you are interested. We are also looking into using Xilinx IP and the Omnivision provided Linux drivers to provide another software option for the use of the Pcam 5C. This will be made available if successful on the [[add-ons:pcam-5c:start|Pcam 5C Resource Center]].
  
 === Color Accuracy === === Color Accuracy ===
  
-We have seen some issues with the accuracy of the colors produced in some conditions. The affect is that colors seem less vivid and washed out. In some cases the image tends to look a little skewed towards "yellow-ish". When the gamma adjustment is set higher, this affect becomes more noticeable. The images below compare the image produced with the Pcam 5C to images produced by a high-quality USB web camera. The camera used was a Logitech C920. The USB camera is on the right and the Pcam 5C image is on the left. +>We have seen some issues with the accuracy of the colors produced in some conditions. The affect is that colors seem less vivid and washed out. In some cases the image tends to look a little skewed towards "yellow-ish". When the gamma adjustment is set higher, this affect becomes more noticeable. The images below compare the image produced with the Pcam 5C to images produced by a high-quality USB web camera. The camera used was a Logitech C920. The USB camera is on the right and the Pcam 5C image is on the left. 
- +> 
-{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-color-gamma-crop.jpg|}} +>{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-color-gamma-crop.jpg|}} 
- +> 
-//No gamma correction, Pcam on Left// +>//No gamma correction, Pcam on Left// 
- +> 
-{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-color-crop.jpg|}} +>{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-color-crop.jpg|}} 
- +> 
-//With gamma correction, Pcam on Left//+>//With gamma correction, Pcam on Left// 
 +>
  
 === Over Exposure === === Over Exposure ===
  
-Some situations that contain a mix of dark and bright areas will cause the brighter areas to look overexposed. Notice the very white area of the image produced by the Pcam 5C. +>Some situations that contain a mix of dark and bright areas will cause the brighter areas to look overexposed. Notice the very white area of the image produced by the Pcam 5C. 
- +> 
-{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-exposure-crop.jpg|}} +>{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-exposure-crop.jpg|}} 
- +> 
-//Pcam on left with overexposure of bright area on right side of image//+>//Pcam on left with overexposure of bright area on right side of image// 
 +>
  
 === Visible Border Line === === Visible Border Line ===
  
-The top and left edges of the image have a single pixel gray line. This artifact is introduced by our post processing IP. It is a known issue we plan to resolve in a future release of our IP. The image below is taken with the Pcam 5C lens cap on, which makes the gray line very visible on the all black image.  +>The top and left edges of the image have a single pixel gray line. This artifact is introduced by our post processing IP,  axis_raw_demosaic. It is an accepted side-effect of the border interpolation algorithm used and we plan to provide other options in future versions of the IP. The image below is taken with the Pcam 5C lens cap on, which makes the gray line very visible on the all black image.  
- +> 
-{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-border.jpg|}} +>{{:learn:programmable-logic:tutorials:zybo-z7-pcam-5c-demo:pcam-5c-border.jpg|}} 
- +> 
-//Gray border on the top and left sides//+>//Gray border on the top and left sides// 
 +>
  
 {{tag>learn programmable-logic project zybo-z7 add-ons pcam-5c pcam}} {{tag>learn programmable-logic project zybo-z7 add-ons pcam-5c pcam}}