🛠 Advanced setup of AIWorld P1

AIWorld P1 AI Module for BPI-M2 Ultra and Berry · avance · Guide technique pour initialiser l'AIWorld P1 via GPIO et configurer l'environnement Vecoo Linux.

Objectifs

This tutorial aims to master the hardware and software initialization of the AIWorld P1 accessory. Unlike standalone boards, the AIWorld P1 acts as an AI coprocessor for Banana Pi SBCs (M2 Ultra or Berry). The goal is to establish reliable communication via the GPIO port, validate sensor detection (OV5640 camera, ICM20602 IMU), and configure the Vecoo Linux development environment to prepare multimedia pipelines.

Matériel nécessaire

Étapes

  1. Physical Preparation : Completely power off the Banana Pi. Gently insert the AIWorld P1 into the 40-pin GPIO port. Ensure correct orientation (pin 1 towards the marked corner). Incorrect insertion can damage the I2C/SPI bus.
  1. Power and Boot : Connect the Banana Pi power supply. The AIWorld P1 is powered via GPIO. On boot, the host system must load the Vecoo Linux kernel. Check boot logs via serial connection or SSH if configured.
  1. ADB Connection : Connect the module via USB. On the PC, run :
adb devices

If the device appears, USB communication is active. Otherwise, check udev permissions or the cable.

  1. Driver Verification : Access the shell via adb shell. Check for kernel modules for camera and IMU :
lsmod | grep v4l
lsmod | grep imu

Missing modules require manual loading via insmod if drivers are not integrated by default in the Vecoo image.

  1. Camera Test : Use the integrated tool to capture an image and validate the Gstreamer/OpenCV pipeline :
gst-launch-1.0 v4l2src device=/dev/video0 ! jpegenc ! filesink location=test.jpg

If no errors appear, the video path is functional.

Vérification

Run dmesg | tail in the ADB shell. You should see messages confirming Allwinner V40 SoC initialization and OV5640 detection. Test the inertial sensor with a provided diagnostic tool or a simple Python script reading /dev/input/eventX. Ensure VecooAT allows file transfer (adb push) for iterative development.

Pour aller plus loin

Configure Gstreamer pipelines for low-latency RTSP streaming. Explore using OpenMP to parallelize image preprocessing tasks before inference. Integrate the IMU for software stabilization of captured video streams.

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials