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/customgpiohotkey

    Il 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,.....,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.

    Pour résumé mon (mes) probleme(s) :

    1. 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.

    1. 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.


  • Moderator
    Team

    @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.


  • Moderator
    Team

    @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.


  • Moderator
    Team

    @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=1

    Cela 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,.....,pin12

    merci 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.


  • Moderator
    Team

    @djblex c'est possible, @ian57 s'en est servi dans un projet


Log in to reply
 

Want to support us ?

Join us on :

248
Online

27406
Users

14109
Topics

107061
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.