🛠 Refroidir le CM5 : ventilateur PWM sur le connecteur JST-SH et tachymétrie

Raspberry Pi Compute Module 5 (compute-module-5) · intermediaire · Schéma : IMG-compute-module-5-intermediaire-2-ventilateur-pwm-cm5io.svg — CM5IO Board vue de dessus avec le connecteur ventilateur JST-SH 4 broches (5 V, PWM, tachy, GND) branché à un petit ventilateur ; la ligne Fan_Tacho (GPIO29) remonte vers RP1 ; un graphique température/rotation relie le contrôle PWM à la consigne thermique.

Objectifs

Le CM5 délivre bien plus de performance que le CM4 et chauffe davantage (throttle à 85 °C de boîtier) ; la CM5IO Board fournit un connecteur ventilateur JST-SH 4 broches (5 V, Fan_PWM, tachymétrie, GND) et le firmware pilote la PWM comme sur le Pi 5. Ce tuto : câbler le ventilateur, lire le tachymètre sur Fan_Tacho (GPIO29), et comprendre le piège documenté : Fan_PWM s'arrête à l'extinction, mais un ventilateur alimenté séparément en 5 V peut continuer à tourner si la carte mère ne coupe pas son alimentation.

Matériel

Code complet

#!/usr/bin/env python3
# rpm-ventilateur.py — lit Fan_Tacho (GPIO29) du connecteur ventilateur CM5IO.
from gpiozero import DigitalInputDevice
from time import sleep

compte = 0
def tick(_):
    global compte
    compte += 1

tach = DigitalInputDevice(29, pull_up=True, bounce_time=0.0005)
tach.when_activated = tick
sleep(5)
rpm = compte / 5 / 2 * 60          # 5 s, 2 impulsions par tour (typique)
print(f"~ {rpm:.0f} tr/min")
tach.close
# Température et état de throttle pendant la montée en charge
vcgencmd measure_temp && vcgencmd get_throttled
sudo apt install -y stress-ng && stress-ng --cpu 4 --timeout 90 &
sleep 45; python3 rpm-ventilateur.py; vcgencmd measure_temp

Vérification attendue

Le script affiche un régime stable (p. ex. ~2000 tr/min) ; sous stress, la température monte et le firmware accélère le ventilateur (le régime affiché augmente, get_throttled reste à 0x0). À l'extinction (sudo systemctl poweroff), le ventilateur branché sur le connecteur de l'IO Board doit s'arrêter — s'il tourne encore, votre carte porteuse ne coupe pas le 5 V du ventilateur.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels