Digilent ARTY Z7 Dev Board - Review

Table of contents

RoadTest: Digilent ARTY Z7 Dev Board

Author: weiwei2

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: 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)

 

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

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

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

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

 

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

 

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

 

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

Anonymous
  • thank you for your comment C-3PO. it is good suggestion to list down the tips and tricks. I am actually still new to the PYNQ that uses the jupyther notebook. While it find it easy to pick up and run, there are indeed many aspects that i am still finding it be different from my previous workflow. i will certainly try update my roadtest. In addition, i am trying out newer video processing example.

  • I do like your style of writing. Overall I rate this above average because you stated your objectives and then show step by step process. One thing lacking is showing tips and tricks. Any software will have a few thing learned. Thanks for the review.

    Clem