🛠 Caméra officielle sur le connecteur FPC CSI du CM1
Objectifs
Utiliser une caméra sur le CM1 via son connecteur CSI à nappe FPC. Contrairement aux ports CSI ouverts des cartes RPi standard, celui du CM1 est un connecteur fermé (à claquette) : seules les nappes d'origine des modules caméra officiels s'y insèrent, et le pipeline multimédia du BCM2835 n'accepte que les deux capteurs officiels, OV5647 (v1) et IMX219 (v2). L'activation se fait par start_x=1 dans config.txt, et la capture passe par les outils GPU (raspistill) et non par V4L2.
Matériel
- Un Compute Module 1 sur IO Board (le CSI de l'IO Board est exposé)
- Un module caméra officiel v1 (OV5647) ou v2 (IMX219), nappe FPC orientée contacts vers le SoC côté CSI
- Pas de caméra USB ni de capteur tiers : non supportés sur ce chemin
Code complet
# Activer le port caméra dans /boot/config.txt
sudo tee -a /boot/config.txt <<'EOF'
start_x=1
gpu_mem=128
EOF
sudo reboot
# Vérifier la détection du capteur
camera_identify -p 0 # ov5647 ou imx219
# Capture fixe et vidéo
raspistill -o test.jpg -w 1280 -h 720
raspivid -o video.h264 -t 5000 -w 1280 -h 720
Vérification attendue
camera_identify affiche le modèle du capteur détecté ; raspistill écrit une JPEG correcte (blanche si l'objectif est bouché, ce qui est normal). vcgencmd get_camera renvoie supported=1 detected=1. Si detected=0, c'est la nappe : le connecteur fermé du CM1 n'accepte aucune nappe de récupération au pas différent.
Erreurs fréquentes
- Brancher une nappe FPC générique ou d'un autre module : le connecteur fermé du CM1 est exigeant, seule la nappe d'origine s'engage correctement.
- Essayer une caméra tierce (IMX334, USB) : le pipeline BCM2835 ne connaît que OV5647 et IMX219.
- Nappe montée contacts mal orientés :
detected=0permanent, tout est propre par ailleurs. - Oublier
gpu_mem=128: le firmware n'a pas de mémoire pour le pipeline caméra, détection muette. - Chercher
/dev/video0et V4L2 : sur ce chemin GPU, les outils sont raspistill/raspivid ; V4L2 n'expose pas la caméra officielle du CM1.
Autres tutoriels pour cette carte
- Flasher l'eMMC du CM1 avec rpiboot et le jumper J4
- Premier boot : Bullseye legacy, rails 3,3 V et ordre des alimentations
- Première LED sur GPIO17 : banques, courants et broches réservées
- Servo moteur sur PWM0 (GPIO18) : 50 Hz et 2,5 à 12,5 %
- BME280 sur I2C0 (GPIO2/3) : activer i2c_arm et lire l'ID 0x60
- Boot sans EEPROM : fallback USB et bootcode.bin sur eMMC
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash