Skip to main content

Bring up Voyager SDK in Raspberry Pi 5

This guide walks through installing and running the Voyager SDK on a Raspberry Pi 5 fitted with a Metis M.2 module.

M.2 HATs

Axelera AI has tested the following M.2 HATs:

  • Raspberry Pi M.2 HAT+
  • Seeed Studio M.2 Dual HAT
Other M.2 HATs

Other HATs may also work, but only the two above have been tested by Axelera AI. Always follow the installation guidance provided by your M.2 HAT vendor.

Raspberry Pi M.2 HAT+

Raspberry Pi M.2 HAT+ setup (1 of 2)

Raspberry Pi M.2 HAT+ setup (2 of 2)

Seeed Studio M.2 Dual HAT

Seeed Studio M.2 Dual HAT setup (1 of 2)

Seeed Studio M.2 Dual HAT setup (2 of 2)

Prerequisites

Enable PCIe Gen 3 by following the Raspberry Pi documentation.

Install the Voyager SDK in a Docker container

Follow every step in the Install Voyager SDK in a Docker Container guide.

Power and MVM utilisation

Power delivery on the Raspberry Pi 5 can be limited, which may affect some models. If inference crashes, limit MVM utilisation on Metis. From our internal testing we recommend a 20% limit on the Raspberry Pi 5 (tested on Voyager SDK 1.3):

AXELERA_CONFIGURE_BOARD=,20 ./inference.py yolov8l-coco-onnx ./media/traffic1_480p.mp4 --no-display
Switching between Wayland and X11

The Voyager SDK supports both Wayland and X11. Whenever you switch from one to the other, run this command outside the Docker container (it is also covered in the install guide above):

xhost +local:root

Download prebuilt models

Building models directly on the Raspberry Pi 5 is slow, so we recommend downloading prebuilt models instead.

Run make inside the Voyager SDK folder (with the virtual environment activated) to list the available models. To download a prebuilt model, for example yolov8s-coco-onnx:

./download_prebuilt.py yolov8s-coco-onnx

Display results with OpenCV

After the steps above, OpenCV is the default display when you run inference. For example:

./inference.py yolov8s-coco-onnx ./media/traffic1_480p.mp4

Display results with OpenGL ES

OpenGL ES on the Raspberry Pi 5

OpenGL is not supported on the Raspberry Pi 5, but its embedded variant, OpenGL ES, is. The Voyager SDK supports OpenCV, OpenGL, and OpenGL ES.

Enable OpenGL ES inside the container

Inside the Docker container, run:

sudo apt update && sudo apt install -y mesa-utils libgl1-mesa-dri
sudo chown root:video /dev/dri/renderD128

Check the installation:

glxinfo | grep "OpenGL renderer"

You should see output similar to:

OpenGL renderer string: V3D 7.1

You can also confirm it visually by running:

glxgears

Run inference using OpenGL ES

Option A — export the backend, then run inference:

export AXELERA_OPENGL_BACKEND=gles,3,1
./inference.py yolov8s-coco-onnx ./media/traffic1_480p.mp4

Option B — set it inline on a single command:

AXELERA_OPENGL_BACKEND=gles,3,1 ./inference.py yolov8s-coco-onnx ./media/traffic1_480p.mp4