Recalbox 7.0

Ecran GPIO + Joystick



  • Bonjour, Dans le but de réaliser une console "portable" (mini borne), je souhaite brancher plusieurs boutons sur le GPIO, mais j'ai déjà un écran 3.5" qui prend 26 pins sur GPIO (13/13). Est-ce que vous avez une solution ? Merci



  • Si tu veux une config classique (direction + A B X Y L R + start + select), tu n'auras pas assez de pins de libre =/ Je te conseille d'essayer un Teensy



  • Ha merde, impossible de brancher sur les mêmes pins que l'écran ? Là je viens de tester un bouton sur "left", ça marche en HDMI, mais sur l'écran GPIO recalbox reste sur un fond blanc



  • Il faudrait essayer de voir si tous les GPIO sont utilisés par ton écran (ça se trouve certaines pins n'ont pas de contact), tu as la doc technique ou la référence sous la main ?



  • Je viens de voir la doc de ton écran waveshare 3.5" et il semblerait que les gpio 3, 5, 7, 8, 10, 12, 13, 15, 16 ne soient pas utilisés (marqués NC). Tu aurais donc suffisamment de gpio libres pour mapper tes contrôles, par contre il faudrait modifier le driver gpio, ou sinon j'ai entendu parler d'un mode "keyboard" qui permet de configurer les touches manuellement.



  • Le mode keyboard fonctionne très bien pour mapper et apres pour avoir un certain confort dans les jeux, il faut le transformer en manette xbox virtuel. Regarde mon poste, si tu as besoin d'aide, j'essayerai de t'aider. http://blog.recalbox.com/forums/topic/ecran-tft-sur-recalbox-4-beta-3/



  • Merci pour toutes vos infos, je vais creuser ca



  • @nosfay, tu serais me dire ou modifier les drivers GPIO ? @Julius, ça me semble flou ta solution, je vais devoir simuler un clavier en GPIO, et ensuite simuler que ce clavier et une manette XBOX ? Je vois pas ou définir dans ton message que le pin X de GPIO est la lettre Y du clavier.



  • @Jérémy ma solution est vraiment du bidouillage et je l'ai fait pour ma gameboy. Les touches passe par le gpio sur les ports libre, non utilisé de l'ecran. Les touches par defaut du gpio de recalbox sont utilisé par mon ecran donc j'ai activé le mode retrogame pour simuler un clavier sur les port libre (je sais pas si c'est clair 😛 ). Une fois fait, tout fonctionne très bien en mode clavier, je peux jouer, etc... mais impossible d'utiliser les touches hotkey (sauvegarder, charger, revenir en arriere ou aller dans les options). Grace à l'aide de scrub, on l'a transformer en manette XBOX pour pouvoir jouer normalement. Il faut utiliser la commande evtest pour pouvoir connaitre le numero de l'event de ton clavier et ensuite, tu créé ta commande, keymap pour les touche numerique et absmap pour les analogique. Pour chaque touche clavier, tu dois donner son correspondant en xbox, sur le site tu auras tout. Quand j'appuie sur le y de ma gameboy, la commande EVTEST me donné la touche X du clavier donc j'ai ecris KEY_X=y pour l'envoyé vers le Y de la xbox. et tu continus sur toute les touches pour les faire correspondre a la xbox. En faisant demarrer la commande a chaque demarrage de recalbox, tes touches deviendront une xbox.   Si tu as besoin de plus, n'hesite pas 😛



  • Ok, je viens d'essayer, j'ai bien vu la partie "retrogame", j'ai suivi : https://github.com/recalbox/recalbox-os/wiki/Touches-du-clavier-via-GPIO-(FR) Par contre pour le pinout : https://github.com/ian57/Recalbox-Retrogame-2Players-Pi2 Il est embarqué sur Recalbox ou faut l'ajouter ?, je n'arrive pas à faire de make



  • Pour modifier le driver, il faut modifier le fichier mk_arcade_joystick_rpi.c à la ligne 181:

    // Map of the gpios :                     up, down, left, right, start, select, a,  b,  tr, y,  x,  tl
    static const int mk_arcade_gpio_maps[] = {4, 17, 27, 22, 10, 9, 25, 24, 23, 18, 15, 14 };
    

    Et ensuite il faut le recompiler. JE ne l'ai par contre jamais fait donc je en connais pas la marche à suivre! Peut-être que la solution de Julius sera plus simple 😉



  • @julius, du coup j'ai compilé avec Raspbian, maintenant si je lance retrogame du init.d/ j'ai une erreur Pin config Failed try sudo ...   une idée ?



  • Ton message d'indique que tu as attribué une même pin du GPIO pour deux chose, ton ecran et ton clavier. Perso, j'ai modifier retrogame en suivant ce site. J'ai telecharger leur retrogame, modifier mes touches avec les bonnes Pin du gpio, compilé et apres j'ai recup mon retrogame pour le mettre dans recalbox (usr/bin). En suivant le site, j'ai créé ce fichier dans recalbox "/etc/udev/rules.d/10-retrogame.rules" avec la commande SUBSYSTEM=="input", ATTRS{name}=="retrogame", ENV{ID_INPUT_KEYBOARD}="1" ensuite j'ai rajouter dans ce fichier /etc/init.d/S99custom la ligne suivante /usr/bin/retrogame & Alors, oui, c'est du bidouillage mais ca marche 🙂



  • En effet je n'avais pas changé la configuration par défaut, j'ai modifié pour utiliser les pins dispo mais aucun résultat, je n'ai plus l'erreur mais quand je réalise un ./retrogame et que je clique sur un bouton, aucune action



  • Essaye plutot un (retrogame &) pour voir. Après perso, mes touches ne faisait rien, j'ai du brancher une manette ou un clavier pour aller dans la configuration manette de recalbox pour lancer la détection et il voyait un keyboard en appuyant sur une touche.



  • Ok je vais tester, sur Raspbian ca fonctionne bien quand j'appuie sur mon bouton je le vois bien sur un ./retrogame



  • Bon c'est fonctionnel avec 1 bouton, je test ce soir avec l'écran, merci pour ton aide précieuse 🙂



  • Alors, quelles sont les nouvelles ? Ca a marché ?



Want to support us ?

146
Online

79.1k
Users

20.4k
Topics

149.3k
Posts