NES power switch on GPIO
-
you can find it here: github
-
Bonjour, Peut on transposer ce montage sur le GPIO du Raspberry Pi 2 ? Merci
-
Bonjour @tong-man, Oui le rpi2 a les mêmes GPIO que le rpi3. Et comme le script utilise les pin 3 5 6 et 8, ça devrait même fonctionner sur un rpi1.
-
Salut @supernature2k, Quand tu dis pin 3 5 6 et 8, tu parles des GPIO ou des pinoches. Je viens de lister les pin du gpio du rpi2, les pin 3 5 6 et 8 correspondent respectivement au SDA.1, SCL.1, 0V et ALT0. Pour l'obtenir en ssh, j'ai tapé la commande : gpio readall l'interface GPIO du rpi2 et 3 sont sans doutes les mêmes mais pas celle du rpi1 (moins de pin) maintenant, si le script nomme bien les gpio, la correspondance avec les pins se fera automatiquement pour le gpio du rpi2 et 3 et sera la suivante: -Power+ –> GPIO3 (pin 15) -Reset+ –> GPIO2 (pin 13) -LED+ –> GPIO14 n'existe pas (pin ???) à moins que ce soit le GPIO4 = pin 16. -Power- , Reset- , LED- –> GND (pin 9, 25, 39, 14, 20, 30 ou 34) En tout cas merci pour ta réponse. autre info qui peut avoir son importance, les GPIO en mode sortie sur le rpi2 fournissent du 3.3V et en mode entrée attendent du 3.3V et non du 5V. Dans le script, le power+ attend du 3.3V ou du 0V ?
-
Bonjour @tong-man, Quand je dis pin 3 5 6 8 je parles... des pins Donc: Power+ pin 5 GPIO 3 Reset+ pin 3 GPIO 2 LED+ pin 8 GPIO 14 tous les -, n'importe quel GND (pin 6 le plus facile) Dans le script, j'utilise:
GPIO.setmode(GPIO.BCM) # set up BCM GPIO numbering
Ce qui veut dire que j'utilise la numérotation GPIO et non PIN. Cela implique que ça ne doit pas fonctionner avec Raspberry Pi B rev 1 P1 comme montré ici: GPIO On y voit en effet que sur ce modèle, les pin 3 et 5 correspondent aux GPIO 0 et 1. Pour tous les autres pi, aucun problème. Plus d'infos ici: wiki Enfin pour l'histoire du voltage, ça n'a aucune influence sur le bouton. Le script détecte une montée de voltage sur le GPIO lorsque le circuit est fermé, c'est tout. -
Salut @Supernature2k<b></b><i></i><u></u> Ok si tu as utilisé le nommage des GPIO, cela devrait effectivement fonctionner sur le gpio du rpi2 A ceci prêt qu'il faut que j'utilise les pins : Power+ –> GPIO3 (pin 15) -Reset+ –> GPIO2 (pin 13) -LED+ –> GPIO14 n’existe pas (pin ???) -Power- , Reset- , LED- –> GND (pin 9, 25, 39, 14, 20, 30 ou 34 Voici le tableau de correspondance du gpio 40 broches du rpi2 : (désolé pour le copier coller un peu foireux) Il faut regarder les physical (pin) et les gpio. pi@raspberrypi:~ $ gpio readall +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+ | BCM| wPi | Name |Mode| V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | | | 3.3v | | | 1 | | 2 | | | 5v | | | | 2 | 8 | SDA.1 | IN | 1 | 3 | | 4 | | | 5V | | | | 3 | 9 | SCL.1 | IN | 1 | 5 | | 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | IN | 1 | 7 | | 8 | 1 | ALT0 | TxD | 15 | 14 | | | | 0v | | | 9 | | 10 | 1 | ALT0 | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | OUT | 1 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | OUT | 1 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | OUT | 1 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 1 | OUT | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 | Comme tu peux le constater le gpio 14 n'existe pas sur le rpi2, bref pour le moment je n'ai pas besoin de bouton reset et au pire je modifierai le script en conséquence pour en utiliser un autre. N'hesites pas à me corriger si je dis une bétise, mais il me semble que celui que tu présentes est bien celui du Raspberry Pi B rev 1 P1 et il n'a pas 40 broches. de plus, j'utilise aussi un autre rpi2 sur un tout autre domaine (alarme domicile) et j'utilise aussi l'interface de son gpio, notamment, les gpio 0, 2, 3,4, 5 et 6, le 5V et les 2 3.3V, qui aliments une carte 4 relais .... <b></b><i></i><u></u> Ceci dit, je pense que je vais tester pour avoir la réponse définitive et te tient au courant, Bonne soirée.
-
@tong-man, Je ne sais pas d'où sort ce tableau mais regarde le lien que j'ai fourni précédemment, à 26 ou 40 broches, on a bien le GPIO14 qui est sur le Pin 8. On a aussi toujours le pin 6 qui est un GND. Enfin, en 26 broches rev2 et en 40 broches, on a bien GPIO2 et GPIO3 en pin 5 et 6 donc aucun problème. Regarde bien ton tableau illisible:
| BCM | wPi | Name |Mode | V | Physical | V | Mode | Name | wPi | BCM | | 2 | 8 | SDA.1 | IN | 1 | 3 | | 4 | | | 5V | | | | 3 | 9 | SCL.1 | IN | 1 | 5 | | 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | IN | 1 | 7 | | 8 | 1 | ALT0 | TxD | 15 | 14 |
Il dit la même chose que moi... Dernière ligne, physical 8, BCM 14...
-
Salut, Mon tableau est obtenu en tapant la commande ssh gpio readall directement sur mon raspberry pi2 : Il correspond au tableau dessiné sur ce site: http://pi4j.com/pins/model-2b-rev1.html je possède le "Raspberry Pi 2 Model B" D'ou mes interrogations. donc pour ce pi2, power+ sur gpio 2 = pin 13 reset+ sur gpio 3 = pin 15 led+ sur gpio 14 = pin 23 gnd = au choix pin 9 soir 2 pin au dessus de power+ pin 13 Ainsi cela devrait fonctionner Etant parti en vacances , je confirmerai ça dés mon retour début Aout. Merci encore pour tes différentes explications et réponses.
-
Non @tong-man, Encore une fois, relis ton 1er tableau et tu verras que la numérotation est la même: | BCM | wPi | Name |Mode | V | Physical | V | Mode | Name | wPi | BCM | | 2 | 8 | SDA.1 | IN | 1 | 3 | | 4 | | | 5V | | | | 3 | 9 | SCL.1 | IN | 1 | 5 | | 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | IN | 1 | 7 | | 8 | 1 | ALT0 | TxD | 15 | 14 | Regarde en bas du tableau que tu as mis en lien: Attention! The GPIO pin numbering used in this diagram is intended for use with WiringPi / Pi4J. This pin numbering is not the rw Broadcom GPIO pin numbers.
-
Bonjour @supernature2k !
Je suis rentré de vacance et me donc atelé à intégrer un pi2 dans une NES.
Pour commencer, oui j'avais tord et tu avais raison. j'avais pas percuté que tu utilisais le nommage BCM et non GPIO, ce qui ne donne pas du tout les mêmes numéros de pin.
Alors, le PCB de la NES comprenant le POWER, le RESET et la LED fonctionne très bien à un détail prés : Le boutons POWER fonctionne à l'envers : lorsqu'il est appuyé, recalbox s'éteint
et lorsqu'il est relaché, recalbox s'allume... Je me demande si ce n'est pas un bouton qui ouvre le circuit lorsqu'il est appuyé, je vérifierai cela lorsque j'aurai récupérer mon multimètre.power+ (pin 5)
reset+ (pin 3)
Led+ (pin
GND pour tous (pin 6)
un sucre 4 ports entre les fils du PCB de la NES et le GPIO du rpi2 et le tour est joué.A moins que j'ai fait une erreur quelques part ?
Autrement le tuto est très clair et dans recalbox.conf, j'ai ajouté la ligne :
system.power.switch=PIN356ONOFFRESET
comme indiqué ici :
https://github.com/recalbox/recalbox-os/wiki/Add-a-start-stop-button-to-your-recalbox-(EN)
la commande system.power.switch=NES est inopérente.@+ et merci
Seb -
Effectivement, le script est désormais intégré a recalbox sous le nom pin356onoffreset.
Pour le bouton power, essaie de le transformer en momentary.
-
Merci pour la soluce
Je confirme que le bouton Power de la NES ferme le circuit lorsqu'il est retiré et l'ouvre lorsqu'il est appuyé, d'où l'inversion de la fonction ON OFF sur la recalbox.
Je le transformerai en momentary , pour le moment c'est pas trop génant comme on dit ça fait le job
Seb
-
bon à savoir.
Donc soit tu transforme en momentary, c'est facile et c'est beaucoup plus classe, sinon tu peux modifier le script:
\recalbox\scripts\rpi-pin356-power.py
et ligne 63 tu change:
GPIO.add_event_detect(POWERPLUS, GPIO.RISING, callback=button_pressed)
en
GPIO.add_event_detect(POWERPLUS, GPIO.FALLING, callback=button_pressed)
-
Ok je vais essayer je te tiens au courant
Merci encore.
Autre petit bug que je rencontre,, c'est qu'en changeant de manette à chaud, et bien recalbox s'éteint.
Seb
-
C'est un bug que d'autres personnes ont expérimenté.
Je pensais que ça pouvais provoquer des micro-contacts des boutons lorsqu'on bouge les ports mais il semble que ça vienne plutôt d'un problème d'alim.
-
Effectivement, en branchant l'usb, c'est la masse qui fait contact en premier et qui doit provoquer le contact pour l'eteindre.
Pour voir si cela change quelques chose, je vais essayer de connecter toutes les masses ensemble. (usb, gpio, ports usb en facade de la NES)
Ensuite, je me suis connecté en ssh sur la recallbox , j'ai bien trouvé le script mais il est en "read-only file system" lorsque je sauvegarde la modif.
EDIT : c'est bon j'ai trouvé la manip a faire dans le wiki ^^je n'arrive pas à le passer en écriture avec chmod ou j'ai le même message d'erreur -
-
mount -o remount, rw /
-
hélas cela ne change qu'a moitié le fonctionnement
au démarrage bouton appuyé, message d'erreur en haut a gauche:
sh : can't access tty:job control turn off
/ #à l'arret bouton relaché, c'est bon
par curiosité, comment modifie t'on le bouton power de la NES pour qu'il soit momentary ? merci par avance
@supernature2k , j'ai connecté le pin6 (gnd) du gpio à la masse des 4 ports USB et ca marche !!! : plus d'arret de recallbox lorsque je deplug/replug des manettes USB à chaud.
-
Je ne sais pas d'où provient ce message
-
alors système éteint, j'appuie sur le bouton power de la nes, le rpi s'allume avec le cadre de toutes les couleurs et juste après, ce message apparaît en haut a gauche de l'écran sur un fond noir.