Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

LinuxFr.org : les journaux  -  GrIP2HID: un adaptateur USB pour le Gravis Gamepad Pro

 -  Octobre 2021 - 

Bonjour!

Depuis (très) longtemps j'ai un gamepad Gravis Gamepad Pro. Il est simple, il est efficace, il est solide, il fonctionne très bien. Oui mais voilà: il a besoin d'un port joystick DB-15 et il n'y en a plus sur les ordinateurs modernes (ou même pas très modernes).

Donc je me suis fabriqué un adaptateur pour le brancher sur un port USB et pouvoir continuer à m'en servir.

J'ai commencé à y réfléchir il y a longtemps, mais pour différentes raisons je n'avais jamais pu terminer ce projet. C'est maintenant chose faite.

La première étape a été de comprendre le fonctionnement de ce gamepad. On pourrait penser que c'est simple, mais en fait non. Le port Joystick du PC est normalement prévu pour connecter deux joysticks comportant chacun 2 axes analogiques (haut/bas et gauche/droite) et deux boutons. Le matériel est assez simple mais ça rend le logiciel plus compliqué: il faut faire des mesures précises de timings pour en déduire la position du joystick, ce qui doit être calibré en fonction de la vitesse du processeur. Et de toutes façons ça ne suffit pas pour ce gamepad qui comporte 10 boutons et un pavé directionnel (et on peut en brancher deux sur un port Joystick pour jouer à plusieurs).

J'ai pu trouver quelques informations sommaires sur le principe de fonctionnement, complétées par une lecture du pilote existant pour ce gamepad dans le noyau Linux, et enfin de quelques mesures avec un oscilloscope pour confirmer les choses. J'avais alors écrit un article documentant tout ça de façon assez détaillée.

Pour faire simple: le gamepad utilise les deux "boutons" pour établir une liaison série unidirectionelle avec l'ordinateur. L'un des boutons sert d'horloge et permet de savoir quand un nouveau bit de données est disponible. Le deuxième bouton transmet un à un l'état de tous les boutons du gamepad, avec quelques bits fixes en plus qui permettent de reconnaître le début du message et de se synchroniser.

Le deuxième gamepad fait bien sûr la même chose avec les deux autres "boutons" disponibles.

Une fois ceci bien compris, j'ai implémenté le code pour décoder ces trames. J'ai fait quelques essais avec un microcontrôleur STM32 mais finalement j'ai utilisé un Atmel AT90USB, beaucoup plus simple à utiliser (aussi bien d'un point de vue logiciel que matériel, moins de pattes à souder et moins de composants à rajouter autour). J'ai d'abord fait quelques essais avec une carte de développement AT90USBKEY, avant de concevoir mon propre circuit électronique.

J'ai eu quelques soucis lors de la commande des composants, le microcontrôleur choisi étant en rupture de stock jusqu'en septembre 2022. Cependant j'ai pu en importer quelques uns de chine. Après avoir assemblé le circuit et programmé le microcontrôleur, tout fonctionne sans prolème!

L'adaptateur comporte 2 ports Joystick et permet donc d'utiliser jusqu'à 4 gamepads en même temps.

Photo du GamePad et du PCB avant assemblage

Côté firmware il n'y a finalement rien de très compliqué: le projet LUFA rend très facile la programmation d'un périphérique USB sur ces microcontrôleurs. Il ne restait plus qu'à relier ça à mon code pour lire les infos provenant du gamepad. L'adaptateur est un périphérique USB HID standard et fonctionne sans pilote particulier. La seule spécificité est l'utilisation de plusieurs "reports" HID, permettant de voir 4 contrôleurs indépendants même s'il n'y a qu'un seul périphérique USB.

Maintenant il ne me reste plus qu'à trouver un bon choix de jeux multijoueurs… ou à en programmer quelques uns. Je vias peut être aussi me décider à travailler sur le panneau de préférences des contrôleurs de jeux dans Haiku, ça manque un peu pour pouvoir tester facilement ce genre de choses.

Le circuit assemblé avec 3 gamepads connectés

Si vous souhaitez fabriquer vous-même un tel adaptateur, les informations se trouvent sur un project github (schéma, fichier GERBER pour la production du circuit, sources du firmware et binaire précompilé).

D'autre part, j'ai commandé 10 PCBs (c'est le minimum pour lancer une production de circuits imprimés) donc je peux assembler quelques adaptateurs supplémentaires. Le prix est de 15€, à peu près de quoi rembourser l'achat des composants et les frais d'expédition.

Commentaires : voir le flux Atom ouvrir dans le navigateur

par pulkomandy

LinuxFr.org : les journaux

LinuxFr.org : Journaux

La version 2.0 de WhosWho est sortie

 -  15 mai - 

Bonjour Nal,Je viens de publier la version 2.0 de WhosWho, mon logiciel pour faire des trombinoscopes, dont j'avais parlé il y a longtemps dans (...)


décrire une une image avec une iA locale

 -  8 mai - 

Aujourd'hui c'est fourien™, petit tuto sans prétention!Pour décrire des images en utilisant une iA localement j'utilise LLaVA qui fait partie de (...)


antistress adventure in Flatpak land

 -  30 avril - 

Hello nal, ça faisait un bail !Certain (il se reconnaîtra) m'a demandé de le tenir au courant lorsque j'aurai basculé sur un usage de Firefox (...)


Téléphone sous Linux ?

 -  25 avril - 

Aujourd'hui, avoir un téléphone avec un Android libéré, c'est possible, on pense en particulier à Murena.Avoir un téléphone sous GNU/Linux, c'est (...)


Quand votre voiture vous espionne… et vous le fait payer

 -  23 avril - 

Ceci se passe aux États-Unis, pour l’instant, aucune preuve qu’une telle fuite existe en Europe. Mais… si votre assurance augmente brutalement, (...)