Publié le 23 décembre 2016 - par

RecalBox : Ajouter un bouton poussoir pour allumer/éteindre proprement

Vous connaissez très certainement Recalbox, l’OS disponible en open source dédié au retrograming et qui transforme notre framboise préférée en console de jeux.
Pour les plus téméraires qui souhaitent aller plus loin et profiter des ressources du Raspberry Pi, il est possible d’ajouter un bouton poussoir afin d’allumer et d’éteindre correctement votre console ! Mais comment y parvenir ?

Un bouton poussoir pour allumer/éteindre Recalbox

Le matériel nécessaire

  • un Raspberry Pi avec l’OS Recalbox installé sur votre micro SD
  • une carte de prototypage
  • 2 jumpers (fils équipés de connecteurs mâle/femelle)
  • un bouton poussoir

Quel bouton utiliser ?

Vous pouvez ajouter un bouton d’alimentation pour démarrer/arrêter votre RecalBox, depuis la version 4.0 beta 3. Le bouton peut être soit un bouton poussoir, soit un bouton Arrêt/Marche ou interrupteur à verrouillage.
Remarque concernant les boutons poussoirs : Certains GPIO possèdent des résistances pull-up intégrées (résistances reliées au +3.3V), il est donc préférable d’utiliser des interrupteurs normalement ouverts (abrégés NO) avec ces broches.

Pour brancher le commutateur au GPIO du Raspberry Pi, branchez une broche sur le GPIO3 (la broche GPIO N°5 en haut à gauche) et une autre sur la masse située juste à sa droite à droite (la broche GPIO N°6) :

Activation de l’interrupteur

Pour que votre interrupteur soit pris en compte par RecalBox, vous devez activer cette fonction dans recalbox.conf, en ajoutant/décommentant une des lignes :

  • System.power.switch = PIN56ONOFF pour un interrupteur A/M
  • System.power.switch = PIN56PUSH pour un bouton poussoir

Votre RecalBox peut maintenant être activé/désactivé avec un simple bouton !

Encore mieux

Depuis RecalBox 4.0 beta 4, il y a une autre option qui vous permet d’ajouter également un interrupteur et un voyant d’alimentation :

Dans recalbox.conf, ajoutez/décommentez la ligne suivante :

System.power.switch = PIN356ONOFFRESET

Le bouton d’alimentation fonctionne uniquement avec un interrupteur A/M à verrouillage. Dans cette configuration il est câblé comme ci-dessus entre le GPIO3 et la masse.

Le bouton de RESET ne fonctionne qu’avec un bouton poussoir et doit être connecté au GPIO2 (la broche N°3 en haut à gauche) et à la même masse que le commutateur A/M (broche N°6).

La LED d’alimentation est connectée avec l’anode (+, broche longue) au GPIO14 (broche N°8) et la cathode (-, broche courte) à la masse (broche N°6).

Le GPIO14 fournit du 3.3V donc si vous avez une LED qui nécessite moins de 3.3V (la plupart des LED rouge, orange, jaune et verte) vous devrez ajouter une résistance entre l’anode de la LED (+) et le GPIO14, pour éviter de détruire la LED. Si vous avez une LED qui nécessite plus de 3.3V, vous n’avez pas besoin d’une résistance, mais votre LED émettra moins de lumière que prévu.

Pour résumer

  • Un interrupteur A/M sur le GPIO 3 (PIN 5)
  • Un interrupteur RESET sur le GPIO 2 (PIN 3)
  • L’anode de la LED (+, broche longue) sur une broche de la résistance (ou directement sur le GPIO 14 (PIN 8) si vous n’avez pas besoin d’une résistance)
  • L’autre broche de la résistance sur GPIO 14 (PIN 8) (si vous avez besoin d’une résistance)
  • L’autre borne du commutateur A/M, l’autre borne du poussoir RESET et la cathode de la LED (-, broche courte) : relier ces 3 bornes à la masse (PIN 6)

Vidéo

Pour la connexion du bouton poussoir par exemple, regardez le tutoriel vidéo que j’ai réalisé sur la chaîne YouTube Fredi Digital Gaming où j’explique l’intérêt du bouton poussoir pour la distribution Recalbox. Vous verrez comment effectuer l’installation, les tests et ainsi que quelques informations pour éviter les bugs.

Notez quelques ajouts ou modifs pour cette vidéo :

  • Une chose à ajouter : vous devez ajouter la ligne « system.power.switch=PIN56PUSH » dans le fichier « recalbox.conf« 
  • Une chose à corriger : ce n’est pas le fichier « recalbox.conf » mais « /boot/config.txt » dans lequel il faut ajouter disablesafemode.

 

Conclusion

L’utilisation de RecalBox permet de retrouver les jeux des anciennes consoles. L’absence d’interrupteur arrêt/marche sur le Raspberry Pi peut en partie être compensée par l’ajout de ce interrupteurs.

N’hésitez pas à faire vos remarques et suggestions dans les commentaires ci-dessous.

Sources

Share Button

41 réflexions au sujet de « RecalBox : Ajouter un bouton poussoir pour allumer/éteindre proprement »

    1. Fredi DigitalGamig Auteur de l’article

      Hello Dodutils,

      Oui tu as raison, le RasPi restera allumé (led rouge en mode veille). Par contre, l’intérêt réside surtout au niveau du rallumage : plus besoin de débrancher et de rebrancher le RasPi de l’alim pour relancer Recalbox.

      Répondre
      1. msg

        Après une commande Shutdown , quoi de mieux qu’une bonne RAZ via les plots RUN pour réveiller le RPi !?
        Je ne vois rien de Hard sur ce système , au contraire c’est plutôt simple et économique en ressource GPIO .

        Répondre
  1. Jerrybutcher

    Une petite question de débutant: peut-on utilisé une autre masse (GROUND) que celle en PIN 6 ?
    Car j’utilise déjà ce PIN pour un ventilateur qui utilise en anode le PIN 2 (5V) ou le PIN 1 (3V).

    D’ailleurs d’une manière générale, est-ce que les PIN Ground sont « liés » à d’autre PIN ou est-ce qu’ils sont indépendant et que tous les PIN Ground peuvent se substituer les uns les autres?

    Merci d’avance!

    Répondre
    1. François MOCQ

      Bonjour
      Pas de souci toutes les masses (GND) sont reliées ensemble et on peut utiliser celle qu’on veut comme masse
      c’est la masse de la carte et elles ne sont reliées à rien d’autre (sinon ça s’appelle un court-circuit 😀 )
      (enfin… les parties métalliques des prises sont aussi à la masse mais c’est normal c’est un blindage)
      cordialement
      François

      Répondre
      1. Jerrybutcher

        Merci pour ces précieuses informations!

        Comme à sur chaque tuto, on pousse à utiliser la masse en PIN 6, je me disais bien aussi que les autres masses pouvait servir à autre chose ;P

        Joyeux Noël à tout le notre Pi’Monde!

        Répondre
        1. Geo

          en tant qu’électronicien de formation, je tien à rappeler que même si, pour des raison de simplification de conception ou de coût, la plupart des « masse » et « blindage » sont reliés (rassemblé) sur un seul et même conducteur… pour des montages de qualité, ce rassemblement peux poser problème car il rassemble aussi les parasites qui s’additionnent alors les uns aux autres. C’est particulièrement important dès lors qu’il est question de signaux analogiques (chaîne hi-fi…), ou de matériels fragiles.

          …de mémoire, sur toutes les version du Pi, la « masse » est directement lié au « 0V » (pôle négatif) ET aux « blindage » des connectiques >> la masse du Pi se retrouve donc relié à la masse des périphériques à travers le blindage du RJ45, USB, RCA, jack 3.5, etc. >> boucle de masse, multi-terre, etc.
          Attention donc aux « made in china » que vous lui accolez ^^’

          pour une explication un peu plus « électrique » je t’invite à voir la vidéo 45 et 46 de jipihorn (un prof d’électro) : https://youtu.be/uAEFBRrZ_9c?t=1065

          Répondre
          1. Geo

            PS: pour l’usage d’un bouton ou/et d’une diode en plus d’un ventilo déjà présent, cela ne posera aucun problème, c’est du chipotage… en revanche si dans le futur tes projets t’amènent dans l’un des cas évoqué plus haut, alors tu auras gagné de longues heures de diagnostiques et une parti de tes cheveux =P

          2. François MOCQ

            Bonjour Geo
            c est tout à fait vrai, merci de ce complément d’information.
            Dans de nombreux montages on utilise une masse unique qui est souvent le borne négative (si elle est à la masse) de l’alimentation. Ça évite bien des soucis de boucles de masse et autres joyeuses ronflettes 🙂
            Dans le cas des cartes comme le Pi, il y a une couche de masse dans le circuit imprimé, en général avec une faible impédance. Pour connecter une manette et un ventilo ça ne devrait pas poser de problème
            Bonne année
            Cordialement
            François

  2. Dédé

    Hello,

    Pour ce qui est d’avoir une alim pour le raspberry pi, avec le RaspTouch (http://www.framboise314.fr/rasptouch-un-systeme-musical-a-base-de-raspberry-pi/) il y a un module d’alimentation (http://www.audiophonics.fr/fr/accessoires-pour-raspberry-pi-et-autres-sbc/audiophonics-pi-module-de-controlealimentation-pour-raspberry-pi-p-11504.html) qui fonctionne assez bien, comme une alim ATX. Les scripts à installer : https://github.com/audiophonics/Raspberry-pwr-management

    Avantage : ça coupe réellement l’alimentation
    Inconvénient : il faut changer d’alimentation.

    Question : est-il possible de configurer la carte son pour utiliser celles des RaspTouch ? (dtoverlay=hifiberry-dac dans le config.txt…)

    Répondre
    1. le Piaf

      Salut,

      Justement j’utilise un module d’alimentation de chez audiophonics. Cela fonctione parfaitement sur PicorePlayer et Raspbian.

      Je suis en train de configurer le bouton poussoir sur Realbox, mais pour l’instant je bloc sur les fichiers de configuration realbox.conf et config.txt

      A priori, ce ne sont pas les mêmes pin qui sont utilisés dans ce tuto. quelqu’un aurai-t-il une solution ?

      Répondre
  3. Dim

    Hello, petite question…
    L’alimentation de mon raspberry est directement branché sur ma TV. Du coup quand ma TV est allumée la raspberry s’allume et quand je coupe la TV le raspberry se coupe (alim directement coupée). C’est mauvais ou.. ??

    Merci 😉

    Répondre
    1. François MOCQ

      bonjour
      bin à vrai dire sans être mauvais pour le Raspberry Pi c’est pas bon pour la carte SD 🙂
      on est sur du Linux et il y a des échanges entre la mémoire RAM et les fichiers sur la SD
      si vous coupez brutalement le courant certains fichiers peuvent ne pas avoir été fermés correctement
      des fois ça se traduit par… un raspberry pi qui ne démarre plus
      Si vous arrêtez d’abord le système proprement avant d’éteindre pas de souci
      si vous faites ça a la sauvage… c’est le risque.
      cordialement
      François

      Répondre
    1. François MOCQ

      Bonjour
      eh non ! c’est un bouton de reset
      il fait redémarrer « hardement » le système si vous fermez le contact lorsque Linux est en fonctionnement
      si vous mettez le système en halt par la ligne de commande ce contact le fait redémarrer proprement
      mais jamais ça ne coupe l’alim
      cordialement
      François

      Répondre
  4. vail

    Merci pour votre réponse et rapide en plus.

    Mon projet complet serait ma Raspberry Pi 3 avec des dissipateurs de chaleur, un module RTC horloge de temps réelle (type RTC Pi PLUS) sur le port GPIO, un bouton On/Off, un HDD de chez WD PiDrive 1To, un ventilateur, le tous dans le boitier WD Square.
    Que pensez-vous de ce projet?

    Est-il possible de mettre des dissipateur de chaleur et un horloge (assez de place entre les deux)?
    Et quelle horloge mes conseillez-vous?

    Et encore merci

    Répondre
  5. Ben

    Salut,

    J’ai suivi le tuto pour mon projet de recalbox dans une playstation 1. J’ai installer le bouton power et reset, ça fonctionne par contre si je branche ou débranche un usb sur le raspberry, il déclenche un reset de la recalbox. J’ai testé juste le bouton reset et juste le bouton power et les 2 ensembles mais le souci persiste… Vous avez une idée ?

    Répondre
  6. p0ulak

    Salut puis faire avec un poussoir un on/off et un reset (poussoir aussi)
    du genre:
    System.power.switch = PIN36RESET
    System.power.switch = PIN56PUSH

    Répondre
  7. Crouz

    Bonjour, je suis debutant et j ai fait l acquisition d un raspberry pi zero w,
    je voudrai faire executer un script python en appuyant sur un simple bouton,
    l idée et d installer le raspberry sur un robot ( donc pas de clavier ni d ecran pour la mise en service);
    Merci d avance

    Répondre
    1. François MOCQ

      Bonjour
      il faut créer un script qui sera lancé automatiquement au démarrage du système
      le script lit l’état du port sur lequel le bouton est connecté
      lorsqu’il détecte un appui il lance le programme adéquat
      il y a de nombreux exemples en ligne 😉
      cordialement
      François

      Répondre
  8. Gumgum

    Bonjour à tous,
    Avant de me lancer, j’ai une petite question:
    j’ai l’impression que l’ajout de ce bouton poussoir met l’OS en veille et qu’il ne coupe pas l’alimentation du PI. SI j’ai un ventilateur branché sur le 5V, celui ci ne sera pas arrêté je présume, non?

    Répondre
  9. Quentin

    Bonjour,
    Je compte ajouter un ToggleSwitch pour allumer/éteindre Recalbox et pouvoir laisser tout branché.
    Par contre, mon Rasp est dans un boitier, comportant un ventilateur alimenté par les broches 5V/GND du GPIO.
    La question que je me pose est: le ventilateur sera t il toujours alimenté et donc tournera t il toujours lorsque le Rasp sera en veille?
    Je n’arrive pas à trouver l’état des PIN d’alimentation lorsque le Rasp est en veille.
    Si c’est le cas je peux ajouter un autre toggleswitch pour couper l’alim du ventilateur mais bon , deux bouton pour allumer le boitier… Ce n’est pas un ampli à lampe non plus..

    Sinon ultime solution: un DPDT switch

    Merci pour votre aide.

    Répondre
  10. Flip

    Bonjour,
    J’ai un boîtier nuxii avec un pi3 sous retropie.
    Je ne trouve nul part un tuto pour que le bouton poussoir à led reste allumé et qu’il fonctionne comme celui de votre tuto pour recalbox.
    Pourriez vous m’aider !

    Répondre
  11. Benjamin

    Bonjour a tous je me lance dans l’aventure rasperry dans le cadre d’une recalbox. J’aimerais rajouter un bouton-poussoir pour pouvoir éteindre et allumer correctement le pi et j’ai acheté celui-ci
    https://bsfrance.fr/tact-switch-boutons-poussoirs/552-PB61412FL-power-button-LED-backligh-bouton-demarrage-lumineux-eclaire-LED-logo.html

    Je voudrais savoir si il convient de mettre une resistance pour protéger la led entre le gpio14(3,3v) et l’anode de la led?si oui pouvez m’indiquer laquelle? Enfin je me demande sur le bouton quelle est lanode et quelle est la cathode sachant que les pates font la même longueur?
    Merci d’avance

    Répondre
  12. Benjamin

    Bonsoir François et merci pour les précieuses infos!par contre j’ai beau tourne le schéma dans tous les sens,je n’arrive pas à voir ou est le + ou est le -?il aurait pu mettre vu de gauche etc mais non ou alors je ne comprend pas!
    Merci beaucoup!

    Répondre
  13. François MOCQ

    Bonjour Benjamin
    bin moi non plus je ne sais pas mais il suffit d’alimenter la LED à partir du 3.3v du raspberry pi à travers une résistance de 100 à 330 ohms et de regarder. Si ça s’allume c’est dans le bon sens, sinon… c’est dans le mauvais sens et il faut inverser les connexions. aucun risque puisque c’est une diode et qu’elle bloque le courant quand on connecte dans le mauvais sens 🙂
    connecter une LED sur le Raspberry Pi
    Le schéma ci-dessus vous explique comment brancher la LED
    attention quand même de ne pas vous lancer dans une aventure avant de ne pas avoir les bases minimales. Je donne souvent cet exemple lors de mes conférences : « un jour quelqu’un m’a dit qu’il voulait faire un projet de tondeuse autoguidée avec un retour vidéo sur son smartphone… » Je lui demande : « Savez vous allumer une LED avec le Raspberry Pi ?  » et il me répond « Non ! ».
    La morale de l’histoire c’est qu’il faut comprendre ce que vous faites. Si vous ne savez pas comment fonctionne une LED, pourquoi on met une résistance, dans quel sens on la connecte, comment la tester sans danger avec une alimentation ou un multimètre… vous avez peut-être grillé des étapes.
    Après c’est un choix, vous pouvez « assembler » des choses sans trop comprendre comment ça fonctionne. Si ça « tombe en marche » tant mieux ! Mais si ça ne fonctionne pas il faut un minimum de compréhension de ce qui se passe pour dépanner 🙂 Enfin, c’est juste mon avis
    cordialement
    François

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.