Personnalisation des PIN GPIO (Driver mk_arcade_joystick )
-
Bonjour,
Etant confronter à un nouveau problème, je fais appel à votre aide.
Mes PIN* SPI sont utilisés par une puce MCP3008 (PIN* MOSI, MISO, SCK et CE). Malheureusement, l'emplacement par défaut des PIN MOSI et MISO sont les boutons START et SELECT dans le driver mk_arcade_joystick .Je souhaiterais donc attribuer vers de nouvelles GPIO libres les boutons START ET SELECT .
J'ai parcouru le forum et suis tombé sur cette issue : https://forum.recalbox.com/topic/2953/custom-gpio-pin-config
Et ce Github ou tout est expliqué : https://github.com/Pinuct/mk_arcade_joystick_rpi/tree/customgpiohotkeyIl faut apparemment mettre à jour le pilote arcade_joystick_rpi en version 0.1.5 (j'ai la 0.1.4)
et charger ce module :
sudo modprobe mk_arcade_joystick_rpi map=4 gpio=pin1,pin2,pin3,.....,pin12Where 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.
Pour résumé mon (mes) probleme(s) :
- Lorsque j'essaye de compiler le module , j'ai ce message d'erreur
root@retropie:/usr/src/mk_arcade_joystick_rpi-0.1.5# sudo dkms build m mk_arcade_joystick_rpi -v 0.1.5
dkms.conf: Error! No 'PACKAGE_VERSION' directive specified.
Error! Bad conf file.
File: /usr/src/mk_arcade_joystick_rpi-0.1.5/dkms.conf
does not represent a valid dkms.conf file.- Et je ne comprends pas l'ordre des PINs par rapport à cette commande
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.
Cela ne correspond pas aux numéros de GPIO par rapport au schéma du lien ci après : GPIO RECALBOX
Quelqu'un a t-il déjà effectué cette personnalisation des GPIO ?
Merci pour votre aide. -
@djblex pk je lis retropie dans tes commandes ?
Nous côté recalbox on ne compile pas comme çà ... A la base, tu dois juste aller dans le rep, et faire make (en ayant bien sur toutes les dependances utiles) ... Me semble que le repo doit avoir les infos utiles pourtant
-
@Substring tu m'as eu, je me rends et je plaide coupable :);
oui, j'ai basculé de l'autre coté mais ma référence reste RECALBOX
Comme le driver MK ARCADE JOYSTICK a été développé pour Recalbox, je pensais qu ici serait le meilleur endroit pour obtenir un coup de main. -
@djblex nous on cross compile ce module, donc c'est très très différent de ta méthodologie. Mais comme je t'ai dit, il me semble que github explique comment compiler. Pour le reste, pas la moindre idée
-
@Substring Bon, tu as raison, toutes les infos sont bien sur le repo ( en adaptant un petit peu )
Avec un peu d'acharnement, je suis arrivé à installer ce pilote 0.1.5.
Mais comme c'est trop facile, (je plaisante, j'en bave !!!) , une autre difficulté se présente :Maintenant , j'applique la configuration des GPIO en MAP 3 qui m'intéresse pour mon projet :
If you have a TFT screen connected on your RPi B+ you can't use all the gpios. You can run the following command for using only the gpios not used by the tft screen (Be careful, not all tft screen use the same pins. GPIOs used with this map: 21,13,26,19,5,6,22,4,20,17,27,16,12):
sudo modprobe mk_arcade_joystick_rpi map=3
Et là , NADA, rien , pas un bouton fonctionnelle, ni les AXIS.
Pourtant , la ligne de code du driver 0.1.5, confirme la bonne attribution des GPIOs
- élément de liste static struct mk *mk_base;
....
// Map joystick on the b+ GPIOS with TFT up, down, left, right, start, select, a, b, tr, y, x, tl, hk
static const int mk_arcade_gpio_maps_tft[] = {21, 13, 26, 19, 5, 6, 22, 4, 20, 17, 27, 16, 12};
.....
Voilà, pour le moment , je bloque à ce stade.
Par contre si je choisi les Pins GPIO par défaut comme sous Recalbox avec sudo modprobe mk_arcade_joystick_rpi map=1
Cela fonctionne.Merci de m'avoir lu.
- élément de liste static struct mk *mk_base;
-
@djblex oui ben là dodo je verrai demain
-
@Substring Hello,
Voici une alternative :
-Une fois le dossier du driver mk_arcade_joystick_rpi, téléchargé,
-modifier le fichier "mk_arcade_joystick_rpi.c " à la ligne de code n°185, en y remplaçant les numéro de pin que l'on souhaite attribuer , dans mon cas, je n'ai modifié que deux Pins.Ligne par défaut :
static const int mk_arcade_gpio_maps[] = { 4, 17, 27, 22, 10, 9, 25, 24, 23, 18, 15, 14 };Attention il y a un ordre à respecter :Y-,Y+,X-,X+,start,select,a,b,tr,y,x,tl,hk
-Ensuite sauvegarder la modification puis le compiler en suivant la procédure https://github.com/Pinuct/mk_arcade_joystick_rpi/tree/customgpiohotkey
dkms build -m mk_arcade_joystick_rpi -v 0.1.5
-Une fois la procédure terminée, charger le pilote
sudo modprobe mk_arcade_joystick_rpi map=1Cela fonctionne très bien pour moi avec les nouveaux Pins.
Si quelqu'un à réussi à modifier l'attribution des PINS sans s'embêter comme moi , par la commande :
sudo modprobe mk_arcade_joystick_rpi map=4 gpio=pin1,pin2,pin3,.....,pin12merci de m'en faire part, il y a peut être quelque chose que j'ai manqué
c'est clos pour moi (pour le moment )
Bonne journée.
-
@djblex c'est possible, @ian57 s'en est servi dans un projet