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
Top Comments
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…