Trials and adventures in the workings and testing of the AVNET ZUBoard 1CG both hardware and software.

Table of contents

RoadTest: Sign Up to Review the Avnet ZUBoard 1CG Development Kit

Author: rlewicki

Creation date:

Evaluation Type: Development Boards & Tools

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

What other parts do you consider comparable to this product?: The AVNET Ultra96 V2 is a more expensive older MPSoC Ultrascale+ Zynq development board with only WiFi and no wired Ethernet but with a more powerful chipset and more DDR4 memory but no temperature nor tri-colored LEDs.

What were the biggest problems encountered?: 1) The board had a cold solder joint on the negative side of the CR2032 3.0 coin cell battery holder. I had to re-solder the connector to the board. 2) The latest version of the AMD/Xilinx toolset (version 2023.1 ) is incompatible without a lot of serious Yocto work required to get Petalinux to compile (petalinux-build). I finally gave up and resorted to the 2022.2.1 toolset. 3) All of the blogs I read were fairly difficult to follow if you are a neophyte; luckily I am not. 4) The next time, it would have been nice to have a parts list to be able to check off when we received the kit. The microSD card was a bit low on the capacity (8 Gig), so I used one of my own 16 Gig microSD cards. 5) It would suggest in the future to include a grounding alligator jumper to be ground it from a static electricity perspective (obviously as an engineer I have many). 6) I would have liked to have some sort of Samtec connector based small display device or fiber optic interface. 7) It would have also been nice to have a Samtec analog interface to hook up to a 'scope to validate analog signals.

Detailed Review:

I started this adventure when I received the package.



After opening to box, I found the following contents:


In the box I found the following:

  • an AVNET ZUBoard 1CG devevelopment  board
  • a 45 Watt Advantech AC power adapter USB-C female connector
  • a USB-C to USB-C cable to power the development board from the power adapter brick
  • an 8 Gig Delkin  micro SD card and
  • an SYZYGY compatible dual camera.

after examining the parts, specifically the actual ZUBoard 1CG I noticed on the backside that the battery holder was broken off with a cold solder joint showing.


so I re-soldered it.


In order to work with the kit, I wanted to start from ground-up with a complete development machine. Therefore I built up a completely re-used Dell Optiplex 2010 desktop computer.

I did exchange the hard disk with a 2 TB SSD. The other resources for the workstation included:

32 Gig of DDR4 RAM

Intel Core i7-4770 hyperthreaded quad core for eight thread at 3.4 GHz.

For the software, I started with Ubuntu 22.04.2 desktop version so that I could install Petalinux.  A Linux platform is required  to be able to install Petalinux and Vitis-AI natively (without using Oracle Box VM or an MS Windows Hyper-V environment).  I used a 2 TB SSD to get the most speed for the Vivado and Petalinux compiles.  I installed a few utilities such as BalenaEtcher and PUTTY serial interface utilities.  Also required, if only to remove the annoying warnings that a tftp client was not found, I installed tftp.  Typically, I just change the setting in the petalinux-config to not attempt to copy files to the tftp directory as I'll either move them to an microSDCard or use the hardware manager to JTAG the device.

So, firstly, I just wanted to power up the board to see if it "looks" like it works, so I connected the USB-C cable to the USB-C connector on the board, and then to the power adapter and plugged it in. 


Looks good as the power LED seems lit.  I wasn't expecting much else.

I wanted to test rudiments first, such as the tri-color LED, the Ethernet PHY, the serialized terminal support, and the processor's ARM Cortex dual A53s running Petalinux.

Therefore, I created a very simple Vivado project which basically included a processor (a ZYNQ Ultrascale+ MPSoC) and processor system reset controller, AXI interconnect, an AXI GPIO with the tri-color LED as outputs on the least significant three bits, and and AXI I2C I/O for the temperature sensor.  The intent was to test the tri-color LED, the Ethernet connectivity, the serial port (USB) and of course the booting from the microSD card.

I built this (synthesis, implementation, and subsequent bitstream creation) project, exported the hardware with the bitstream and imported that into a brand new Petalinux project .

After configuring the Petalinux environment to use local downloads (very large gigabytes file from Xilinx/AMD's Petalinux download site) and sstate-cache (also large file from Xilinx/AMD Petalinux's download site) instead of going out to the Internet for resolving references, it built successfully.  I should note that when I installed the 2023.1 toolset, I received consistent Petalinux errors indicating issues with the ARM Cortex CPU2 and CPU3 which don't exist on a two CPU version of the FPGA which is on the ZUBoard1CG (XIlinx/AMD FPGA part: xczu1cg-sbva484-1-e on the board).  Since I knew that the 2022.2 works, it was easier to just reinstall with the previous version of the Xilinx/AMD toolset.

I ran the petalinux-create specifying the proper processor architecture which is a zynqMP using the "--template zynqMP" argument providing a name (-n project name), and type (-t project).

Then using the petalinux-config, I specified the project.xsa file created and exported from the Vivado project.  Then changing the Yocto settings to specify the downloads local directory and the sstate-cache directories and setting the no-network setting.  Then ran the petalinux-config with the -c rootfs to enable peek & poke utilities (default is not enabled).  And finally, to build: petalinux-build (no parameters).  After a few hours on this machine, the build succeeded.

I then used the petalinux-package to package the project into a petalinux-sdimage.wic file.  I then used the BalenaEtcher application to format and install the filesystem and files to the microSD card and then copied the image.ub file to the root partition.

I needed to change the default boot switch (switch 2)  settings to insure that the board would boot from the microSD card (off, on, off, on) .  The board can boot from JTAG (although the pins for the JTAG don't exist and need to be soldered in) , the QSPI, and the microSD card.

Inserting the newly prepared microSD card into the ZUBoard 1CG board, powering up the board:



I was able to establish a PUTTY session (115200 BAUD)  and log into it with a petalinux userID and it asked to change the initial password, which I did.  Then came the fun part: poking a memory mapped i/o to see if I could change the LED colors (let alone light it up.  Therefore with a logged in session in PUTTY, and running the:

sudo poke 0xA0000000 [value] such as:

to turn off the tri-color LED:

sudo poke 0xA0000000 0x0 

to turn the tri-color LED to a blue color:

sudo poke 0xA0000000 0x1

to turn the tri-color LED to a green color:

sudo poke 0xA0000000 0x2

to turn the tri-color LED to a red color:

sudo poke 0xA0000000 0x4

and any colors in between with values ranging from 1 thru 7 for the value argument.







The next step is going to be implementing an AI task (specifically a inference engine)..

Unfortunately due to a serious life threatening issue with a member of the famiy, I will have to complete this in 1.5 weeks when I return from an out of the country emergency travel.

This board is insanely full of capabilities.  So far, I am thoroughly excited about this development board.