Assez régulièrement, quand je vois des périphériques en ADB en vente à bas prix, je craque. Je possède un SideWinder ADB et une manette Gravis, et quand j’ai vu un MouseStick, j’ai craqué.
Comme Apple n’avait pas prévu de connecteur spécifiquement pour les joystick (contrairement à l’Apple II par exemple), les constructeurs devaient parfois ruser. Beaucoup émulent un clavier ou une souris en ADB, mais le MouseStick est en théorie un peu particulier. Ce joystick passe en effet par un boîtier – le Gravis Mouse Processing Unit, alias GMPU – pour la connexion. Le joystick lui-même se connecte à travers une prise propriétaire (Mini DIN, 9 broches) sur le GMPU, qui lui se branche en ADB. Il possède un stick avec un bouton sur le dessus, ainsi que deux boutons supplémentaires. Le GMPU se place entre le Mac et un autre appareil, grâce à une prise ADB femelle intégrée.
Techniquement, l’idée semble intéressante : il suffit de changer le GMPU pour utiliser le joystick sur une autre machine et – surtout – le GMPU est programmable. En fonction des besoins, il permet de modifier matériellement le fonctionnement du stick. La gestion de l’accélération, les boutons (clic, double clic, pression d’une touche du clavier, etc.), pas mal de paramètres se règlent dans le logiciel fourni.
Mon problème vient d’un truc très simple : les mouvements ne fonctionnent pas. La documentation indique que le stick doit faire bouger la souris… et ça ne fonctionne pas. J’ai nettoyé l’intérieur, vérifié les câbles, acheté un second joystick, testé sous Mac OS 9 (sur Power Mac G3) et sur un plus vieil OS (System 7.1 sur un LC III), mais rien n’y fait. De temps en temps, le curseur semble réagir mais je ne sais pas de quoi ça vient. Le logiciel détecte bien le joystick charge les données dans le GMPU, mais impossible de faire prendre en compte les mouvements. Les boutons, eux, fonctionnent bien. Je ne sais pas si mes deux joysticks (ou mes deux GMPU) ont le même souci, mais ça me semble improbable.
J’ai essayé avec un iMate, et les clics passent, mais pas avec un USB Wombat. Si quelqu’un a une idée de comment fonctionne ce joystick, ça m’intéresse du coup. A noter que je ne suis pas le seul avec le problème.
J’ai le modèle suivant (MouseStick II), c’est exactement la même manette, mais sans le boitier GMPU.
Il y a 2 boutons en haut du manche au lieu d’un.
Elle se branche directement sur un port ADB avec une prise gigogne.
Le manche fonctionne très bien, y compris sur le finder à la place de la souris.
Je l’avais présenté sur le forum macg ici : « collectionneurs-affichez-vous » à la page 8 (post 155)
Mais je suppose que le driver est spécifique à la MouseStick II ?
J’ai un joystick Gravis qui ressemble mais qui n’a pas de boîtier intermédiaire et qui a deux prises ADB, une mâle et une femelle. Je n’avais pas lu le commentaire de gpbonneau. Je dois avoir le même que lui.
J’ai exactement le même problème après avoir acheté ce joystick sur Ebay cet été. Je tente de trouver la source du problème et j’ai créé un fil de discussion ici pour chercher de l’aide d’experts en électronique. Est-ce qu’il y a eu du progrès de ton côté?
.
https://forum.allaboutcircuits.com/threads/very-faint-movement-response-in-this-vintage-gravis-mousestick-joystick.162374/
j’en ai un second, avec le même problème, c’est… bizarre
Un truc à regarder est la puce intégrée programmable (EEPROM) qui est dans l’unité GMPU. J’ai récemment acquis un graveur EEPROM pour réparer les ROMs d’un mac plus (avec succès) et je pourrais facilement extraire le code de la puce du GMPU et voir s’il y a échec de ce côté lorsque le pilote du MouseStickII essaie de réécrire la config.
J’ai réussi à le réparer!
La cause du problème selon moi:
Le mouvement est détecté au moyen d’une onde sinus qui est générée entre des paires de DEL et de photocell. Un film (avec zones alternantes opaques-transparentes) circule entre ces paires lorsque le manche à balai est bougé. Ce film frotte un peu sur un autre film avec le même matériau et laisse des égratignures visibles, qui s’accumulent à la longue après plusieurs décennies. Le signal de lumière se rend moins intensément sur les photocells, qui agissent moins bien (photocell = résistance variable selon la lumière qui tombe dessus). Le signal devient trop faible pour déclencher une puce qui s’appelle « inverted schmitt trigger » – son rôle est de convertir le sinus en onde carrée, afin que la suite des choses puisse facilement compter le rythme d’arrivée des maxima et réagir à cela.
Dans mon cas, il ne restait qu’un seul signal onde carrée sur 4 qui se rendait au GMPU puis à l’ordinateur. On doit nécessairement avoir 2 singaux par direction pour que celle-ci fonctionne.
La solution: jouer avec les 4 potentiomètres et les diminuer légèrement, afin que leurs DELs associées produisent plus de lumière pour palier à l’endommagement du film. Il faut que le sinus produit à cet endroit atteigne au moins 2.8 V (moi j’ai visé entre 3 V et 3.2 V). Je vais ajouter des détails au fil de discussion du forum « All about circuits » que j’ai mentionné plus haut.
Tu aurais des photos que je vois exactement ce que je dois faire ? Je ferrais un article dessus en expliquant tes recherches (merci !)
il y a déjà quelques photos dans le fil de discussion ici:
https://forum.allaboutcircuits.com/threads/very-faint-movement-response-in-this-vintage-gravis-mousestick-joystick.162374/
Salut, je ne t’ai pas oublié.
Voici les 4 potentiomètres qu’il faut ajuster __à la baisse__ pour booster le signal des DELs et donner une chance aux détecteurs d’avoir un signal assez fort.
https://www.screencast.com/t/5TzD3Xm8yjoL
Avec un tournevis à tête plate (assez petit), de mémoire:
-on tourne R3 et R4 en sens horaire
-on tourne R1 et R2 en sens anti-horaire
Pour savoir si la rotation est assez bonne, on peut vérifier __avant__ vs __après__ avec un multimètre en mode résistance (échelle permettant de mesurer au moins 500 Ohms) aux bornes en arrière, comme suit (j’ai montré XB en exemple, qui correspond au potentiomètre R2 dans l’image précédente. Pour bien utiliser le multimètre, il faut que le joystick ne soit PAS branché au GMPU du tout.
https://www.screencast.com/t/vUSEPUfK
Méthode 1, à l’aveuglette: tenter de baisser les résistances du potentiomètres initiales à 2/3 de leur valeur et vérifier si ça va. Pour ma part,
en moyenne, je suis passé de valeurs de 300 Ohms à environ 220 Ohms, mais je me surtout attardé aux « canaux » qui en avaient le plus besoin.
Méthode 2, dirigée: vérifier que les sorties du inverted Schmitt trigger provoque des ondes carrées (preuve que les sinus étaient assez forts pour le faire). Je peux expliquer si tu me le demandes, mais ça nécessite un oscilloscope, un joystick alimenté et une sonde assez mince pour piquer à des endroits précis dans le circuit.
J’avais essayé, merci ! (cf. https://www.journaldulapin.com/2019/09/24/joystick-gravis/)
Je vais mesurer du coup, j’ai fait ça de façon empirique.