🛠 Surveiller la température et la fréquence de la Zero 2 W
Objectifs
Apprendre à lire l'état thermique et fréquentiel de la carte : la Zero 2 W concentre un quad Cortex-A53 dans 65 × 30 mm sans ventilateur, avec des couches de cuivre épaisses comme dissipateur. Le seuil de throttling est 85 °C (réduction progressive dès 80 °C). Vous allez mesurer, contraindre et vérifier le comportement sous charge.
Matériel
- 1 Raspberry Pi Zero 2 W (connectée en SSH)
- Optionnel : un petit dissipateur adhésif (les boîtiers fermés aggravent la montée en température)
- Une charge de test : sysbench ou une simple boucle de calcul
Code complet
# Température du SoC (mesure côté GPU, la plus juste sur les kernels Pi) :
vcgencmd measure_temp # temp=48.3'C
# Fréquences actuelles des cœurs :
vcgencmd measure_clock arm # en Hz (1000000000 = 1 GHz nominal)
# Bits d'état : 0x0 = tout va bien ; bit 0 = sous-tension,
# bit 18 = bridage thermique déjà survenu depuis le boot :
vcgencmd get_throttled
# Échantillonnage toutes les 2 s pendant une charge :
nproc
seq 4 | xargs -P4 -I{} sh -c 'yes > /dev/null &'
while true; do
printf "%s %s %s\n" "$(date +%T)" \
"$(vcgencmd measure_temp | cut -d= -f2)" \
"$(vcgencmd measure_clock arm | cut -d= -f2)"
sleep 2
done
# Stopper la charge : Ctrl-C puis « pkill yes »
Vérification attendue
Au repos autour de 40–50 °C ; en charge sur les 4 cœurs, la température monte franchement. À 20 °C ambiant, une Zero 2 W nue tient un stress test indéfiniment sans bridage (documenté par la fondation) — mais en boîtier fermé ou avec dissipateur absent dans une pièce chaude, on voit la fréquence retomber sous 1 GHz et « get_throttled » afficher le bit 18. Le refroidissement passif optionnel devient alors un choix de performance, pas de sécurité.
Erreurs fréquentes
- Se fier à /sys/class/thermal qui peut traîner : « vcgencmd measure_temp » parle directement au GPU, c'est la référence sur ce SoC.
- Confondre throttled=0x0 (jamais bridé depuis le boot) et l'état instantané : les bits d'historique ne s'effacent qu'au redémarrage.
- Croire le bit 0 (sous-tension) fiable sur Zero : la gamme Zero n'a PAS de détection de sous-tension matérielle — 0x0 ne prouve pas que l'alimentation est bonne.
- Coller un dissipateur sur le mauvais composant : la chaleur vient du package RP3A0 (le SoC SiP), pas du régulateur.
- Laisser « yes » tourner en arrière-plan après le test : la carte chauffe pour rien et la SD s'use.
Autres tutoriels pour cette carte
- Premier démarrage de la Zero 2 W sans écran (headless)
- Se connecter au Wi-Fi (et comprendre les limites 2,4 GHz / WPA2)
- GPIO en Python : LED et bouton avec gpiozero
- Le tour de passe-passe « clé USB Linux » : Ethernet sur USB (g_ether)
- Serveur de blocage de pub réseau avec Pi-hole
- Remettre une Zero 2 W en état de boot : usbboot et boot files
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash