Multi-camera YOLOv5 on Zynq UltraScale+ with Hailo-8 AI Acceleration

Multi-camera YOLOv5 on Zynq UltraScale+ with Hailo-8 AI Acceleration
See it live: The demo described in this post will be displayed live at the EBV Elektronik booth at Embedded World 2024 on April 9-11. I’ll be attending too, so get in touch if you’re keen to meet up. Over the last few months I’ve been lucky to work with two very talented people on an interesting project for multi-camera machine vision applications: Gianluca Filippini and Mario Bergeron. Back in 2022, I was contacted by Gianluca, an engineer from EBV Elektronik. [Read More]

Change the temp folder used by PetaLinux

Change the temp folder used by PetaLinux
When working with PetaLinux tools, we need to be wary of the often very sizeable temporary files generated during builds. These temporary files can often take up more than 10GB, and they are crucial for the build process. By default, PetaLinux tools create a temporary folder internal to the project directory. Having it set this way is useful because our projects are well contained and we have clear insight into the total disk space used by a project. [Read More]

How to build PetaLinux in offline mode

ie. without a network connection

How to build PetaLinux in offline mode
In certain scenarios, you might want to build PetaLinux without relying on an active internet connection. This offline building feature can be useful for various reasons. To build PetaLinux without a network connection, you obviously need pre-downloaded source packages and dependencies. Xilinx allows you to pre-download all of these dependencies (called sstate cache artefacts) and then perform the build offline. Why You Would Use It The reason to use offline mode really depends on your situation and it’s definitely not something that everyone will get benefit from. [Read More]

Adding a script to the root file system in PetaLinux

And making it run on start-up

Adding a script to the root file system in PetaLinux
When designing custom PetaLinux builds, we often end up with a bunch of commands that we have to run after login to set things up and make initializations. Having a script built into the root filesystem can make this process easier, so in this post I’m going to show you how you can set that up in PetaLinux 2022.1. These instructions assume that you already have a PetaLinux project created. [Read More]

A Smart Camera implemented in PetaLinux 2022.1 on ZCU104

Using a Raspberry Pi camera

A Smart Camera implemented in PetaLinux 2022.1 on ZCU104
In this post we’re going to build a smart camera using a Raspberry Pi camera, the ZCU104 board and PetaLinux. We’re going to do this by leveraging the Smartcam app which was originally designed for the AMD Xilinx Kria SoM. Our version of the Smartcam app can take video inputs from a Raspberry Pi camera, a USB camera or a file, and it can output video to a DisplayPort monitor, a file or via Ethernet over Real-time Transport Protocol. [Read More]

Benchmarking an FPGA based AI Vision application

Docker, Ubuntu and PetaLinux put to the test

Benchmarking an FPGA based AI Vision application
Many smart vision applications need to make fast decisions: autonomous vehicles, drones, surveillance and industrial robotics are only a few examples. When developing these kinds of AI vision systems, understanding performance-affecting factors is critical. In this post, we’ll explore two such factors: the operating system and camera type. We’ll measure and compare the performance of the NLP-SmartVision app on the ZCU104 board. The setups we’ll use are: Operating system: Docker container on Certified Ubuntu 22. [Read More]

NLP-SmartVision in PetaLinux on ZCU104

Using Raspberry Pi cameras

NLP-SmartVision in PetaLinux on ZCU104
In the last post we looked at how to run the Smartcam and NLP-SmartVision apps on the ZCU106 and Certified Ubuntu 22.04 LTS. One reader mentioned that running these apps in a Docker container on Ubuntu probably comes with a performance penalty when compared to running it on a lean PetaLinux build. This piqued my curiosity so in this post, we’re going to get the NLP-Smartvision app running in PetaLinux on the ZCU104 and then in the next post we’ll measure whatever penalty there may be to the throughput (in frames per second) and/or the glass-to-glass latency (in milliseconds). [Read More]

How to build the Hardware Platform for Certified Ubuntu 20.04 LTS for ZCU106

With the objective of customizing it

How to build the Hardware Platform for Certified Ubuntu 20.04 LTS for ZCU106
This post is a continuation of the previous post where we setup our ZCU106 board for Ubuntu 20.04 LTS. In this post we’re going to build the hardware platform that is built into the Certified Ubuntu 20.04 LTS images for the ZCU106 board. The reason that we would want to be able to do this is so that we can customize the hardware platform - perhaps add functionality, add external connections, or add accelerator IP. [Read More]

How to Install Vitis and PetaLinux 2022.1

On Ubuntu 20.04

While getting into the Kria KV260 Vision AI Starter Kit Applications I’ve had to install Vitis and PetaLinux 2022.1 on Ubuntu 20.04. In this post I just want to write out some clear instructions to make it a smoother process for others that need to do the same thing. Step 1: Install dependencies It’s probably best to start by installing all of the dependencies of Vitis and PetaLinux 2022.1. Just open a terminal in Ubuntu by pressing Ctrl + Alt + T and run the following commands. [Read More]

PetaLinux build artifacts

How to keep them and where to find them

PetaLinux build artifacts
These tips apply to PetaLinux 2020.2. To save disk space, the PetaLinux tools deletes all build artifacts at the end of the build process. If you want to keep them for debugging or to help you develop a patch, you can add the following line to the project-spec/meta-user/conf/petalinuxbsp.conf file: RM_WORK_EXCLUDE += "recipe" Where recipe must be substituted with a valid recipe name such as the following: Sources Recipe name Kernel linux-xlnx FSBL fsbl U-Boot u-boot-xlnx PMU firmware pmu-firmware Device tree device-tree If you want to preserve the build artifacts of more than one component, you can append the recipe names, separated by spaces, for example, to preserve the kernel sources and the FSBL: [Read More]