Files
wireclaw-pizero/CLAUDE.md
2026-06-09 18:21:46 +02:00

2.0 KiB
Raw Blame History

WireClaw — Pi Zero 2W

Hardware

  • Modèle : Raspberry Pi Zero 2W
  • CPU : 4× ARM Cortex-A53 @1GHz
  • GPU : VideoCore IV — encodeur H264 hardware disponible via v4l2h264enc (/dev/video11)
  • RAM : 512MB
  • OS : Raspberry Pi OS Bookworm Lite (64-bit)
  • Caméra : OV5647 (module CSI standard Raspberry Pi)
  • Boîtier : dissipateur thermique
  • Charge CPU encodage : ~40% CPU (hw) vs ~80-90% (sw x264)
  • Prérequis : gpu_mem=160 dans /boot/firmware/config.txt

Stack

  • Caméra : libcamerasrc OBLIGATOIRE (Bookworm, pas v4l2src)
  • Encodage : v4l2h264enc hardware (défaut) → x264enc software (fallback auto)
  • omxh264enc : non disponible sur Bookworm 64-bit (OpenMAX supprimé)
  • Transport : RTP H264 pt=96 UDP
  • Flask : API légère port 5000 (health + settings uniquement, pas de MJPEG local)
  • h264parse requis : sudo apt install gstreamer1.0-plugins-bad -y

Réseau

  • Dev Freebox : 192.168.1.132 → Jetson 192.168.1.84:5600
  • Hotspot WireClaw : DHCP → Jetson 10.42.0.1:5600

Pipelines validés

Hardware (v4l2h264enc) — défaut

gst-launch-1.0 libcamerasrc !
video/x-raw,width=1280,height=720,format=NV12,framerate=15/1 !
v4l2convert !
v4l2h264enc !
video/x-h264,level=(string)3.2 !
h264parse !
rtph264pay config-interval=1 pt=96 ! queue !
udpsink host=192.168.1.84 port=5600

Software (x264enc) — fallback

gst-launch-1.0 libcamerasrc !
video/x-raw,width=640,height=480,framerate=15/1 !
videoconvert ! x264enc tune=zerolatency bitrate=1000 !
rtph264pay config-interval=1 pt=96 !
udpsink host=192.168.1.84 port=5600

Rôle dans WireClaw

  • Émet uniquement le flux RTP vers le Jetson
  • Pas de traitement local (YOLOv8 tourne sur le Jetson CUDA)
  • Réglages caméra via POST /settings (proxyfié depuis FastAPI Jetson)

Installation

git clone https://git.syoul.fr/nicoboy/wireclaw-pizero
cd wireclaw-pizero
bash install.sh
cp .env.dev .env
python3 camera_server.py

Repo

git.syoul.fr/nicoboy/wireclaw-pizero

Après clone : bash install.sh