RoadTest: Read the Reviews of the Avnet ZUBoard 1CG Development Kit
Author: manihatn
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?: The only other product that is comparable is Ultra96-v2 (but ultra96-v2 is a bit expensive compared to the ZUBOARD-1CG). There are also a couple of UltraScale+ based SOM from Avnet but they are a different class of devices.
What were the biggest problems encountered?: One minor suggestion. There is a wealth of knowledge dispersed across web (hackster, avnet and element14 webinars) relating to the board. It will be good if the webinars are also indexed in the board specific landing page (in Avnet).
Detailed Review:
I am thankful to Randall and the entire element14 team for giving me the opportunity for my first RoadTest review on Element14. It has been a good learning experience and I have thoroughly enjoyed it and hope to take part in future events.
Zynq UltraScale+ FPGA based SoC's are a dynamic hardware and software platform that allows you to design, test, and implement custom digital circuits for a wide range of applications from Artificial intelligence/Machine learning to Embedded Vision/processing for different market segments, In this roadtest, I will try out the Avnet ZUBoard 1CG Development kit, describe the received components, resources used for doing the roadtest, details about board architecture, running the example applications (from Getting started guide and some Edge AI application) and conclusion detailing my observation and experience using the unit.
• Explore the AI/ML landscape and edge acceleration. Excellent material and support available via webinars, hackster and Avnet forum.
• A good entry-level development board for prototyping and testing out Click and SYZYGY interfaces
• Explore the entire product life cycle form market research, product definition, architecture setup, detailed hardware bringup all provided through excellent blogs.
• Good training material for Zynq Ultrascale+, nice form factor and very good documentation for the board.
• ZUBoard 1CG Development Board
• AC/DC 45W USB-C adapter (US pin), you can use an adaptor if you not in the US. Or a EU pin based adapter is also available.
• 3A Ankler USB-C cable
• 8 GB Delkin microSD Card
• DualCam HSIO Module
• Quick-start card
As indicated in the quick-start card, the following was my first reference.
http://avnet.me/zuboard-1cg
The above link has a good reference of all the board specific documents. There is a wealth of information in these documents.
Based on your interests and level of expertise various documents might be handy. I mainly referred to the
Getting Started Guide - gives a general overview of the steps involved in running the example design and verifying the board if functional.
Hardware User guide - gives more information about the interfaces, power circuitry and pins. Might be of interest to board designers, FPGA engineer or for anyone who wants to dig deep and understand the internals of the board.
There are also schematics, mechanical drawings, BOM etc if it is of interest.
What I really liked about the board were the set of set of blogs written by the developers on the need for such a board in the market, discussion about its system architecture, the steps involved in designing such board.
Such knowledge and reasoning is very rarely shared, so the insights are quite useful (for me) as it shows the various design decisions and trade-offs considered when designing the board.
(+) ZUBoard Chronicles - element14 Community
There are also some webinars from Mario Bergeron that were very useful, that I link in the following sections.
The Avnet ZU-1CG board is low cost Zynq Ultrascale+ based development board that is targeted towards customers that are first time exploring or developing FPGA based applications. The board is very feature rich with a lot of interfaces as shown in the following image this offers a lot of flexibility to the users to design and develop various applications. As a new user or hobbyist the first thing we look for is good documentation, reference design and a forum where we can ask questions if we get stuck. All of these provided by Avnet and they are of good quality as I demonstrate in the following sections.
The devices uses a Zynq Ultrascale+ SoC which has dual ARM Cortex-A53 cores, dual ARM Cortex-R5F cores and the FPGA fabric. Besides the low cost, the chip offers the best power efficiency that is ideal for edge and battery powered devices. The FPGA has around 82K logic cells, 256KB on-chip memory. There is also 1GB LPDDR4 with on-chip ECC. With respect to BOOT modes, we can either boot from the onboard 256Mb QSPI flash device or microSD card or the on-board JTAG. There is a JTAG and UART debug interface. With respect to interfacing to the external world, there are 3 SYZYGY and micro BUS click module interface. There are also two onboard sensors, a temperature and pressure sensor for STMicroelectronics that are quite handy for test basic interfaces using IIC. There are also some user RGB and monochrome LEDs, slide switch and push Button as part of the board IO that are useful for debug and testing.
Below is a more detailed architecture of the Zynq MPSoC and its various interfaces from the hardware user guide.
I tried to follow through the getting started guide which is very well written and they have tried to cover all the gotcha's . I connected the board with the power supply as instructed and connected the JTAG cables. Since I had a relatively modern laptop, it didn't come with a RJ45 ethernet interface. So I had to use a USB interface and connect to the board using a USB to fast ethernet adapter as shown in the following image. I powered the board, and was expecting everything to work out of the box and see login to the Avnet app running on the board without any issues. But I hit my first issue.
When I tried to run the web app by logging into "192.168.2.10", I could not find any.
I tried reading the manual further and found the following section.
I then tried to disable my firewall settings and changed my network interface properties (as shown below) to match the Netmask, Gateway and Board IP and I managed to gain access to the webpage.
I was then able to run the Avnet web app for ZU-1CG board to change the colour of the led by manipulating the button states, read the status of the switches and read the temperature and pressure. Below are some of the results.
The board corresponds to the settings of the colour in the web app and read the correct DIP switch settings. I moved along a couple of settings and it all worked as expected.
I kept the applications running for some time and then tried to see if I can change the pressure and temperature reading observed on the web app by keeping my finger over the sensors. The application suddenly hung and became unresponsive. I went back to the terminal and observed that the "Queue was full" for some reason. I wasn't sure what triggered this. That is an investigation for a later blog when I delve deep into the hardware design.
I tried to reset the board again and went about doing my experiments again, this time I was able to notice the changes in temperature and pressure as shown in the putty session.
I followed up with running some accelerated edge AI apps on the ZU-1CG board based on the instruction provided by Mario Bergeron in the following link
Introducing ZUBoard for Accelerated Edge AI - Hackster.io
I have also previously attended his webinars and they are excellent.
The actual test setup for the running the Accelerated edge AI is as follows
I tried to see if there were any more recent images that I could try. Then I found the following
(+) Vitis-AI 3.0 designs for Ultra96-V2 and ZUBoard - element14 Community
and tried the
I set up my test setup to the similar setup as shown below and downloaded the pre-built image that is provided with a set of "accelerated apps" that can be dynamically loaded in the programmable logic.
I tried checking if my image was the same as the one provided by doing an md5 checksum and could confirm that it was the same (shown below). Then I proceeded with flashing the SD card with the image using Balena etcher tool.
The following is my test setup with the USB camera and the dual cam board.
I was able to successfully boot the pre-built image and the log is attached below for reference.
Xilinx Zynq MP First Stage Boot Loader Release 2021.2 Oct 13 2021 - 07:15:53 NOTICE: BL31: v2.4(release):xlnx_rebase_v2.4_2021.2 NOTICE: BL31: Built : 07:41:24, Oct 13 2021 U-Boot 2021.01 (Oct 12 2021 - 09:28:42 +0000) CPU: ZynqMP Silicon: v3 Board: Xilinx ZynqMP DRAM: 1023 MiB usb dr_mode not found PMUFW: v1.1 EL Level: EL2 Chip ID: unknown NAND: 0 MiB MMC: mmc@ff170000: 0 Loading Environment from FAT... *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Bootmode: SD_MODE1 Reset reason: EXTERNAL Net: ZYNQ GEM: ff0d0000, mdio bus ff0d0000, phyaddr 7, interface rgmii-id eth0: ethernet@ff0d0000 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot.scr 2710 bytes read in 14 ms (188.5 KiB/s) ## Executing script at 20000000 Trying to load boot images from mmc0 9499424 bytes read in 696 ms (13 MiB/s) ## Loading kernel from FIT Image at 10000000 ... Using 'conf-system-top.dtb' configuration Trying 'kernel-1' kernel subimage Description: Linux kernel Created: 2021-10-12 9:30:57 UTC Type: Kernel Image Compression: gzip compressed Data Start: 0x100000f4 Data Size: 9460327 Bytes = 9 MiB Architecture: AArch64 OS: Linux Load Address: 0x00200000 Entry Point: 0x00200000 Hash algo: sha256 Hash value: 31b79aadf8f9f39808721b74b5f0446d0a724b709439bd65060c09df2508f45a Verifying Hash Integrity ... sha256+ OK ## Loading fdt from FIT Image at 10000000 ... Using 'conf-system-top.dtb' configuration Trying 'fdt-system-top.dtb' fdt subimage Description: Flattened Device Tree blob Created: 2021-10-12 9:30:57 UTC Type: Flat Device Tree Compression: uncompressed Data Start: 0x10905c6c Data Size: 37194 Bytes = 36.3 KiB Architecture: AArch64 Hash algo: sha256 Hash value: 0654b647d3ede45dc1a9966c64b2fba12b9aadf30f7d3ee69aa8712062db0faa Verifying Hash Integrity ... sha256+ OK Booting using the fdt blob at 0x10905c6c Uncompressing Kernel Image Loading Device Tree to 000000003dd06000, end 000000003dd12149 ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (aarch64-xilinx-linux-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP Tue Oct 12 09:30:57 UTC 2021 [ 0.000000] Machine model: xlnx,zynqmp [ 0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8') [ 0.000000] printk: bootconsole [cdns0] enabled [ 0.000000] efi: UEFI not found. [ 0.000000] cma: Reserved 512 MiB at 0x000000001dc00000 [ 0.000000] Zone ranges: [ 0.000000] DMA32 [mem 0x0000000000000000-0x000000003fefffff] [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x000000003fefffff] [ 0.000000] Zeroed struct page in unavailable ranges: 256 pages [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fefffff] [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.2 [ 0.000000] percpu: Embedded 22 pages/cpu s49624 r8192 d32296 u90112 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 257796 [ 0.000000] Kernel command line: earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait cma=512M [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 481036K/1047552K available (14144K kernel code, 996K rwdata, 3944K rodata, 2112K init, 589K bss, 42228K reserved, 524288K cma-reserved) [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000 [ 0.000000] GIC: Using split EOI/Deactivate mode [ 0.000000] random: get_random_bytes called from start_kernel+0x31c/0x524 with crng_init=0 [ 0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns [ 0.000004] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns [ 0.008405] Console: colour dummy device 80x25 [ 0.012488] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000) [ 0.022841] pid_max: default: 32768 minimum: 301 [ 0.027573] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.034784] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.043907] rcu: Hierarchical SRCU implementation. [ 0.047600] EFI services will not be available. [ 0.051936] smp: Bringing up secondary CPUs ... [ 0.056742] Detected VIPT I-cache on CPU1 [ 0.056797] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] [ 0.056875] smp: Brought up 1 node, 2 CPUs [ 0.070847] SMP: Total of 2 processors activated. [ 0.075520] CPU features: detected: 32-bit EL0 Support [ 0.080622] CPU features: detected: CRC32 instructions [ 0.085763] CPU: All CPU(s) started at EL2 [ 0.089801] alternatives: patching kernel code [ 0.095226] devtmpfs: initialized [ 0.101789] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.107191] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [ 0.128943] pinctrl core: initialized pinctrl subsystem [ 0.129528] DMI not present or invalid. [ 0.132621] NET: Registered protocol family 16 [ 0.138217] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations [ 0.143835] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.151676] audit: initializing netlink subsys (disabled) [ 0.157094] audit: type=2000 audit(0.108:1): state=initialized audit_enabled=0 res=1 [ 0.157524] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.171480] ASID allocator initialised with 65536 entries [ 0.176924] Serial: AMBA PL011 UART driver [ 0.200038] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages [ 0.201110] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages [ 0.207765] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages [ 0.214424] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages [ 1.265939] cryptd: max_cpu_qlen set to 1000 [ 1.292380] DRBG: Continuing without Jitter RNG [ 1.369937] raid6: neonx8 gen() 2130 MB/s [ 1.437998] raid6: neonx8 xor() 1598 MB/s [ 1.506065] raid6: neonx4 gen() 2183 MB/s [ 1.574130] raid6: neonx4 xor() 1559 MB/s [ 1.642208] raid6: neonx2 gen() 2077 MB/s [ 1.710258] raid6: neonx2 xor() 1438 MB/s [ 1.778331] raid6: neonx1 gen() 1770 MB/s [ 1.846391] raid6: neonx1 xor() 1219 MB/s [ 1.914453] raid6: int64x8 gen() 1437 MB/s [ 1.982515] raid6: int64x8 xor() 771 MB/s [ 2.050604] raid6: int64x4 gen() 1601 MB/s [ 2.118667] raid6: int64x4 xor() 819 MB/s [ 2.186743] raid6: int64x2 gen() 1396 MB/s [ 2.254806] raid6: int64x2 xor() 750 MB/s [ 2.322874] raid6: int64x1 gen() 1031 MB/s [ 2.390933] raid6: int64x1 xor() 517 MB/s [ 2.390975] raid6: using algorithm neonx4 gen() 2183 MB/s [ 2.394923] raid6: .... xor() 1559 MB/s, rmw enabled [ 2.399859] raid6: using neon recovery algorithm [ 2.405004] iommu: Default domain type: Translated [ 2.409556] SCSI subsystem initialized [ 2.413176] usbcore: registered new interface driver usbfs [ 2.418487] usbcore: registered new interface driver hub [ 2.423758] usbcore: registered new device driver usb [ 2.428807] mc: Linux media interface: v0.10 [ 2.433008] videodev: Linux video capture interface: v2.00 [ 2.438484] EDAC MC: Ver: 3.0.0 [ 2.442013] zynqmp-ipi-mbox mailbox@ff990400: Registered ZynqMP IPI mbox with TX/RX channels. [ 2.450246] FPGA manager framework [ 2.453530] Advanced Linux Sound Architecture Driver Initialized. [ 2.459813] Bluetooth: Core ver 2.22 [ 2.463018] NET: Registered protocol family 31 [ 2.467420] Bluetooth: HCI device and connection manager initialized [ 2.473734] Bluetooth: HCI socket layer initialized [ 2.478576] Bluetooth: L2CAP socket layer initialized [ 2.483601] Bluetooth: SCO socket layer initialized [ 2.488756] clocksource: Switched to clocksource arch_sys_counter [ 2.494652] VFS: Disk quotas dquot_6.6.0 [ 2.498434] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 2.509594] NET: Registered protocol family 2 [ 2.510089] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear) [ 2.517867] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 2.525599] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear) [ 2.532894] TCP: Hash tables configured (established 8192 bind 8192) [ 2.539128] UDP hash table entries: 512 (order: 2, 16384 bytes, linear) [ 2.545636] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) [ 2.552725] NET: Registered protocol family 1 [ 2.557287] RPC: Registered named UNIX socket transport module. [ 2.562836] RPC: Registered udp transport module. [ 2.567498] RPC: Registered tcp transport module. [ 2.572169] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 2.579200] PCI: CLS 0 bytes, default 64 [ 2.608777] Initialise system trusted keyrings [ 2.608954] workingset: timestamp_bits=46 max_order=18 bucket_order=0 [ 2.614777] NFS: Registering the id_resolver key type [ 2.619035] Key type id_resolver registered [ 2.623182] Key type id_legacy registered [ 2.627173] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 2.633825] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. [ 2.677137] NET: Registered protocol family 38 [ 2.677189] xor: measuring software checksum speed [ 2.684876] 8regs : 2363 MB/sec [ 2.688532] 32regs : 2799 MB/sec [ 2.693486] arm64_neon : 2380 MB/sec [ 2.693668] xor: using function: 32regs (2799 MB/sec) [ 2.698695] Key type asymmetric registered [ 2.702758] Asymmetric key parser 'x509' registered [ 2.707627] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247) [ 2.714956] io scheduler mq-deadline registered [ 2.719451] io scheduler kyber registered [ 2.725418] ps_pcie_dma init() [ 2.752727] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 2.754699] Serial: AMBA driver [ 2.758739] cacheinfo: Unable to detect cache hierarchy for CPU 0 [ 2.767715] brd: module loaded [ 2.772615] loop: module loaded [ 2.773469] mtdoops: mtd device (mtddev=name/number) must be supplied [ 2.778203] libphy: Fixed MDIO Bus: probed [ 2.781951] tun: Universal TUN/TAP device driver, 1.6 [ 2.785718] CAN device driver interface [ 2.790142] usbcore: registered new interface driver rtl8150 [ 2.795079] usbcore: registered new interface driver r8152 [ 2.800519] usbcore: registered new interface driver asix [ 2.805886] usbcore: registered new interface driver ax88179_178a [ 2.811931] usbcore: registered new interface driver cdc_ether [ 2.817728] usbcore: registered new interface driver net1080 [ 2.823357] usbcore: registered new interface driver cdc_subset [ 2.829234] usbcore: registered new interface driver zaurus [ 2.834782] usbcore: registered new interface driver cdc_ncm [ 2.841318] usbcore: registered new interface driver uas [ 2.845683] usbcore: registered new interface driver usb-storage [ 2.851778] gadgetfs: USB Gadget filesystem, version 24 Aug 2004 [ 2.858185] rtc_zynqmp ffa60000.rtc: registered as rtc0 [ 2.862796] rtc_zynqmp ffa60000.rtc: setting system clock to 2018-03-09T12:36:12 UTC (1520598972) [ 2.871637] i2c /dev entries driver [ 2.876506] usbcore: registered new interface driver uvcvideo [ 2.880771] USB Video Class driver (1.1.1) [ 2.885332] Bluetooth: HCI UART driver ver 2.3 [ 2.889246] Bluetooth: HCI UART protocol H4 registered [ 2.894346] Bluetooth: HCI UART protocol BCSP registered [ 2.899638] Bluetooth: HCI UART protocol LL registered [ 2.904726] Bluetooth: HCI UART protocol ATH3K registered [ 2.910103] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 2.916348] Bluetooth: HCI UART protocol Intel registered [ 2.921695] Bluetooth: HCI UART protocol QCA registered [ 2.926895] usbcore: registered new interface driver bcm203x [ 2.932521] usbcore: registered new interface driver bpa10x [ 2.938053] usbcore: registered new interface driver bfusb [ 2.943507] usbcore: registered new interface driver btusb [ 2.948970] usbcore: registered new interface driver ath3k [ 2.954461] EDAC MC: ECC not enabled [ 2.958060] EDAC DEVICE0: Giving out device to module edac controller cache_err: DEV edac (POLLED) [ 2.966989] EDAC DEVICE1: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT) [ 2.979202] sdhci: Secure Digital Host Controller Interface driver [ 2.985085] sdhci: Copyright(c) Pierre Ossman [ 2.989409] sdhci-pltfm: SDHCI platform and OF driver helper [ 2.995319] ledtrig-cpu: registered to indicate activity on CPUs [ 3.001016] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping .... [ 3.007444] zynqmp_firmware_probe Platform Management API v1.1 [ 3.013200] zynqmp_firmware_probe Trustzone version v1.0 [ 3.066171] securefw securefw: securefw probed [ 3.066515] alg: No test for xilinx-zynqmp-aes (zynqmp-aes) [ 3.070682] zynqmp_aes firmware:zynqmp-firmware:zynqmp-aes: AES Successfully Registered [ 3.078772] alg: No test for xilinx-keccak-384 (zynqmp-keccak-384) [ 3.084910] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa) [ 3.090454] usbcore: registered new interface driver usbhid [ 3.095783] usbhid: USB HID core driver [ 3.099808] xlnk xlnk: Major 243 [ 3.102900] xlnk xlnk: xlnk driver loaded [ 3.106772] xlnk xlnk: xlnk_pdev is not null [ 3.113677] ARM CCI_400_r1 PMU driver probed [ 3.114163] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered [ 3.122116] usbcore: registered new interface driver snd-usb-audio [ 3.128611] pktgen: Packet Generator for packet performance testing. Version: 2.75 [ 3.135900] Initializing XFRM netlink socket [ 3.139638] NET: Registered protocol family 10 [ 3.144439] Segment Routing with IPv6 [ 3.147789] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 3.153877] NET: Registered protocol family 17 [ 3.157902] NET: Registered protocol family 15 [ 3.162313] can: controller area network core [ 3.166658] NET: Registered protocol family 29 [ 3.171037] can: raw protocol [ 3.173976] can: broadcast manager protocol [ 3.178131] can: netlink gateway - max_hops=1 [ 3.182551] Bluetooth: RFCOMM TTY layer initialized [ 3.187310] Bluetooth: RFCOMM socket layer initialized [ 3.192416] Bluetooth: RFCOMM ver 1.11 [ 3.196123] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 3.201393] Bluetooth: BNEP filters: protocol multicast [ 3.206587] Bluetooth: BNEP socket layer initialized [ 3.211514] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 3.217399] Bluetooth: HIDP socket layer initialized [ 3.222465] 9pnet: Installing 9P2000 support [ 3.226592] Key type dns_resolver registered [ 3.230966] registered taskstats version 1 [ 3.234870] Loading compiled-in X.509 certificates [ 3.240959] Btrfs loaded, crc32c=crc32c-generic [ 3.254826] ff000000.serial: ttyPS0 at MMIO 0xff000000 (irq = 47, base_baud = 6249999) is a xuartps [ 3.263859] printk: console [ttyPS0] enabled [ 3.263859] printk: console [ttyPS0] enabled [ 3.268170] printk: bootconsole [cdns0] disabled [ 3.268170] printk: bootconsole [cdns0] disabled [ 3.277727] of-fpga-region fpga-full: FPGA Region probed [ 3.287800] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success [ 3.295001] xilinx-zynqmp-dma fd510000.dma: ZynqMP DMA driver Probe success [ 3.302214] xilinx-zynqmp-dma fd520000.dma: ZynqMP DMA driver Probe success [ 3.309409] xilinx-zynqmp-dma fd530000.dma: ZynqMP DMA driver Probe success [ 3.316592] xilinx-zynqmp-dma fd540000.dma: ZynqMP DMA driver Probe success [ 3.323782] xilinx-zynqmp-dma fd550000.dma: ZynqMP DMA driver Probe success [ 3.330968] xilinx-zynqmp-dma fd560000.dma: ZynqMP DMA driver Probe success [ 3.338164] xilinx-zynqmp-dma fd570000.dma: ZynqMP DMA driver Probe success [ 3.345427] xilinx-zynqmp-dma ffa80000.dma: ZynqMP DMA driver Probe success [ 3.352627] xilinx-zynqmp-dma ffa90000.dma: ZynqMP DMA driver Probe success [ 3.359824] xilinx-zynqmp-dma ffaa0000.dma: ZynqMP DMA driver Probe success [ 3.367017] xilinx-zynqmp-dma ffab0000.dma: ZynqMP DMA driver Probe success [ 3.374203] xilinx-zynqmp-dma ffac0000.dma: ZynqMP DMA driver Probe success [ 3.381389] xilinx-zynqmp-dma ffad0000.dma: ZynqMP DMA driver Probe success [ 3.388580] xilinx-zynqmp-dma ffae0000.dma: ZynqMP DMA driver Probe success [ 3.395764] xilinx-zynqmp-dma ffaf0000.dma: ZynqMP DMA driver Probe success [ 3.404066] spi-nor spi0.0: found is25wp256d, expected mt25qu256a [ 3.412166] spi-nor spi0.0: trying to lock already unlocked area [ 3.418175] spi-nor spi0.0: is25wp256d (32768 Kbytes) [ 3.423249] 3 fixed-partitions partitions found on MTD device spi0.0 [ 3.429604] Creating 3 MTD partitions on "spi0.0": [ 3.434394] 0x000000000000-0x000000100000 : "boot" [ 3.440066] 0x000000100000-0x000000140000 : "bootenv" [ 3.445834] 0x000000140000-0x000001740000 : "kernel" [ 3.451995] macb ff0d0000.ethernet: Not enabling partial store and forward [ 3.459739] libphy: MACB_mii_bus: probed [ 3.463755] zynqmp_pll_disable() clock disable failed for apll_int, ret = -13 [ 3.471730] macb ff0d0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 36 (00:0a:35:00:02:90) [ 3.482015] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM [ 3.488622] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM [ 3.495189] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM [ 3.501756] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM [ 3.510039] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 38 [ 3.515294] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller [ 3.516453] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 60s [ 3.521452] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1 [ 3.529020] cdns-wdt ff150000.watchdog: Xilinx Watchdog Timer with timeout 10s [ 3.536424] xhci-hcd xhci-hcd.1.auto: hcc params 0x0238f625 hci version 0x100 quirks 0x0000000002010010 [ 3.546986] of_cfs_init [ 3.552941] xhci-hcd xhci-hcd.1.auto: irq 51, io mem 0xfe300000 [ 3.555377] of_cfs_init: OK [ 3.563057] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 [ 3.564192] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 3.572298] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 3.572304] usb usb1: Product: xHCI Host Controller [ 3.592118] usb usb1: Manufacturer: Linux 5.10.0-xilinx-v2021.2 xhci-hcd [ 3.598815] usb usb1: SerialNumber: xhci-hcd.1.auto [ 3.604112] hub 1-0:1.0: USB hub found [ 3.607891] hub 1-0:1.0: 1 port detected [ 3.612034] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller [ 3.617531] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2 [ 3.625191] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed [ 3.631794] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 3.632777] mmc0: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit [ 3.639975] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10 [ 3.655794] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 3.663004] usb usb2: Product: xHCI Host Controller [ 3.667877] usb usb2: Manufacturer: Linux 5.10.0-xilinx-v2021.2 xhci-hcd [ 3.674566] usb usb2: SerialNumber: xhci-hcd.1.auto [ 3.679768] hub 2-0:1.0: USB hub found [ 3.683589] hub 2-0:1.0: 1 port detected [ 3.721776] mmc0: new high speed SDHC card at address 5048 [ 3.737107] mmcblk0: mmc0:5048 DDINC 14.9 GiB [ 3.743059] mmcblk0: p1 p2 [ 3.748828] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 3.755362] clk: Not disabling unused clocks [ 3.759832] ALSA device list: [ 3.762789] No soundcards found. [ 3.766612] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 [ 3.775232] cfg80211: failed to load regulatory.db [ 3.944810] usb 1-1: new high-speed USB device number 2 using xhci-hcd [ 3.951357] random: fast init done [ 6.342541] usb 1-1: New USB device found, idVendor=046d, idProduct=082d, bcdDevice= 0.11 [ 6.350720] usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=1 [ 6.357850] usb 1-1: Product: HD Pro Webcam C920 [ 6.362465] usb 1-1: SerialNumber: 85E23E4F [ 6.384045] uvcvideo: Found UVC 1.00 device HD Pro Webcam C920 (046d:082d) [ 6.392432] input: HD Pro Webcam C920 as /devices/platform/axi/ff9e0000.usb1/fe300000.dwc3/xhci-hcd.1.auto/usb1/1-1/1-1:1.0/input/input0 [ 9.970596] EXT4-fs (mmcblk0p2): recovery complete [ 9.978661] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 9.986804] VFS: Mounted root (ext4 filesystem) on device 179:2. [ 9.992893] devtmpfs: mounted [ 9.996913] Freeing unused kernel memory: 2112K [ 10.001523] Run /sbin/init as init process INIT: version 2.97 booting Starting udev [ 10.535451] udevd[240]: starting version 3.2.9 [ 10.559667] random: udevd: uninitialized urandom read (16 bytes read) [ 10.566935] random: udevd: uninitialized urandom read (16 bytes read) [ 10.573405] random: udevd: uninitialized urandom read (16 bytes read) [ 10.633702] udevd[241]: starting eudev-3.2.9 [ 11.563693] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. [ 11.583875] usb 1-1: reset high-speed USB device number 2 using xhci-hcd [ 11.794479] dmaproxy: loading out-of-tree module taints kernel. [ 11.820156] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) bootlogd: /dev/ttyPS0 ********************************************************************* *** *** INIT: Entering runlevel: 5t Of Box PetaLinux ********************************************************************* *** *** *** Avnet Out Of Box PetaLinux Build V1.2 *** *** MAC address init config for eth0 *** *** *** ********************************************************************* /home/root/mac_eeprom_config.sh --bus 0 --slave 0x58 --file /etc/network/interfaces --interface eth0 Reading MAC ID from target EEPROM at 0x58 on bus i2c-0 Retrieved MAC ID fc:c2:3d:42:bc:12 from target EEPROM Networking interfaces configuration file detected programming EEPROM MAC ID to eth0 hwaddress ether fc:c2:3d:42:bc:12 hwaddress was already set Configuring network interfaces... [ 13.686684] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-full/firmware-name [ 13.696823] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-full/resets [ 13.706426] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/overlay0 [ 13.716258] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/overlay1 [ 13.726091] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/afi0 [ 13.735578] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/zocl udhcpc: started, v1.32.0 [ 13.771566] zocl-drm axi:zyxclmm_drm: IRQ index 8 not found DFX-MGRD> Successfully loaded base design. DFX-MGRD> dfx-mgr daemon started. udhcpc: sending discover udhcpc: sending discover udhcpc: sending discover udhcpc: no lease, forking to background done. Starting system message bus: dbus. Starting random number generator daemon. Starting haveged: haveged: command socket is listening at fd 3 haveged: haveged starting up haveged: haveged: ver: 1.9.13; arch: generic; vend: ; build: (gcc 10.2.0 CTV); collect: 128K haveged: haveged: cpu: (VC); data: 16K (D); inst: 16K (D); idx: 11/40; sz: 15456/64452 haveged: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B): last entropy estimate 8.00151 haveged: haveged: fills: 0, generated: 0 Starting OpenBSD Secure Shell server: sshd done. Starting Xserver Starting rpcbind daemon... done. starting statd: X.Org X Server 1.20.9 X Protocol Version 11, Revision 0 Build Operating System: Linux Current Operating System: Linux zub1cg-sbc-2021-2 5.10.0-xilinx-v2021.2 #1 SMP Tue Oct 12 09:30:57 UTC 2021 aarch64 Kernel command line: earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait cma=512M Build Date: 25 August 2020 03:40:19PM Current version of pixman: 0.40.0 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar 9 12:36:33 2018 (==) Using config file: "/etc/X11/xorg.conf" (==) Using system config directory "/usr/share/X11/xorg.conf.d" done (EE) Fatal server error: (EE) no screens found(EE) (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help. (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information. (EE) (EE) Server terminated with error (1). Closing log file. Starting internet superserver: inetd. NFS daemon support not enabled in kernel Starting syslogd/klogd: done Starting internet superserver: xinetd. Starting watchdog daemon...done Starting tcf-agent: OK PetaLinux 2021.2 zub1cg-sbc-2021-2 ttyPS0 root@zub1cg-sbc-2021-2:~#
Then we can configure the IP address for the eth0 interface and list the apps available and query the DPU using xmutil and xdputil applications. Further information can be found below.
root@zub1cg-sbc-2021-2:~# xinit: giving up xinit: unable to connect to X server: Connection refused xinit: server error root@zub1cg-sbc-2021-2:~# ifconfig eth0 Link encap:Ethernet HWaddr FC:C2:3D:42:BC:12 inet6 addr: fe80::fec2:3dff:fe42:bc12/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:43 errors:0 dropped:0 overruns:0 frame:0 TX packets:39 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6132 (5.9 KiB) TX bytes:10094 (9.8 KiB) Interrupt:36 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:380 (380.0 B) TX bytes:380 (380.0 B) root@zub1cg-sbc-2021-2:~# ifconfig -a eth0 192.168.0.20 root@zub1cg-sbc-2021-2:~# ifconfig eth0 Link encap:Ethernet HWaddr FC:C2:3D:42:BC:12 inet addr:192.168.0.20 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::fec2:3dff:fe42:bc12/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:45 errors:0 dropped:0 overruns:0 frame:0 TX packets:45 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6620 (6.4 KiB) TX bytes:11898 (11.6 KiB) Interrupt:36 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:380 (380.0 B) TX bytes:380 (380.0 B) root@zub1cg-sbc-2021-2:~# xmutil listapps Accelerator Base Type #sl ots Active_slot avnet-zub1cg-dualcam-dpu avnet-zub1cg-dualcam-dpu XRT_FLAT 0 -1 avnet-zub1cg-ar1335-single avnet-zub1cg-ar1335-single XRT_FLAT 0 -1 avnet-zub1cg-benchmark avnet-zub1cg-benchmark XRT_FLAT 0 0, avnet-zub1cg-ar0144-single avnet-zub1cg-ar0144-single XRT_FLAT 0 -1 avnet-zub1cg-ar0144-dual avnet-zub1cg-ar0144-dual XRT_FLAT 0 -1 Socket 9 closed by client root@zub1cg-sbc-2021-2:~# xmutil listapps Accelerator Base Type #slots Active_slot avnet-zub1cg-dualcam-dpu avnet-zub1cg-dualcam-dpu XRT_FLAT 0 -1 avnet-zub1cg-ar1335-single avnet-zub1cg-ar1335-single XRT_FLAT 0 -1 avnet-zub1cg-benchmark avnet-zub1cg-benchmark XRT_FLAT 0 0, avnet-zub1cg-ar0144-single avnet-zub1cg-ar0144-single XRT_FLAT 0 -1 avnet-zub1cg-ar0144-dual avnet-zub1cg-ar0144-dual XRT_FLAT 0 -1 Socket 9 closed by client root@zub1cg-sbc-2021-2:~# xdputil query { "DPU IP Spec":{ "DPU Core Count":1, "DPU Target Version":"v1.4.1", "IP version":"v3.4.0", "generation timestamp":"2021-12-15 10-30-00", "git commit id":"706bd10", "git commit time":2112151029, "regmap":"1to1 version" }, "VAI Version":{ "libvart-runner.so":"Xilinx vart-runner Version: 2.0.0-d02dcb6041663dbc7ecbc0c6af9fafa087a789de 2022-09-02-17:50:46 ", "libvitis_ai_library-dpu_task.so":"Xilinx vitis_ai_library dpu_task Version: 2.0.0-d02dcb6041663dbc7ecbc0c6af9fafa087a789de 2022-01-20 07:11:10 [UTC] ", "libxir.so":"Xilinx xir Version: xir-d02dcb6041663dbc7ecbc0c6af9fafa087a789de 2022-09-02-17:48:00", "target_factory":"target-factory.2.0.0 d02dcb6041663dbc7ecbc0c6af9fafa087a789de" }, "kernels":[ { "DPU Arch":"DPUCZDX8G_ISA0_B512_01000020F6012200", "DPU Frequency (MHz)":300, "IP Type":"DPU", "Load Parallel":2, "Load augmentation":"enable", "Load minus mean":"disable", "Save Parallel":2, "XRT Frequency (MHz)":300, "cu_addr":"0xa0000000", "cu_handle":"0xaaaae68f7d60", "cu_idx":0, "cu_mask":1, "cu_name":"DPUCZDX8G:DPUCZDX8G_1", "device_id":0, "fingerprint":"0x1000020f6012200", "name":"DPU Core 0" } ] } root@zub1cg-sbc-2021-2:~#
I was able to follow the tutorial and had some issues running the standalone face_detect and pose_detect applications. But was able to run the python based webserver applications. The logs can be found below.
login as: root root@192.168.0.20's password: Last login: Fri Mar 9 12:44:54 2018 from 192.168.0.10 /usr/bin/xauth: file /home/root/.Xauthority does not exist root@zub1cg-sbc-2021-2:~# cd Vitis-AI/demo/Vitis-AI-Library/samples/facedetect/ root@zub1cg-sbc-2021-2:~/Vitis-AI/demo/Vitis-AI-Library/samples/facedetect# ls build.sh test_accuracy_facedetect_mt.cpp images test_jpeg_facedetect process_result.hpp test_jpeg_facedetect.cpp readme test_performance_facedetect sample_facedetect.jpg test_performance_facedetect.cpp test_accuracy_facedetect test_performance_facedetect.list test_accuracy_facedetect.cpp test_video_facedetect test_accuracy_facedetect_mt test_video_facedetect.cpp root@zub1cg-sbc-2021-2:~/Vitis-AI/demo/Vitis-AI-Library/samples/facedetect# ./test_video_facedetect terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not valid Aborted root@zub1cg-sbc-2021-2:~/Vitis-AI/demo/Vitis-AI-Library/samples/facedetect# cd ../posedetect/ root@zub1cg-sbc-2021-2:~/Vitis-AI/demo/Vitis-AI-Library/samples/posedetect# ls build.sh test_jpeg_posedetect.cpp images test_jpeg_posedetect_with_ssd process_result.hpp test_jpeg_posedetect_with_ssd.cpp readme test_performance_posedetect sample_pose_detect_with_ssd.jpg test_performance_posedetect.cpp sample_posedetect.jpg test_performance_posedetect.list ssd_posedetect.hpp test_performance_posedetect_with_ssd.list test_accuracy_posedetect test_video_posedetect test_accuracy_posedetect.cpp test_video_posedetect.cpp test_accuracy_posedetect_mt test_video_posedetect_with_ssd test_accuracy_posedetect_mt.cpp test_video_posedetect_with_ssd.cpp test_jpeg_posedetect root@zub1cg-sbc-2021-2:~/Vitis-AI/demo/Vitis-AI-Library/samples/posedetect# ./test_video_posedetect terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not valid Aborted root@zub1cg-sbc-2021-2:~/Vitis-AI/demo/Vitis-AI-Library/samples/posedetect# cd root@zub1cg-sbc-2021-2:~# cd vitis_ai_python_examples/ root@zub1cg-sbc-2021-2:~/vitis_ai_python_examples# ls LICENSE face_applications pmbus_plotting vitis_ai_vart README.md face_applications_dlib pyimagesearch webserver root@zub1cg-sbc-2021-2:~/vitis_ai_python_examples# cd webserver/ root@zub1cg-sbc-2021-2:~/vitis_ai_python_examples/webserver# ls readme.txt templates webserver.py root@zub1cg-sbc-2021-2:~/vitis_ai_python_examples/webserver# python3 webserver.py [ERROR] DLIB not available ! (install with : pip3 install dlib) [ERROR] sensor/matplotlib/io not available ! (install with : pip3 install pysensors matplotlib io) * Serving Flask app "webserver" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: on * Running on http://0.0.0.0:80/ (Press CTRL+C to quit) * Restarting with stat [ERROR] DLIB not available ! (install with : pip3 install dlib) [ERROR] sensor/matplotlib/io not available ! (install with : pip3 install pysensors matplotlib io) * Debugger is active! * Debugger PIN: 387-494-738 192.168.0.10 - - [09/Mar/2018 12:58:00] "GET / HTTP/1.1" 200 - [INFO] Vitis-AI/DPU based face detector initialization ... [INFO] Vitis-AI/DPU based face landmark initialization ... [INFO] face detection = VART [INFO] face landmarks = VART [INFO] WEBCAM usbcam_dev = /dev/video0 [INFO] WEBCAM usbcam_gst = ('v4l2src device=', '/dev/video0', ' ! video/x-raw, width=640, height=480 ! videoconvert ! video/x-raw, format=RGB ! appsink ') [ WARN:0] global /usr/src/debug/opencv/4.4.0-r0/git/modules/videoio/src/cap_gstreamer.cpp (1760) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module source reported: Could not read from resource. [ WARN:0] global /usr/src/debug/opencv/4.4.0-r0/git/modules/videoio/src/cap_gstreamer.cpp (888) open OpenCV | GStreamer warning: unable to start pipeline [ WARN:0] global /usr/src/debug/opencv/4.4.0-r0/git/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created [INFO] Camera Matrix : [[640. 0. 320.] [ 0. 640. 240.] [ 0. 0. 1.]] 192.168.0.10 - - [09/Mar/2018 12:58:06] "GET /video_feed HTTP/1.1" 200 - 192.168.0.10 - - [09/Mar/2018 12:58:20] "GET /favicon.ico HTTP/1.1" 404 - [INFO] algorithm = face landmarks 192.168.0.10 - - [09/Mar/2018 13:02:19] "POST /set_algorithm/landmarks HTTP/1.1" 200 - [INFO] algorithm = face detection 192.168.0.10 - - [09/Mar/2018 13:02:23] "POST /set_algorithm/faces HTTP/1.1" 200 - [INFO] algorithm = face landmarks 192.168.0.10 - - [09/Mar/2018 13:02:28] "POST /set_algorithm/landmarks HTTP/1.1" 200 - [INFO] algorithm = head pose estimation 192.168.0.10 - - [09/Mar/2018 13:02:31] "POST /set_algorithm/headpose HTTP/1.1" 200 - [INFO] algorithm = none 192.168.0.10 - - [09/Mar/2018 13:03:26] "POST /set_algorithm/none HTTP/1.1" 200 - [INFO] algorithm = face detection 192.168.0.10 - - [09/Mar/2018 13:03:51] "POST /set_algorithm/faces HTTP/1.1" 200 - [INFO] algorithm = face landmarks 192.168.0.10 - - [09/Mar/2018 13:03:57] "POST /set_algorithm/landmarks HTTP/1.1" 200 - [INFO] algorithm = head pose estimation 192.168.0.10 - - [09/Mar/2018 13:04:02] "POST /set_algorithm/headpose HTTP/1.1" 200 - [INFO] algorithm = tracking 192.168.0.10 - - [09/Mar/2018 13:04:16] "POST /set_algorithm/tracking HTTP/1.1" 200 - [INFO] algorithm = face detection 192.168.0.10 - - [09/Mar/2018 13:04:39] "POST /set_algorithm/faces HTTP/1.1" 200 - [INFO] algorithm = none 192.168.0.10 - - [09/Mar/2018 13:04:41] "POST /set_algorithm/none HTTP/1.1" 200 - [INFO] algorithm = face landmarks 192.168.0.10 - - [09/Mar/2018 13:04:43] "POST /set_algorithm/landmarks HTTP/1.1" 200 - [INFO] algorithm = head pose estimation 192.168.0.10 - - [09/Mar/2018 13:04:46] "POST /set_algorithm/headpose HTTP/1.1" 200 - [INFO] algorithm = face detection 192.168.0.10 - - [09/Mar/2018 13:04:49] "POST /set_algorithm/faces HTTP/1.1" 200 - [INFO] algorithm = face landmarks 192.168.0.10 - - [09/Mar/2018 13:05:06] "POST /set_algorithm/landmarks HTTP/1.1" 200 - [INFO] algorithm = face landmarks 192.168.0.10 - - [09/Mar/2018 13:05:08] "POST /set_algorithm/landmarks HTTP/1.1" 200 - [INFO] algorithm = face detection 192.168.0.10 - - [09/Mar/2018 13:05:10] "POST /set_algorithm/faces HTTP/1.1" 200 -
I was finally able to do some face detection and tracking using the python webserver applications.
A video of the entire set of features tested can be found below.
Overall, I am very satisfied with the Avnet ZUBoard 1CG Development kit. The amount of features available in the board, training resources available, AI/ML demos, PYNQ support will immensely benefit a user/customer from a technical training perspective and also R&D prototyping perspective. As this board can potentially save time and effort spent towards new product idea evaluations and prototyping. The learning done using the development board is easily transferrable to other Ultrascale devices (with some understanding of FPGA related nitty-gritty details).