🛠 Refroidir le CM5 : ventilateur PWM sur le connecteur JST-SH et tachymétrie
Objetivos
La CM5 ofrece un rendimiento muy superior al de la CM4 y se calienta más (limitación térmica a 85 °C de carcasa); la placa CM5IO proporciona un conector de ventilador JST-SH de 4 pines (5 V, Fan_PWM, taquímetro, GND) y el firmware controla la PWM igual que en el Pi 5. Este tutorial: cablear el ventilador, leer el taquímetro en Fan_Tacho (GPIO29) y entender la trampa documentada: Fan_PWM se detiene al apagar, pero un ventilador alimentado por separado con 5 V puede seguir girando si la placa base no corta su alimentación.
Material
- 1 × CM5 en una placa CM5IO (o placa portadora que incluya el conector JST-SH, ref. JST BM04B-SRSS-TB en la placa)
- 1 × ventilador PWM de 5 V y 4 hilos (tipo Noctua NF-A4x10 PWM o equivalente)
- La carcasa IO oficial tiene un defecto conocido en la v1: es imposible montar el Cooler para CM5 y el ventilador preinstalado a la vez (corregido en la v2)
sudo apt install -y python3-gpiozero
Código completo
#!/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
Verificación esperada
El script muestra una velocidad estable (p. ej. ~2000 rpm); bajo estrés, la temperatura sube y el firmware acelera el ventilador (la velocidad mostrada aumenta, get_throttled permanece en 0x0). Al apagar (sudo systemctl poweroff), el ventilador conectado al conector de la placa IO debe detenerse — si sigue girando, su placa portadora no corta los 5 V del ventilador.
Errores frecuentes
- Ventilador que gira después de apagar: documentado en la hoja de datos (§2.11) — compartir la línea VBUS_EN o añadir un búfer 74LVC1G07 en la placa base para cortar los 5 V.
- Carcasa IO v1 + Cooler para CM5: ambos no caben juntos; retire el ventilador preinstalado o pase a la carcasa v2.
- Taquímetro sin resistencia de pull-up: la señal de colector abierto de un ventilador queda flotante sin
pull_up=True— el contador se quedará en cero garantizado. - Invertir PWM y 5 V en el conector JST-SH: verifique el orden de los pines en el lado del ventilador antes de alimentar.
Otros tutoriales para esta placa
- Alimenter un CM5 comme il faut : USB-C PD 5 V / 5 A et bouton d'alimentation
- La première RTC des Compute Modules : câbler et vérifier la VBAT du CM5
- Accès distant sans VPN : enregistrer un CM5 dans Raspberry Pi Connect
- GPIO du CM5 côté RP1 : force de conduite, budget 50 mA et broches pièges
- Deux ports USB 3.0 simultanés : le CM5 fait du stockage rapide, pas sur une carte CM4
- Démarrer le CM5 sur un SSD NVMe dans le socket M.2 de la CM5IO
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash