🛠 Advanced setup of AIWorld P1
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
- Banana Pi BPI-M2 Ultra or BPI-Berry board.
- AIWorld P1 Module (Allwinner V40 SoC).
- USB-C or micro-USB cable for power and debug.
- PC with
adbandfastboottools installed. - C/C++ development environment (GCC, CMake) on the host PC.
Étapes
- 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.
- 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.
- 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.
- 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.
- 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.