One of the processor-based solutions that I have had on my shelf to look at for a while now is the Avnet RZ Board. I bought this board when I stumbled across it when browsing the Avnet website, as I normally look at FPGA / Programmable SoC based systems I was interested in its form factor and its AI processing capabilities.
Let’s start at the beginning he Avnet RZ/V2L contains a Renesas SoC which combines dual Arm Cortex A55 cores running at 1.2GHz both NEON and Vector Floating Point units. Both Processors have 32 KB of level one cache and share a Level 256KB cache. Along with the Arm A55 processors is an Arm Cortex M33 processor which runs at 200 MHz.
In addition to the CPU cores the system contains a range of interfaces which support those commonly found in embedded systems for example DDR3/4, SPI, USB2, Ethernet, I2C, UART, and CAN-FD etc. These help the SoC interface with a wide range of commonly used standards across a range of applications.
At the heart of the SoC, is an dynamically reconfigurable AI Accelerator, to enable this to be used with image processing applications the SoC also provides a Mali GPU, MIPI CSI2 and DSI interfaces along with a video codec capable of encoding H.264. This enables images to be captured and processed using the AI Accelerator.
Looking in more detail into the DRP AI processor, it is split into two sections an AI-MAC which is designed to support convolution and a 96 Processing Element array used to accelerate the processing of the network. This DRP-AI engine is connected to the remainder of the chip using a on chip bus and direct memory access units to efficiently move data.
Of course, the Avnet RZBoard V2L is more than just the SoC and as such provides users with the following.
32 GB eMMC
2 GB DDR4
WiFi / BLE
MIPI CSI2, MIPI DSI
40 Pin Pi Hat Header
Power to the board is provided over a USB C
To get the board up and running the first thing we need to do is connect a Ethernet cable, USB to UART cable and of course the power cable.
Once the board is powered on we want to ensure we have the latest Linux image installed, as mine is one of the first boards I needed to do this. Updating the Linux kernel and RootFS on the eMMC is performed over the Ethernet and UART.
To update to the latest release we can download the latest image here. This will download a compressed file, once extracted you will see batch files for flashing the bootloader and system.
For my board I just uploaded the system image, to update the image we first need to modify the config.ini file to tell the batch files what the IP address of the RZBoard and what number port is the USB UART enumerated to.
With this completed run the flash system image bat and wait about 10 minutes, you will see two windows open the first is tera term and will show the downloading of the image. The second is the command prompt which shows the status of the download overall.
This might take a little time, it took about 10 minutes on my system, once the download is completed, we will be prompted to close the command window. We have to close the Tera Term window manually.
With this completed, if we reboot the RZBoard and when logged in (uname root, pw avnet) we can list the directories which include the apps.
For my testing of the board I wanted to test the USB Camera HTTP example this also needs a client downloaded and running on your development PC. It can be downloaded here, extract the files and open the web link.
On the RZBoard we need to set the IP address to 192.168.1.11, we can do this with a simple ifconfig command.
With the IP address set up we can run the usb camera http example
In the Client running on your development machine you are then able to select the network type and see the input frame, the processed frame, the processing load and the processing time. Exploring across the models is very interesting to see the impact on performance.
When I did this test, I had a USB power monitor connected also, the power on of the board causes a small current step as would be expected to about 350 mA before dropping to 250 mA.
Beginning to run the USB code example also shows the current increasing and to between 400 mA and 600 mA. Changing the network type has an impact on this but not as much as I has expected though I would like to explore it in more detail. Once the application is stopped the current drops back down to the 250 mA base.
I was also curious what this board looked like under thermal imaging, when running the example application. As expected with no Heat Sink on the processor it gets a little warm, so for future tests I will ensure I fit a heat sink to ensure we do not stress the processor temperature wise.
Overall my first impressions of the Avnet RZBoard are positive, I like the ease with which I was able to get the board up and running. There was also interesting to see the performance of the board when doing inference. The board provides a range of interfacing solutions, also which makes it good for prototyping a range of applications.
Next up is to look at creating applications from scratch for it!