logo

 

...Ou comment passer des heures à chercher des solutions quand la plus simple reste d'acheter le produit tout fait.
C'est encore un de ces projets qui ne vaut rien aux yeux de ceux qui ne trouvent rien d'amusant dans le fait de construire quelque chose dont ils ont besoin. Vous êtes prévenu.

 

Lors d'une séance d'emmerdement extrême induite par mon insomnie habituelle, je me suis aperçu que Starfox Command sur DS proposait d'utiliser un "Rumble Pak". Le regret de jouer à des jeux téléchargés vint alors me hanter l'esprit. Car hormis les avantages des diverses cartouches microSD pour DS, tels que se la péter à la récré, augmenter les stats des importations, ou encore causer des dommages financiers... Reste qu'un Rumble Pak, ça se télécharge pas.

Pour ceux qui ne seraient pas au courant, le Rumble Pak est une extension matérielle sous forme d'une cartouche SLOT2 qui était vendue avec le jeu et qui contenait un petit vibreur, permettant au joueur de mieux comprendre qu'il s'en prend plein la gueule et qu'il va perdre.

Vous êtes alors peut être en train de vous dire: "je prefère jouer au jeu gratuitement sans les vibrations, plutot que d'aligner 40€ pour avoir la même chose, mais avec !"
Je vous répondrais alors: moi aussi.

Mais je me suis senti frustré de ne pas avoir eu exactement la même chose que les gens qui l'avaient vraiment acheté.
C'est comme voler une télé mais oublier de prendre la télécommande, ça marche mais il manque un petit quelque chose.

 

Une très brève recherche a revelé que les détails de la fabrication d'un Rumble Pak fait maison avaient déjà été publiés sur Instructables. L'article, très instructif, indique que les jeux détectent sa présence en vérifiant que le bit 1 du bus de données GBA est à 0 (ils ont tous des pull-ups).

Bien qu'ayant été très informative et rassurante, la méthode utilisée ne m'inspirait pas vraiment. En effet, il est question d'utiliser un PIC comme monostable à durée fixe. Pratique mais un peu overkill.

Si vous avez gardé la boite de votre DS Lite, c'est le moment d'aller retrouver la cartouche de protection SLOT2. C'est souvent le truc qu'on balance en premier mais dans ce cas c'est indispensable.

Je me souviens pas avoir vu de telle protection livrée avec la DS "tank".

Dans le pire des cas une cartouche GBA que vous ne supportez plus peut faire l'affaire.

 

Il va aussi falloir des vibreurs pour téléphones portables, souvent appellés "offset motors".

Ce sont des moteurs miniatures fabriqués pour fonctionner pendant de courtes périodes sous 3 ou 5V.

Les miens fonctionnaient malheureusement en 5V mais ça n'a pas vraiment posé de gros problèmes. Ce n'est pas possible de savoir exactement si le moteur est fait pour fonctionner avec telle ou telle tension.

L'important c'est que leur diamètre ne dépasse pas 4mm, car il n'y a pas beaucoup de place dans la cartouche. Les miens étaient de la bonne taille mais le poids dépassait. Les limer à la Dremel était loin d'être amusant.

 

L'article sur instructables indique que le jeu SLOT1 demande au moteur de tourner en balançant une pulsation sur /WR. Ceci revient à vouloir écrire n'importe quelle valeur sur le bus GBA.

C'est en réalité un peu plus compliqué puisque le jeu peut normalement contrôler la durée pendant laquelle le moteur tourne.

Le tracé d'un schéma d'un vrai rumble pak (merci google image) et la lecture des sources de ndslib montrent que la ligne AD1 ne sert pas seulement à detecter la présence du rumble pak, mais aussi à indiquer si la pulsation sur /WR sert à l'arrêt ou au démarrage du moteur.

Ce n'est donc pas un monostable qu'il faut, mais une simple bascule D déclenchée par l'inverse de /WR et qui prend en entrée la ligne AD1. La sortie Q de la bascule pilote à son tour le moteur via un transistor.

 

La première étape était alors de trouver de quoi réaliser une bascule D avec un circuit en boitier SOIC (pas question de mettre un 4013 DIP à plat).

Quand les composants CMS se font rare dans une chambre bordelique, on peut ruser en cherchant par exemple un registre à décalage ou des latchs de bus, qui ne sont rien d'autre que des suite de bascules D.

Ici la chance a joué, j'ai trouvé une double bascule HC74 perdue dans un coin d'une vieille carte mère. Un coup de pistolet à décaper et il était prêt à l'emploi.

 

La modification de la cartouche consiste d'abord à virer tout ce dont on a pas besoin.

Il faut alors savoir en premier lieu ce qu'on doit conserver. Ici ce sont les lignes d'alimentation (+3V, masse), /WR et AD1. Le brochage des cartouches GBA se trouve aisément sur le net (indice).

A l'aide d'un cutter, grattez délicatement le vernis qui recouvre les pistes concernées pour mettre le cuivre à nu sur la plus grande longueur possible.

 

Une fois les lignes utilisables, le circuit imprimé peut être découpé selon la zone en rouge. Il vaut mieux faire la découpe au disque abrasif, le circuit étant fin et la pince coupante risquant de le fendre "plus loin" que prévu.

Pas la peine non plus de garder assez de circuit pour qu'il vienne buter contre les petites bosses en plastique dans la cartouche: il sera collé plus tard. Pas de mouvement possible.

 

La partie la plus délicate et la moins simple à détailler est la réalisation du montage sans circuit imprimé.

Qu'il soit basé sur une véritable bascule D ou un autre circuit pouvant remplir la même fonction, on peut généralement simplifier les connections entre les broches pour limiter le nombre de ponts.

Sur le HC74 que j'ai utilisé, il n'y a eu que deux ponts à faire: un pour connecter la masse aux deux résistances de tirage R4 et R5 (la patte pliée qu'on voit soudée aux résistances "103"). Et un second pour connecter les entrées R et S au 3.3V. Le reste (Q1, R1) se retrouve suspendu entre des broches.

 

Note importante pour les têtes-en-l'air: je me suis fait niquer en pensant que le HC74 avait le même brochage et la même polarité sur R et S que le 4013. Grossière erreur, voir le schéma.

Reste le câblage au fil de cuivre du paquet de composants au circuit précedemment découpé. L'émail du fil peut être fondu au fer à souder. Quand ça se met à sentir le cheval, c'est que c'est bon.

Pour limiter les risques de court-circuits, on peut couper les broches inutiles du circuit intégré (seconde bascule D, sorties supplémentaires du registre...)

Assurez-vous que les connections sont bonnes et que l'alimentation n'est pas court-circuitée, puis testez le tout sur votre DS. Attention, c'est votre problème si vous crammez votre slot 2.

 

Notez Q2 soudé sans résistance sur sa base à gauche, directement sur le circuit imprimé.

Il faut couper la tranche en plastique qui sépare les contacts dorés du reste, sur la partie supérieure de la coque. Le tout doit alors rentrer facilement. Assurez-vous que la cartouche peut être remontée sans être bombée, et que le poids du moteur peut tourner librement.

Fixez le tout au pistolet à colle, en ne posant que quelques gouttes sur les bords des élements. Gare à certaines colles en tube qui peuvent dissoudre l'émail du fil et provoquer des court-circuits si ils sont emmelés.

 

La cartouche peut être generalement testée dans les menus de selection des contrôles.

Un court test dans le vrai jeu a revelé que le moteur est en fait commandé en PWM, ce qui le fait émettre un sifflement assez distinct. Le signal est très variable selon les collisions, les accélerations...

Plusieurs personnes se plaignent de ce petit souci même avec les vrais Rumble Pak. Les seules solutions qui me viennent à l'esprit seraient soit de lisser le signal de commande, soit de demander à Nintendo d'arrêter de faire du zèle (même si c'est dur de leur en vouloir alors que ça partait d'une bonne intention).

footer
symbol symbol symbol symbol symbol