RoadTest: AVNET 96Boards Dual Camera Mezzanine + Ultra96-V2
Author: sudiptasen
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?: Intel - Altera -Development Kit
What were the biggest problems encountered?: Lack of documentation, and not easy to find the latest versions of any software. We had to write our own software to make it useful. We had to build our own Linux (Petalinux) to be able to compile with comfort and ease.
Detailed Review:
Our goal with the kit was two fold. One to do a multi-camera image detection (using 4 camera sources) and then also to be able to run different sensors to the kit and then be able to control the cameras and the sensors simultaneously. The Kit was able to do that very comfortably. When I say comfortably, that is the HW was able to detect the 4 sources and the FPGA was able to compile and run the IR very cleanly with horsepower to spare.
When we first see the kit, the cool part is that there are multiple power supply headers for different countries. That is a very good idea, because we were able to send the kit to other folks across the world and the different power supply connectors are a huge help. Thank you to AVNET for supplying that.
The initial impression of the kit was the wonderful packaging of the kit, which makes it easy to open an it does not seem flimsy at all. The box and the kit was very well packed.
The kit initially has the micro-SD card and the instruction sheets. You have to immediately go to the Xilinx web site and get more details. The Xilinx web site is essential to be able to get all the support materials. We have used Xilinx products before and so, it was not that complex once you know how to navigate the web site. Thus we have given them a 7/10 rating. For the price and performance this is a FANTASTIC kit. But, it is essential that you follow the instructions of the SoC on the Xilinx web site. That is essential.
Attached is a picture of how the item looks like when you open it.
This is how the board looks like with the documentation. It looks small, but , my goodness, it DOES pack a mean punch. It hits far far above its price point. We work with multiple SoC parts, and for IIOT applications and machine vision, this is by far the best value for money.
Now, for the ease of connecting other parts and other sensors to the board, there is a connector on the board, and the Ultra96 family of connectors can fit. Please check this part : https://www.96boards.org/product/sensors-mezzanine/ . That is an extra part we also found was very easy to attach and program using the Ultra96-V2 board. I am attaching a picture of the Grove board, which would also highlight how easy and wonderful the mezzanine connector is .
Please see pictures of the Ultra96-V2 along with the Grove Mezzanine board (which makes this kit into an even more cool product).
The two board can be placed on top of one another and I am attaching two pictures, one of the boards attached and one of the usage of the ports of the Ultra96-V2 board. We used the Micro-SD to boot the unit and also used a 32GB USB drive (We used USB 2.0 drive as speed of transfer was not really our concern) . The mezzanine experiment detail is explained here in the pictures, The dual-camera experiment is shown from the implementation perspective, as you will see in subsequent screenshots.
The MicroSD for the Boot-linux and the USB 2.0 Drive attached . The Petalinux (default) which is supplied is OK at best, we had to build our own Petalinux version (from source code links available) and that took some time. That specifications were NOT supplied very well anywhere to be found. We had to make the code from scratch and that took a lot of time and effort. Wee wish that there were some easier and more universally available code with which to work . But, after some effort, we were able to get this to work and the boot system finally looked like this . The Petalinux which is supplied by the board is not very easy to modify and it messes up the build. So, we decided to build out own by reading the Petalinux documentation. That gave us all the flexibility that we needed.
The build of the ports are very sturdy, and the Mini_display Port to HDMI cable is essential to get if you want to use a monitor which is essential. The MicroSD was used for booting and the USB Drive (in RED colour here) was used to transfer and load the Image samples to the Main memory. After the transfer, we programmed the board to run off the images stored in memory and not to do too many transfers to the 32Gb card, and hence a USB 2.0 storage was absolutely fine.
With these as the start of the system, we used the system to boot up to a Image recognition system which this Xilinx Zynq UltraScale+ MPSoC ZU3EG A484 was tested by Xilinx. Their image recognition SW has been tested by a company called DeePhi and last we checked, all the DeePhi code is working on Xilinx UltraScale+ MPSoC ZU3EG . This board is very very useful, as it is one of the few on which this code has been tested. That helped jump start our experiments a great deal. The link to download the programming of the FPGA is available on the Xilinx web page and we could make it compile on the Ultra96-V2 on our own Petalinux build.
After attaching the display, we , of course, gave complete acknowledgement to DeePhi for their codec and here is our boot screen.
Then the requirement was to load 4 separate video streams and be able to run a few different types of image classification to see if the FPGA could handle multiple different streams
We picked :
- mobilenet
- Inception v1
- Resnet
At first we tried to run two streams and then ramped up to 3 and then 4 streams . All of them worked fine. We also added the Mezzanine camera module as another control input. I apologize that I do not have pictures of the camera module input stream.
The screen shows the 4 terminals being opened on the Ultra96-V2.
After that we have the 3 streams running simultaneously
And then with slightly increasing the available memory to access ( simple Linux call ) we got the Ultra96-V2 to process image classification on 4 streams simultaneously
From the CPU utilization, it can be a little misleading. The 3 stream case has the 4th ARM core at 99.3% , but that is code execution only. In the 4 stream case, all the ARM cores are being used in image classification in some way.
The Quad ARM cores can be utilized to their fullest and the result shows. The FPGA , which is at the heart of the Ultra96-V2 is more than capable of handling the following :
- 4 image classification streams
- 3 separate inputs from I/O sources
- External Camera input from Mezzanine card
Our tests are conclusive. And this AVNET part works very well
Here is the final screen with all the parts of the Ultra96-V2 being stressed to the max.
In Summary of this amazing part from AVNET
Summary:
1. Very well built product with lots of room for modification
2. Not very good documentation with the kit, but excellent information on the SoC (the core FPGA) available on line with XILINX
3. The Ultra96 form factor stays true to the 96Boards.org concept and it very useful for prototyping
4. The thing to remember is that for the price, (sub $300), you get a LOT of features and practicality. It is meant to be a prototype board which can be taken into production, once you use this board to verify, validate and prove out your design.
5. This is definitely not intended for being a production level (I wish that we could get AVNET to build this as a production level part), as we have an airport security system, who would gladly buy 1000-s of these boards.
6. The mezzanine card and the connectors are very strong and firm, and there is no "loose" parts. The board is very well built and can take a lot of punishment
7. The power supply is a little bit too big, and I am sure that you can find a smaller power supply with the same amperage
8. In all, a very well designed product.
Many thanks to AVNET for this wonderful design and many thanks to Randall for his help and advice
With best wishes
Sudipta Sen
March, 2021
Top Comments
I'm a little confused by your road test. Did you even use the Dual Camera Mezzanine that you're supposed to be testing?
I have a similar question since I have still been struggling to get anything, such as OpenCV, to recognize the video input from the Dual Camera Mezz board. I would be interested in how this was set-up…
FYI. You are taking a big risk putting that nice board directly onto a carpet....unless I'm wrong and they have brought out new colours of anti-static matting!
That said, when I was a teenager I used…