Solved Ecran 3.2 + boutons sur ports GPIO
-
j'ai pas de pi sous la main... je regarde dès que je peux
-
merci bcp bcp bcp!!!
-
ben tu as peut être mis le doigts sur un truc là ... on vérifie
-
super pour une fois que je trouve quelque chose!!! : )
voilà où j'en suis, j'ai edité le fichier /etc/modules.conf, où j'ai
snd_bcm2835
uinputj'ai ajouté la ligne :
mk_arcade_joystick_rpij'ai ensuite créé le fichier :
nano /etc/modprobe.d/mk_arcade_joystick.confj'y ai inscrit, pour tester juste avec 2 bouton (left et start):
options mk_arcade_joystick_rpi map=4 gpio=-1,-1,31,-1,35,-1,-1,-1,-1,-1,-1,-1,-1ensuite j'active les ports gpio danbs le fichier de conf de recalbox et je redemarre.
et là c'est le drame! ecritures blanches qui défilent, le pi ne ping plus, bref je fou la m...heureusement que j'ai créé une image que j'ai pu restaurer!
enfin voilà où j'en suis.
ps: par contre si je customize les port gpio, faut il les activer dans le recalbox.conf?
-
bon an fait c'est normal qua ça marche pas, il faut que je te file la version compileé avec la version de noyau de la 4.0. Moi je t'ai filé un module pour un noyau de la 4.1. je te fais cela
et oui il faut activer le gpio dans recalbox.conf
par contre je te conseille de tester le module avec un ecran de PC dans un premier temps pour pouvoir vérifier facilement que ç amarche
ensuite tu remets la config du 3.2
-
ok super merci j'attend ton retour, pour info quand je fait un uname -a :
Linux RECALBOX 4.1.19-v7 #1 SMP Mon Oct 31 20:09:55 UTC 2016 armv7l GNU/Linuxdonc je suis bien en 4.1???
-
Nop le noyau de la 4.1 est un 4.4.13-v7. tu es bien sur un pi3 que je build pour la bonne arch.
-
oui c'est un pi3 b
-
bon ben ça compile....
-
t'es un chef!
sans vouloir abuser pourra tu me guider pour l'intégration?
merci par avance. -
tu sais combien de temps prend une compilation?
-
bah c'est fini depuis un moment...mais j'ai des trucs à faire aussi
https://mega.nz/#!ygMGxTZI!icFwxfu3EPG8wOejXsvMpig2MjSaRqFfKFQf_ssLIRYle fichier mk_arcade_joystick_rpi.ko à placer dans le répertoire /lib/modules/4.1.19-v7/extra/ (fais une copie de l'ancien avant)
ensuite comme indiqué ici https://github.com/recalbox/mk_arcade_joystick_rpi/tree/hotkeybtn
"Loading the driver
The driver is loaded with the modprobe command and take one parameter nammed "map" representing connected joysticks. When you will have to load the driver you must pass a list of parameters that represent the list of connected Joysticks. The first parameter will be the joystick mapped to /dev/input/js0, the second to js1 etc.."
"If you don't want to use all pins or wants a custom gpio map use:
sudo modprobe mk_arcade_joystick_rpi map=4 gpio=pin1,pin2,pin3,.....,pin12
Where pinx is the number of the gpio you want. There are 12 posible gpio with button order: Y-,Y+,X-,X+,start,select,a,b,tr,y,x,tl,hk. Use -1 for unused pins. For example gpio=21,13,26,19,-1,-1,22,24,-1,-1,-1,-1,-1 uses gpios 21,13,26,19 for axis and gpios 22 and 24 for A and B buttons, the rest of buttons are unused.If you want customization for both players use map=4,5 and gpio= for player 1 and gpio2= for player 2. Example:
same configuration as map=1,2 but manually:
sudo modprobe mk_arcade_joystick_rpi map=4,5 gpio=4,17,27,22,10,9,25,24,23,18,15,14,2 gpio2=11,5,6,13,19,26,21,20,16,12,7,8,3
If you use a TFT and want two players, you can´t use all gpios.
Example with two players and only axes, A and B buttonssudo modprobe mk_arcade_joystick_rpi map=4,5 gpio=4,17,27,22,-1,-1,25,24,-1,-1,-1,-1,-1 gpio2=11,5,6,13,19,-1,-1,20,16,-1,-1,-1,-1,-1
The GPIO joystick 1 events will be reported to the file "/dev/input/js0" and the GPIO joystick 2 events will be reported to "/dev/input/js1"
Auto load at startup
Open
/etc/modules
:sudo nano /etc/modules
and add the line you use to load the driver :mk_arcade_joystick_rpi
Then create the file
/etc/modprobe.d/mk_arcade_joystick.conf
:sudo nano /etc/modprobe.d/mk_arcade_joystick.conf
and add the module configuration :
options mk_arcade_joystick_rpi map=4,5
Testing
Use the following command to test joysticks inputs :
jstest /dev/input/js0"
et dans le recalbox.conf
# ------------ D3 - GPIO Controllers ------------ # ## GPIO Controllers ## enable controllers on GPIO with mk_arcarde_joystick_rpi (0,1) controllers.gpio.enabled=1 ## mk_gpio arguments, map=1 for one controller, map=1,2 for 2 (map=1,map=1,2) controllers.gpio.args=map=4,5
-
tu est génial!
je teste cela ce soir et je te tiens au courant...désolé je ne voulais pas te présser ct juste pour savoir si je pouvai éteindre le pi ou pas...
encore merci je reviens vers toi max demain matin.
-
bien sur les commande ci dessus sont à adaptée en fonction de tes besoin. Il faut tester pas à pas pour vérifier que ça marche
le modprobe permet de tester de manière temporaire jusqu'au prochain reboot... la suite permet de rendre permanent
-
salut ian57,
je reviens vers toi pour te faire part de mes test.
J'ai bien remplacé le fichier mk_arcade_joystick_rpi.ko par celui que tu m'a fourni (encore merci)
Pour effectuer mon premier test, j'ai plugger un poussoir sur le port 40 du gpio et le gnd juste a cote. Je souhaiterai tester le deplacement gauche (x-).
J'ai donc effectuer un :
modprobe mk_arcade_joystick_rpi map=4 gpio=-1,-1,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
Lorsque je valide cette commande, l'écran du pi se met a défiler vers la gauche, sans que je puisse l'arrêter. On dirai que le btn reste appuyé. J'ai refait la manip en enlevant le btn mais l'écran défile également. (reboot entre deux).
J'ai plugger un autre btn pour le deplacement vers la droite, maiss lors de l'appui sur ces btn riien ne se passe à l'écran du pi.
J'ai essayé d'attribuer le gpio 40 sur le A, par exemple, et là j'ai ON qui apparait dans le:jstest /dev/input/js0
Je croyait que ce jstest se mettait en "attente" des appuis sur les bouton et afficherait ON si l'on appui dessus, mais là il est sur ON dès le début.
Je voudrait juste trouver une solution pour le déplacement gauche (x-), cela me permettrait de dupliquer la procédure sur les autres touches.
Donc pour tester je fait juste un
modprobe mk_arcade_joystick_rpi map=4 gpio=-1,-1,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
et ensuite si je fait un jstest et que j'appui sur mon btn il devrait se mettre a ON c'est bien cela? Parce que là ca continue a défiler même sans bouton pluggé sur le gpio.
Merci par avance pour ta réponse. -
yep c'est bizarre... bon en même temps cette version je ne l'ai pas encore testée... j'avais tester la version master. J'ai recompilé une 4.0 entière, je ferais un test.
sinon je peux te recompiler la version master, celle ci fonctionnait avec mon pi zero
-
oui pourquoi pas ça serai sympa merci j'attends ton retour
mais j'ai raison pour le fonctionnement: tu lance le modprode afin de définir les ports utilisé et par qui, et ensuite tu vérifie que ton bouton répond dans le jstest , c'est bien cela? et si cela fonctionne dans le jstest, tu met ton mk_arcade_joystick_rpi map=4 ...... dans le /etc/modprobe.d/mk_arcade_joystick.conf afin qu'il soit pris en compte au lancement du pi, c'est bien cela???
-
oui voila tu as tout compris.. ya la fonction rmmod qui permet de décharger le module pour retster ensuite une autre config
une fois que tout est ok, tu fixes tout cela dans le fichier de conf.
-
ok, et donc selon toi cela viendrai du mk_arcade_joystick_rpi.ko l'effet que j'ai?
-
possible je ne sais pas, je ne l'ai pas testé... peut être as tu branché le microswitch de ton bouton sur la mauvaise broche. Si y'en a 3, y'en a une qui est a 1 tout le temps et passe a zero à l'appuis... et l'autre fait l'inverse et ya aussi la masse.
verifie ça