Skip navigation
> RoadTest Reviews

Digilent ARTY Z7 Dev Board - Review

Scoring

Product Performed to Expectations: 9
Specifications were sufficient to design with: 10
Demo Software was of good quality: 7
Product was easy to use: 8
Support materials were available: 7
The price to performance ratio was good: 6
TotalScore: 47 / 60
  • RoadTest: Digilent ARTY Z7 Dev Board
  • Buy Now
  • Evaluation Type: Development Boards & Tools
  • Was everything in the box required?: Yes
  • Comparable Products/Other parts you considered: zedboard with AVNET HDMI FMC board (AES-FMC-HDMI-CAM-G)
  • What were the biggest problems encountered?: getting Arty Z7 to connect to internet via host pc

  • Detailed Review:

    Update: 22 Aug 2018

     

    The Arty Z7 is a respectable entry level zynq board suitable for user who want to do embedded vision. It has integrated HDMI input and output, making it compatible to other board that i have tried with -> Zedboard with AVNET HDMI FMC daughterboard(AES-FMC-HDMI-CAM-G, which itself cost US$250). However it will be best if its price can be cheaper. In addition it has arduino compatible connector making it possible to take in some arduino shields.

    One special feature of the Arty Z7 is that it is programmable with Python with PYNQ, itself an open source project from Xilinx. In fact the first thing i want to try is the Python interface. This makes even user with limited knowledge on HDL language can make use of FPGA. So how is this possible? Below is the essence of how it is possible which i copy from https://pynq.readthedocs.io/en/latest/pynq_overlays.html

    PYNQ provides a Python interface to allow overlays in the PL to be controlled from Python running in the PS. FPGA design is a specialized task which requires hardware engineering knowledge and expertise. PYNQ overlays are created by hardware designers, and wrapped with this PYNQ Python API. Software developers can then use the Python interface to program and control specialized hardware overlays without needing to design an overlay themselves. This is analogous to software libraries created by expert developers which are then used by many other software developers working at the application level.

     

    Now, my review is to try out whether it is easy or not, and since i am a new user to PYNQ i believe i will be neutral enough.

     

    Setting it up

     

    Some extra accessories that are handy is a microSD card (>=8GB), ethernet cable, and optionally DC power (7-15V). the latter is useful if you connect too many external components to the board.

     

    As i plan to use PYNQ with the board, the first thing is to install PYNQ image. However, the official boards supported by PYNQ does not explicitly list Arty Z7. However, after following https://pynq.readthedocs.io/en/latest/getting_started/pynq_z1_setup.html , i discover that the setup for Arty Z1 is similar.

     

    I have downloaded the image as below and use Win32 Disk Imager to burn it to a 16GB microSD (8GB is minimally accepted)

    writing the PYNQ wih Win32 Disk Imager

     

    1) set the JP4 to SD (it fact this is the exact same step for Z1 even with the same 'JP4').

    2) set the JP5 to either power up from USB or DC jack (7-15V)

    3) insert the micro SD card with the PYNQ-Z1 image to the microSD slot beneath Arty Z7

    4) connect the USB cable linking PC to micro USB port on the board.

     

    after (4) the board will power up, and the DONE LED will light up as photo below

    Arty Z7 boot up with PYNQ-Z1 image

    one then can follow the tutorial on [2] on how to test Python with the board. However, please take note we need to set our laptop IP address to be static as below

    192.168.2.xxx   (xxx can be any value between 0-255 excluding 99) and setup 255.255.255.0 as subnet Mask

    my laptop has gigabit ethernet so i can connect to Arty Z7 with a normal LAN cable. Gigabit ethernet is capable to do direct connection without a router. If in unlikely event

    your laptop has an ancient none gigabit ethernet port you do need either a router or a crossover cable. After that, use a jupyter compatible browser to open up pynq:9090

    and you will see screen below. Note: in case pynq:9090 didn't wort, use 192.168.2.99:9090

    jupyter connection to arty z7

    key in the password (default is 'xilinx') and you will get to

    pynq jupyther start screen for arty z7

    Using it

    i started by looking at the custom overlay on the [3]. At first glance, there are some interesting projects that suit my interest -> DNN and embedded vision.

    for example, ismartDNN is entry from ismart2 team who won 3rd prize in https://www.dac.com/content/2018-system-design-contest

    after looking at these great community overlays, i start to understand that PYNQ releases ship with the popular OpenCV library pre-installed.

     

    for new user to Jupyter like me, it is good to read through https://pynq.readthedocs.io/en/latest/jupyter_notebooks.html

    in fact, it is good idea to read through the material in the getting_started folder of your PYNQ accessed via the browser. The Jupyter notebook, somewhat similar to MATLAB live script, allows user

    to write script and interactively run them. Image and video is supported and this makes it possible to do embedded vision via the Jupyter notebook.

     

    Applications

    To me it is simplest to run a different set of applications on the board to review its usefulness

     

    Simple IO

    This is the first time i am running PYNQ and is pleasantly surprise with its ease and the matplotlib visualization

    screenshot below shows running 4_base_overlay_iop on the pynq getting started folder

    running pynq getting started IO example 4_base_overlay_iop

     

    Audio

    The getting started also comes with an audio example. Again the visualizations are credible and looks similar to those produced with MATLAB.

    It also plays the audio "Welcome to the PYNQ Z1 board" , well i did use a PYNQ Z1 image

    audio example on PYNQ on Arty Z7

     

    Embedded Vision

    The PYNQ computer vision overlays enable accelerating OpenCV components in Programmable Logic (PL). These overlays expose a subset Xilinx' xfOpenCV library (a part of Xilinx' reVISION solution) at the Python level, combined with the support for HDMI input/output. Note that webcam, stream or file based input/output remains available through the pre-installed SW OpenCV.

    To install the computer vision overlay, use putty to SSH to Arty Z7. The default login name and password are 'xilinx'.  From terminal, type the command

    $ sudo -H pip3.6 install --upgrade git+https://github.com/Xilinx/PYNQ-ComputerVision.git

     

    doing it without the computer vision overlay, i get below

    webcam acquisition

     

    Related

    Until now, i have being experimenting with the PYNQ python interface. In future, should try the other approaches

    Arty Z7 with MATLAB -> placeholder to be explored in future

    Arty Z7 with SDSOC -> placeholder to be explored in future

     

    Summary

    The Arty Z7 is somewhat pricey but provide a powerful chip for embedded vision application. It also has sufficient integrated peripherals like HDMI input and output, USB for webcam.

    Being able to use Jupyter notebook means for simple proof of concept of idea, even a software engineer can handle it. This can really save time. In addition, it doesn't need Vivado licenses (so long if one can survive with the community provided overlays. Although i haven't tested it myself due to time limitation, it looks possible to performs some deep neural network inference.

     

    References

    [1] setting up the board with PYNQ. don't worry although no Arty Z7 is mentioned it is similar in setup https://pynq.readthedocs.io/en/latest/getting_started/pynq_z1_setup.html

    [2] Hackster.io https://www.hackster.io/90432/programming-python-on-zynq-fpga-ec4712

    [3] PYNQ community https://www.pynq.io/community.html

    [4] IR vision with Digilent's Arty Z7-20, a Xilinx Zynq 7020-based development board http://www.embedded-computing.com/guest-blogs/adfas

    [5] Adam's entry on hackster.io on webcam and HDMI input https://www.hackster.io/adam-taylor/use-python-zynq-and-opencv-to-implement-computer-vision-361e1b

    [6] sharing internet from host pc to PYNQ https://groups.google.com/forum/#!topic/pynq_project/IK_Bp_aQNHI . as of writing i haven't tried on a mac. i tried with windows 10 bridging and it doesn't work


Comments

Also Enrolling

Enrollment Closes: Jul 1 
Enroll
Enrollment Closes: Jul 12 
Enroll
Enrollment Closes: Jun 25 
Enroll
Enrollment Closes: Jul 1 
Enroll
Enrollment Closes: Jul 16 
Enroll
Enrollment Closes: Jun 17 
Enroll
Enrollment Closes: Jun 17 
Enroll
Enrollment Closes: Jun 17 
Enroll