Bouton d'alimentation intelligent pour Raspberry Pi: solution pour Raspberry Pi jusqu’au modèle 4
sur
Le succès et la popularité des cartes Raspberry Pi est certainement bien justifiée, mais au cours du temps, des utilisateurs ont remarqué, et se sont plaints de l’absence d’un interrupteur d'alimentation. Le bouton souhaité a finalement été ajouté au nouveau Raspberry Pi 5, mais les propriétaires de versions antérieures devraient trouver ce projet intéressant.

Câblage simple
Les accessoires qui ajoutent un bouton de mise sous tension du Raspberry Pi ne sont pas nouveaux. Il s’agit d’offres commerciales ou de circuits à réaliser soi-même, du simple câble muni d’un interrupteur à la carte additionnelle HAT (Hardware on Top) sophistiquée. La solution que je propose présente l’avantage de comporter un câblage relativement simple et ne nécessite aucune programmation ou script d’installation, ni même de services automatisés de mise en œuvre.Quelques composants et l’ajout de trois lignes de texte dans le fichier config.txt permettent de mettre sous tension une carte Raspberry Pi par le simple appui sur un bouton poussoir, d’arrêter correctement son système d’exploitation (même en cas de système aveugle), et d’interrompre l’alimentation de la carte sans devoir retirer le connecteur USB, réduisant ainsi sa consommation électrique à zéro.
Configuration des broches
Le circuit représenté figure 1, doit être installé entre une alimentation standard et la carte Raspberry Pi, et être relié à deux broches GPIO standard sur le connecteur linéaire à 40 broches. Avant de relier le circuit, il est nécessaire de définir le comportement de ces deux broches, en utilisant une possibilité apparue dans les versions les plus récentes du système d’exploitation du Raspberry Pi.

Cette possibilité, connue sous le nom de Device Tree Overlays, permet d’insérer des instructions exécutables par le matériel, sous forme de texte dans le fichier config.txt. Ce fichier (qui est chargé à chaque démarrage du système d’exploitation), est situé dans la partition bootfs du système d’exploitation sur la carte micro SD. Il est facilement accessible, même à partir de Windoiws et peut être modifié en utilisant un éditeur de texte. Les trois instructions suivantes doivent être ajoutées à la fin de ce fichier :
gpio=23=op,dh
Cela définit la broche GPIO23 comme sortie au niveau 1 (Haut).
dtoverlay=gpio-poweroff,gpiopin=23,active_low,active_delay_ms=10000
Ceci va mettre GPIO23 au niveau bas quand la fermeture (shutdown) est terminée.
dtoverlay=gpio-shutdown,gpio_pin=24,active_low=1,gpio_pull=up,debounce=3000
Ceci permet le démarrage sécurisé quand la broche GPIO24 est maintenue au niveau bas pendant une durée supérieure à 3 secondes. GPIO24 est définie comme entrée avec résistance de tirage au niveau haut. Un exemple de fichier config.txt modifié, accompagné de commentaires, est illustré figure 2.

Circuit
Le fonctionnement du circuit devient plus clair. En pressant le bouton SW1 et en le maintenant appuyé, le transistor MOSFET Q1 (Canal P) devient conducteur. Cela permet l’alimentation de la carte Raspberry Pi et l’amorçage du système d’exploitation ? Après environ 1 seconde, la broche GPIO23 passe au niveau haut, la LED bleue s’éclaire, le MOSFET Q2 (Canal N) devient passant et maintient l’état conducteur de Q1, le poussoir peut alors être relâché.
Si vous stoppez le Raspberry Pi à partir du menu de démarrage du système d’exploitation, à la fin de la procédure (safe shutdown) la broche GPIO23 passe au niveau bas, la LED bleue s’éteint, Q1 et Q2 passent à l’état bloqué et l’alimentation de la carte est interrompue. Le même comportement est obtenu en appuyant sur le poussoir pendant plus de 3 secondes. À la suite de ce délai, la broche GPIO24 active la procédure d’arrêt sécurisé sans que l’utilisateur n’ait à intervenir auprès du système d’exploitation, ce qui est fort pratique dans le cas des systèmes aveugles.

Étudions la description du schéma : C1 et R1 empêchent Q1 de devenir passant quand l’alimentation est reliée. D1 et D2 protègent GPIO24 de la tension de 5 V présente sur la grille de Q1 (par l’intermédiaire de R1) quand Q2 est bloqué. R4 est une résistance de rappel au niveau bas de la grille de Q2, R2 et R3 protègent les broches GPIO en cas de courant excessif. Le MOSFET Q1 a été choisi en raison de sa faible résistance de saturation (environ 16 mΩ pour VGS = -4,5 V) afin de minimiser la chute de tension et la perte de puissance.
Le prototype complet est représenté sur la figure 3. Il a été réalisé sur un petit - circuit imprimé à souder qui peut être logé auprès de votre carte Raspberry Pi.
Note de l'éditeur : Cet article (240546-04) devrait paraître dans le numéro spécial 2025 d'Elektor Circuit.
Discussion (1 commentaire(s))