close-circle
Close
0%
0%

ZyncMV

Hardware Accelerated Machine Vision platform using the Xilinx Zync 7000 FPGA+ARM System on a Chip and OV04689-H67A 4K CMOS Sensor

Similar projects worth following
Inspired by the OpenMV and Pixie cam as well as my desire to broaden my horizons and learn the hardware of the Zync 7000 FPAG+SoC. The goal is to combine native OpenCV running on a linux operating system with some CV algorithms running in the FPGA hardware.
The entire design is open source under the CERN open hardware licesnes. The whole thing is being developed using the nightly build of KiCAD!

Specs as follows:
- Xilinx XC7Z010-1CLG225C Dual Core ARM Cortex A9 667MHZ + Artix 7 FPGA 28K Cells
- OV04689-H67A 4K Camera Module
- PCB board mounted CS Lens Mount
- Micron MT41K512M8DA-107-XIT:P DDR3L 512MB Memory Module
- USB 2.0 Connectivity
- GPIO headers for addons and hacking
- TPS659118A2ZRCT Power management controller IC

Inspired by the OpenMV, Pixie, and ZynqBerry Projects, a Zynq based computer vision platform. Combining Zynq 7000 ARM+FPGA SoC, 4K CMOS image sensor, DDR3L memory, and completely integrated power controller, into a standalone integrated hardware computer visiosn platform.

The entire design is open source under the CERN open hardware licesnes. The whole thing is being developed using the nightly build of KiCAD!

Specs as follows:

- Xilinx XC7Z010-1CLG225C Dual Core ARM Cortex A9 667MHZ + Artix 7 FPGA 28K Cells

- OV04689-H67A 4K Camera Module

- Micron MT41K512M8DA-107-XIT:P DDR3L 512MB Memory Module

- USB 2.0 Connectivity

- GPIO headers for addons and hacking

- TPS659118A2ZRCT Power management controller IC

Adobe Portable Document Format - 987.82 kB - 02/03/2017 at 04:15

eye
Preview
download-circle
Download

Adobe Portable Document Format - 197.17 kB - 02/03/2017 at 04:15

eye
Preview
download-circle
Download

Adobe Portable Document Format - 1.52 MB - 02/01/2017 at 07:50

eye
Preview
download-circle
Download

Adobe Portable Document Format - 2.68 MB - 01/24/2017 at 07:14

eye
Preview
download-circle
Download

Adobe Portable Document Format - 3.14 MB - 01/24/2017 at 07:14

eye
Preview
download-circle
Download

View all 27 files

  • An Open Source Hardware Computer Vision Platform

    Adam Vadala-Roth01/24/2017 at 07:19 0 comments

    So I've been teasing this project for quite sometime, the specs were up in the air for a while but things have now solidified to an extent and I've been working my way through implementing the schematic. Originally the ZyncMV was going to be a relative of the OpenMV platform replacing the STM32 ARM Cortex M7 with the Xilinx Zynq FPGA+ARM SoC using the same camera module etc.

    Initially the specifications were as follows:

    - Xilinx XC7Z010-1CLG225C Dual Core ARM Cortex A9 667MHZ + Artix 7 FPGA 28K Cells
    - OV7725 VGA Camera Module
    - Micron LDDR2 Memory Module
    - USB 2.0 Connectivity
    - ESP8285 WiFI SoC for wireless operation
    - GPIO headers for addons and hacking
    - Onboard DCDC regulators for all voltages with enough current for accessories and hacking

    ZyncMV started out being very similar to the OpenMV platform but after a bit more research I decided it was more capable than I originally realized so I decided to change the image sensor to a higher resolution model and swap the memory to DDR3L since its more available. At the same time I decided that WiFi is non essential so its currently been dropped as a feature unless there is space on the PCB later. Initially the power system was going to be constucted out of DCDC regulators with some filtering to smooth out the voltage but I decided that it was a rather janky implementation for such a complex and high end piece of silicon so I decided to use a power management controller IC in place of the 3 regulators. With all those chnages ZyncMV evolved into its own unique hardware project instead of a mashup of others. The following are the new specifications:

    - Xilinx XC7Z010-1CLG225C Dual Core ARM Cortex A9 667MHZ + Artix 7 FPGA 28K Cells
    - OV04689-H67A 4K Camera Module
    - Micron MT41K512M8DA-107-XIT:P DDR3L 512MB Memory Module
    - USB 2.0 Connectivity
    - GPIO headers for addons and hacking
    - TPS659118A2ZRCT Power management controller IC

    Even though its essentially a whole new project and design, its been inspired by both the ZynqBerry and the OpenMV projects showcased here on Hackaday.io. So thank you guys for sharing your projects and knowledge!

    This is the biggest most insane thing I've attempted yet, so stay tune for more fun to follow!

View project log

Enjoy this project?

Share

Discussions

Ted Yapo wrote 01/09/2017 at 19:10 point

Wow, this is a great project idea!

If I can add my humble suggestions - some of the things missing from affordable cameras are external (hardware) frame synchronization and long-ish exposure times.  I ended up finding some older firewire machine vision cameras on ebay relatively inexpensively, but they'd be in the kilodollar range new.  Having this functionality in an open-sourced camera would be awesome.  Even if you don't add it, having the design open-sourced so that someone else could would be a huge win.

  Are you sure? yes | no

Adam Vadala-Roth wrote 01/10/2017 at 05:25 point

Hi Ted, thanks for commenting, I'm always looking for suggestions and wisdom from other engineers! How should I implement those features, there should be plenty of pins available on the Zync for more features even with what I already have planned. 

  Are you sure? yes | no

Adam Vadala-Roth wrote 01/10/2017 at 06:46 point

I'm also adding to the design on the same schematic sheet as the camera an RGB light source and a IR light source. Perhaps I should make a second PCB that mounts around the optics assembly for lighting? Would love your input since you seem to know what you are doing.

  Are you sure? yes | no

Ted Yapo wrote 01/10/2017 at 19:01 point

"Know what I'm doing" is probably generous :-)

I took a look at the OV7725 brief; it's a rolling-shutter sensor, which I guess makes sense because it's inexpensive and available...some of what I was suggesting makes more sense for a global-shutter camera, but the synchronization still applies.

On commercial offerings, they typically provide an opto-isolated trigger input to synchronize the frame scan.  Software sets up the camera to take a single frame or multiple frames, then the camera waits for the external sync signal to capture each frame.  This is useful for synchronizing the exposure with structured light systems or other strobed illumination.  It is also required to obtain well-synchronized stereo or multi-view image sets from multiple cameras.

Long exposure is more difficult with rolling shutter cameras, but it would be useful to have full control over the exposure range (the spec sheet states 510:1 based on fps).  Also, although the "automatic" adjustments done by the camera make for an easy learning curve, exposing the full range of each manual control allows more sophisticated uses.

A second board for illumination is nice for flexibility - I have been frustrated with inexpensive cameras that carry their own LEDs. 

My suggestion would be to use a white LED source for color images instead of RGB unless you intend to do something unusual (like #Bullet Movies - still a work-in-progress).  White LEDs typically provide better color rendition than "white" light created from three separate red, green, and blue LEDs; the latter usually has "holes" in the spectrum.  This has a brief intro:

https://www.digikey.com/en/articles/techzone/2013/oct/what-is-the-color-rendering-index-and-why-is-it-important

  Are you sure? yes | no

Adam Vadala-Roth wrote 01/28/2017 at 22:12 point

Hey Ted, thanks for you lengthy response and input, I've been working on the design and it has changed quite a bit, I'm now using a different image sensor the OV4689 its much higher resolution, I went with it because the Zynq is more than capable of processing the higher resolution in realtime. I am going to make a few light baords that are controlled by the Zynq that's sampling and controlling the camera sensor, so IDK if an external trigger will be required, it won't be hard to add it as a feature if folks really want it. I'm still in the schematic phase so more input and suggestions are welcome. Thanks again for your interest!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates